forked from red-gold/telar-social-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
delete.go
56 lines (46 loc) · 1.9 KB
/
delete.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package handlers
import (
"fmt"
"net/http"
"github.com/GMcD/ts-serverless/micros/vang/database"
service "github.com/GMcD/ts-serverless/micros/vang/services"
"github.com/gofiber/fiber/v2"
uuid "github.com/gofrs/uuid"
log "github.com/red-gold/telar-core/pkg/log"
"github.com/red-gold/telar-core/types"
"github.com/red-gold/telar-core/utils"
)
// DeleteMessageHandle handle delete a Message
func DeleteMessageHandle(c *fiber.Ctx) error {
// params from /message/id/:messageId
messageId := c.Params("messageId")
if messageId == "" {
errorMessage := fmt.Sprintf("Message Id is required!")
log.Error(errorMessage)
return c.Status(http.StatusBadRequest).JSON(utils.Error("messageIdRequired", errorMessage))
}
messageUUID, uuidErr := uuid.FromString(messageId)
if uuidErr != nil {
errorMessage := fmt.Sprintf("UUID Error %s", uuidErr.Error())
log.Error(errorMessage)
return c.Status(http.StatusBadRequest).JSON(utils.Error("messageIdIsNotValid", "Message id is not valid!"))
}
// Create service
messageService, serviceErr := service.NewMessageService(database.Db)
if serviceErr != nil {
log.Error("NewMessageService %s", serviceErr.Error())
return c.Status(http.StatusInternalServerError).JSON(utils.Error("internal/messageService", "Error happened while creating messageService!"))
}
currentUser, ok := c.Locals(types.UserCtxName).(types.UserContext)
if !ok {
log.Error("[DeleteMessageHandle] Can not get current user")
return c.Status(http.StatusBadRequest).JSON(utils.Error("invalidCurrentUser",
"Can not get current user"))
}
if err := messageService.DeleteMessageByOwner(currentUser.UserID, messageUUID); err != nil {
errorMessage := fmt.Sprintf("Delete Message Error %s", err.Error())
log.Error(errorMessage)
return c.Status(http.StatusInternalServerError).JSON(utils.Error("internal/deleteMessage", "Error happened while removing message!"))
}
return c.SendStatus(http.StatusOK)
}