feat(api): add endpoints to edit and delete cover letters

This commit is contained in:
Leons Aleksandrovs
2025-07-13 13:05:47 +03:00
parent a8646f9f51
commit f82400e333
6 changed files with 123 additions and 7 deletions
+75
View File
@@ -142,8 +142,83 @@ func Post(c *gin.Context) {
res.Success(c, gin.H{"message": "Successfully created " + coverName})
}
type CoverPut struct {
Name string `json:"name" validate:"required,min=1"`
Letter string `json:"letter" validate:"required,min=50"`
}
func Put(c *gin.Context) {
// Get request data
id, err := strconv.Atoi(c.Param("id"))
if err != nil {
res.Error(c, err.Error(), http.StatusBadRequest)
return
}
var data CoverPut
if err := utils.BindAndValidate(&data, c); err != nil {
res.Error(c, err.Error(), http.StatusBadRequest)
return
}
user, err := jwt.GetUser(c)
if err != nil {
res.NeedsToLogin(c)
return
}
// Find cover letter in database, verify it exists, and update it
letters, err := cover.Get("user_id = $1 AND id = $2", user.Id, id)
if err != nil {
res.Error(c, err.Error(), http.StatusInternalServerError)
return
}
if len(letters) == 0 {
res.Error(c, "Cover letter not found", http.StatusNotFound)
return
}
err = cover.Update(data.Name, data.Letter, id)
if err != nil {
res.Error(c, err.Error(), http.StatusInternalServerError)
return
}
res.Success(c, gin.H{"message": "Successfully updated cover letter"})
}
func Delete(c *gin.Context) {
// Get request data
id, err := strconv.Atoi(c.Param("id"))
if err != nil {
res.Error(c, err.Error(), http.StatusBadRequest)
return
}
user, err := jwt.GetUser(c)
if err != nil {
res.NeedsToLogin(c)
return
}
// Find cover letter in database, verify it exists, and delete it
letters, err := cover.Get("user_id = $1 AND id = $2", user.Id, id)
if err != nil {
res.Error(c, err.Error(), http.StatusInternalServerError)
return
}
if len(letters) == 0 {
res.Error(c, "Cover letter not found", http.StatusNotFound)
return
}
err = cover.Delete(id)
if err != nil {
res.Error(c, err.Error(), http.StatusInternalServerError)
return
}
res.Success(c, gin.H{"message": "Successfully deleted cover letter"})
}