You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

87 lines
2.2 KiB

package rest
import (
domainUser "github.com/aldinokemal/go-whatsapp-web-multidevice/domains/user"
"github.com/aldinokemal/go-whatsapp-web-multidevice/utils"
"github.com/aldinokemal/go-whatsapp-web-multidevice/validations"
"github.com/gofiber/fiber/v2"
)
type User struct {
Service domainUser.IUserService
}
func InitRestUser(app *fiber.App, service domainUser.IUserService) User {
rest := User{Service: service}
app.Get("/user/info", rest.UserInfo)
app.Get("/user/avatar", rest.UserAvatar)
app.Get("/user/my/privacy", rest.UserMyPrivacySetting)
app.Get("/user/my/groups", rest.UserMyListGroups)
return rest
}
func (controller *User) Route(app *fiber.App) {
app.Get("/user/info", controller.UserInfo)
app.Get("/user/avatar", controller.UserAvatar)
app.Get("/user/my/privacy", controller.UserMyPrivacySetting)
app.Get("/user/my/groups", controller.UserMyListGroups)
}
func (controller *User) UserInfo(c *fiber.Ctx) error {
var request domainUser.InfoRequest
err := c.QueryParser(&request)
utils.PanicIfNeeded(err)
// add validation send message
validations.ValidateUserInfo(request)
response, err := controller.Service.Info(c.Context(), request)
utils.PanicIfNeeded(err)
return c.JSON(utils.ResponseData{
Code: 200,
Message: "Success",
Results: response.Data[0],
})
}
func (controller *User) UserAvatar(c *fiber.Ctx) error {
var request domainUser.AvatarRequest
err := c.QueryParser(&request)
utils.PanicIfNeeded(err)
// add validation send message
validations.ValidateUserAvatar(request)
response, err := controller.Service.Avatar(c.Context(), request)
utils.PanicIfNeeded(err)
return c.JSON(utils.ResponseData{
Code: 200,
Message: "Success get avatar",
Results: response,
})
}
func (controller *User) UserMyPrivacySetting(c *fiber.Ctx) error {
response, err := controller.Service.MyPrivacySetting(c.UserContext())
utils.PanicIfNeeded(err)
return c.JSON(utils.ResponseData{
Code: 200,
Message: "Success get privacy",
Results: response,
})
}
func (controller *User) UserMyListGroups(c *fiber.Ctx) error {
response, err := controller.Service.MyListGroups(c.UserContext())
utils.PanicIfNeeded(err)
return c.JSON(utils.ResponseData{
Code: 200,
Message: "Success get list groups",
Results: response,
})
}