2022-12-31 10:22:38 +01:00
|
|
|
package command
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/google/uuid"
|
2023-01-30 19:59:42 +01:00
|
|
|
"github.com/twofas/2fas-server/internal/api/mobile/domain"
|
2022-12-31 10:22:38 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
type UpdateNotification struct {
|
|
|
|
Id string `uri:"notification_id" validate:"required,uuid4"`
|
|
|
|
Icon string `json:"icon" validate:"required,max=128"`
|
|
|
|
Link string `json:"link" validate:"required,max=128"`
|
|
|
|
Message string `json:"message" validate:"required,max=256"`
|
|
|
|
Platform string `json:"platform" validate:"required,oneof=ios android huawei"`
|
|
|
|
Version string `json:"version" validate:"omitempty,max=12"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type UpdateNotificationHandler struct {
|
|
|
|
Repository domain.MobileNotificationsRepository
|
|
|
|
}
|
|
|
|
|
|
|
|
func (h *UpdateNotificationHandler) Handle(cmd *UpdateNotification) error {
|
|
|
|
id, _ := uuid.Parse(cmd.Id)
|
|
|
|
|
|
|
|
mobileNotification, err := h.Repository.FindById(id)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
if cmd.Icon != "" {
|
|
|
|
mobileNotification.Icon = cmd.Icon
|
|
|
|
}
|
|
|
|
|
|
|
|
if cmd.Link != "" {
|
|
|
|
mobileNotification.Link = cmd.Link
|
|
|
|
}
|
|
|
|
|
|
|
|
if cmd.Message != "" {
|
|
|
|
mobileNotification.Message = cmd.Message
|
|
|
|
}
|
|
|
|
|
|
|
|
if cmd.Platform != "" {
|
|
|
|
mobileNotification.Platform = cmd.Platform
|
|
|
|
}
|
|
|
|
|
|
|
|
if cmd.Version != "" {
|
|
|
|
mobileNotification.Version = cmd.Version
|
|
|
|
}
|
|
|
|
|
|
|
|
return h.Repository.Update(mobileNotification)
|
|
|
|
}
|