mirror of
https://github.com/yanislav-igonin/micrach
synced 2024-12-22 14:22:33 +03:00
feat: add thread update
This commit is contained in:
parent
3e4f384c1b
commit
b54db6f729
@ -85,6 +85,7 @@ func CreateThread(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: dat shit crashes if no fields in request
|
// TODO: dat shit crashes if no fields in request
|
||||||
|
// TODO: add validation (title or text)
|
||||||
text := form.Value["text"][0]
|
text := form.Value["text"][0]
|
||||||
title := form.Value["title"][0]
|
title := form.Value["title"][0]
|
||||||
filesInRequest := form.File["files"]
|
filesInRequest := form.File["files"]
|
||||||
@ -131,7 +132,6 @@ func CreateThread(c *gin.Context) {
|
|||||||
strconv.Itoa(postID),
|
strconv.Itoa(postID),
|
||||||
fileInRequest.Filename,
|
fileInRequest.Filename,
|
||||||
)
|
)
|
||||||
log.Println(path)
|
|
||||||
file := Repositories.File{
|
file := Repositories.File{
|
||||||
PostID: postID,
|
PostID: postID,
|
||||||
Name: fileInRequest.Filename,
|
Name: fileInRequest.Filename,
|
||||||
@ -160,5 +160,91 @@ func CreateThread(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func UpdateThread(c *gin.Context) {
|
func UpdateThread(c *gin.Context) {
|
||||||
c.JSON(http.StatusOK, gin.H{"route": "update thread"})
|
threadIDString := c.Param("threadID")
|
||||||
|
threadID, err := strconv.Atoi(threadIDString)
|
||||||
|
if err != nil {
|
||||||
|
c.HTML(http.StatusNotFound, "500.html", nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
form, err := c.MultipartForm()
|
||||||
|
if err != nil {
|
||||||
|
log.Println("error:", err)
|
||||||
|
c.HTML(http.StatusInternalServerError, "500.html", nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: dat shit crashes if no fields in request
|
||||||
|
// TODO: add validation (title or text)
|
||||||
|
text := form.Value["text"][0]
|
||||||
|
title := form.Value["title"][0]
|
||||||
|
filesInRequest := form.File["files"]
|
||||||
|
isSageField := form.Value["sage"]
|
||||||
|
var isSageString string
|
||||||
|
if len(isSageField) != 0 {
|
||||||
|
isSageString = isSageField[0]
|
||||||
|
}
|
||||||
|
isSage := isSageString == "true"
|
||||||
|
|
||||||
|
conn, err := Db.Pool.Acquire(context.TODO())
|
||||||
|
if err != nil {
|
||||||
|
log.Println("error:", err)
|
||||||
|
c.HTML(http.StatusInternalServerError, "500.html", nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer conn.Release()
|
||||||
|
|
||||||
|
tx, err := conn.Begin(context.TODO())
|
||||||
|
if err != nil {
|
||||||
|
log.Println("error:", err)
|
||||||
|
c.HTML(http.StatusInternalServerError, "500.html", nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer tx.Rollback(context.TODO())
|
||||||
|
|
||||||
|
post := Repositories.Post{
|
||||||
|
IsParent: false,
|
||||||
|
ParentID: threadID,
|
||||||
|
Title: title,
|
||||||
|
Text: text,
|
||||||
|
IsSage: isSage,
|
||||||
|
}
|
||||||
|
postID, err := Repositories.Posts.CreateInTx(tx, post)
|
||||||
|
if err != nil {
|
||||||
|
log.Println("error:", err)
|
||||||
|
c.HTML(http.StatusInternalServerError, "500.html", nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, fileInRequest := range filesInRequest {
|
||||||
|
path := filepath.Join(
|
||||||
|
Utils.UPLOADS_DIR_PATH,
|
||||||
|
strconv.Itoa(threadID),
|
||||||
|
fileInRequest.Filename,
|
||||||
|
)
|
||||||
|
file := Repositories.File{
|
||||||
|
PostID: postID,
|
||||||
|
Name: fileInRequest.Filename,
|
||||||
|
Ext: fileInRequest.Header["Content-Type"][0],
|
||||||
|
Size: int(fileInRequest.Size),
|
||||||
|
}
|
||||||
|
|
||||||
|
err := Repositories.Files.CreateInTx(tx, file)
|
||||||
|
if err != nil {
|
||||||
|
log.Println("error:", err)
|
||||||
|
c.HTML(http.StatusInternalServerError, "500.html", nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
err = c.SaveUploadedFile(fileInRequest, path)
|
||||||
|
if err != nil {
|
||||||
|
log.Println("error:", err)
|
||||||
|
c.HTML(http.StatusInternalServerError, "500.html", nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tx.Commit(context.TODO())
|
||||||
|
|
||||||
|
c.Redirect(http.StatusFound, "/"+strconv.Itoa(threadID))
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{{$FirstPost:= index . 0}}
|
{{ $FirstPost:= index . 0 }}
|
||||||
|
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
@ -20,7 +20,7 @@
|
|||||||
{{ $length := len $Post.Files }} {{ if gt $length 0 }}
|
{{ $length := len $Post.Files }} {{ if gt $length 0 }}
|
||||||
{{$FirstFile := index $Post.Files 0}}
|
{{$FirstFile := index $Post.Files 0}}
|
||||||
<img
|
<img
|
||||||
src="/uploads/{{$Post.ID}}/{{$FirstFile.Name}}"
|
src="/uploads/{{$FirstPost.ID}}/{{$FirstFile.Name}}"
|
||||||
class="card-img-top"
|
class="card-img-top"
|
||||||
alt="Uploaded picture"
|
alt="Uploaded picture"
|
||||||
>
|
>
|
||||||
|
Loading…
Reference in New Issue
Block a user