mirror of
https://github.com/yanislav-igonin/micrach
synced 2024-12-22 14:22:33 +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