mirror of
				https://github.com/yanislav-igonin/micrach
				synced 2025-10-31 18:07:04 +03:00 
			
		
		
		
	feat: add thread is archived check on posting
This commit is contained in:
		
							parent
							
								
									cb4eaa9fc2
								
							
						
					
					
						commit
						25d91e5742
					
				| @ -111,7 +111,7 @@ func CreateThread(c *gin.Context) { | ||||
| 		errorHtmlData := Repositories.BadRequestHtmlData{ | ||||
| 			Message: validationErrorMessage, | ||||
| 		} | ||||
| 		c.HTML(http.StatusInternalServerError, "400.html", errorHtmlData) | ||||
| 		c.HTML(http.StatusBadRequest, "400.html", errorHtmlData) | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| @ -122,7 +122,7 @@ func CreateThread(c *gin.Context) { | ||||
| 		errorHtmlData := Repositories.BadRequestHtmlData{ | ||||
| 			Message: Repositories.InvalidCaptchaErrorMessage, | ||||
| 		} | ||||
| 		c.HTML(http.StatusInternalServerError, "400.html", errorHtmlData) | ||||
| 		c.HTML(http.StatusBadRequest, "400.html", errorHtmlData) | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| @ -233,6 +233,7 @@ func CreateThread(c *gin.Context) { | ||||
| 	c.Redirect(http.StatusFound, "/"+strconv.Itoa(threadID)) | ||||
| } | ||||
| 
 | ||||
| // Add new post in thread
 | ||||
| func UpdateThread(c *gin.Context) { | ||||
| 	threadIDString := c.Param("threadID") | ||||
| 	threadID, err := strconv.Atoi(threadIDString) | ||||
| @ -241,6 +242,20 @@ func UpdateThread(c *gin.Context) { | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	isArchived, err := Repositories.Posts.GetIfThreadIsArchived(threadID) | ||||
| 	if isArchived { | ||||
| 		errorHtmlData := Repositories.BadRequestHtmlData{ | ||||
| 			Message: Repositories.ThreadIsArchivedErrorMessage, | ||||
| 		} | ||||
| 		c.HTML(http.StatusBadRequest, "400.html", errorHtmlData) | ||||
| 		return | ||||
| 	} | ||||
| 	if err != nil { | ||||
| 		log.Println("error:", err) | ||||
| 		c.HTML(http.StatusInternalServerError, "500.html", nil) | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	form, err := c.MultipartForm() | ||||
| 	if err != nil { | ||||
| 		log.Println("error:", err) | ||||
| @ -256,7 +271,7 @@ func UpdateThread(c *gin.Context) { | ||||
| 		errorHtmlData := Repositories.BadRequestHtmlData{ | ||||
| 			Message: validationErrorMessage, | ||||
| 		} | ||||
| 		c.HTML(http.StatusInternalServerError, "400.html", errorHtmlData) | ||||
| 		c.HTML(http.StatusBadRequest, "400.html", errorHtmlData) | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| @ -267,7 +282,7 @@ func UpdateThread(c *gin.Context) { | ||||
| 		errorHtmlData := Repositories.BadRequestHtmlData{ | ||||
| 			Message: Repositories.InvalidCaptchaErrorMessage, | ||||
| 		} | ||||
| 		c.HTML(http.StatusInternalServerError, "400.html", errorHtmlData) | ||||
| 		c.HTML(http.StatusBadRequest, "400.html", errorHtmlData) | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
|  | ||||
| @ -166,6 +166,24 @@ func (r *PostsRepository) GetThreadByPostID(ID int) ([]Post, error) { | ||||
| 	return posts, nil | ||||
| } | ||||
| 
 | ||||
| // Check if thread is archived
 | ||||
| func (r *PostsRepository) GetIfThreadIsArchived(ID int) (bool, error) { | ||||
| 	sql := ` | ||||
| 		SELECT is_archived | ||||
| 		FROM posts | ||||
| 		WHERE id = $1 | ||||
| 		LIMIT 1 | ||||
| 	` | ||||
| 
 | ||||
| 	row := Db.Pool.QueryRow(context.TODO(), sql, ID) | ||||
| 	var isArchived bool | ||||
| 	err := row.Scan(&isArchived) | ||||
| 	if err != nil { | ||||
| 		return false, err | ||||
| 	} | ||||
| 	return isArchived, nil | ||||
| } | ||||
| 
 | ||||
| func (r *PostsRepository) CreateInTx(tx pgx.Tx, p Post) (int, error) { | ||||
| 	sql := ` | ||||
| 		INSERT INTO posts (is_parent, parent_id, title, text, is_sage, updated_at) | ||||
|  | ||||
| @ -64,3 +64,4 @@ const InvalidTextLengthErrorMessage = "TEXT SHOULD NOT EXCEED 1000 CHARS" | ||||
| const InvalidFilesLengthErrorMessage = "MAXIMUM 4 FILES CAN BE UPLOADED" | ||||
| const InvalidFileSizeErrorMessage = "FILE SIZE EXCIDED (3MB PER FILE)" | ||||
| const InvalidFileExtErrorMessage = "AVALIABLE FILE EXT: PNG, JPG" | ||||
| const ThreadIsArchivedErrorMessage = "THREAD IS ARCHIVED" | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Yanislav Igonin
						Yanislav Igonin