@@ -29,15 +29,15 @@ type ThirdPartyController struct {
2929 devicesSvc * devices.Service
3030}
3131
32- // @Summary Get settings
33- // @Description Returns settings for a specific user
34- // @Security ApiAuth
35- // @Tags User, Settings
36- // @Produce json
37- // @Success 200 {object} smsgateway.DeviceSettings "Settings"
38- // @Failure 401 {object} smsgateway.ErrorResponse "Unauthorized"
39- // @Failure 500 {object} smsgateway.ErrorResponse "Internal server error"
40- // @Router /3rdparty/v1/settings [get]
32+ // @Summary Get settings
33+ // @Description Returns settings for a specific user
34+ // @Security ApiAuth
35+ // @Tags User, Settings
36+ // @Produce json
37+ // @Success 200 {object} smsgateway.DeviceSettings "Settings"
38+ // @Failure 401 {object} smsgateway.ErrorResponse "Unauthorized"
39+ // @Failure 500 {object} smsgateway.ErrorResponse "Internal server error"
40+ // @Router /3rdparty/v1/settings [get]
4141//
4242// Get settings
4343func (h * ThirdPartyController ) get (user models.User , c * fiber.Ctx ) error {
@@ -49,29 +49,29 @@ func (h *ThirdPartyController) get(user models.User, c *fiber.Ctx) error {
4949 return c .JSON (settings )
5050}
5151
52- // @Summary Update settings
53- // @Description Updates settings for a specific user
54- // @Security ApiAuth
55- // @Tags User, Settings
56- // @Accept json
57- // @Produce json
58- // @Param request body smsgateway.DeviceSettings true "Settings"
59- // @Success 200 {object} object "Settings updated"
60- // @Failure 400 {object} smsgateway.ErrorResponse "Invalid request"
61- // @Failure 401 {object} smsgateway.ErrorResponse "Unauthorized"
62- // @Failure 500 {object} smsgateway.ErrorResponse "Internal server error"
63- // @Router /3rdparty/v1/settings [put]
52+ // @Summary Update settings
53+ // @Description Updates settings for a specific user
54+ // @Security ApiAuth
55+ // @Tags User, Settings
56+ // @Accept json
57+ // @Produce json
58+ // @Param request body smsgateway.DeviceSettings true "Settings"
59+ // @Success 200 {object} object "Settings updated"
60+ // @Failure 400 {object} smsgateway.ErrorResponse "Invalid request"
61+ // @Failure 401 {object} smsgateway.ErrorResponse "Unauthorized"
62+ // @Failure 500 {object} smsgateway.ErrorResponse "Internal server error"
63+ // @Router /3rdparty/v1/settings [put]
6464//
6565// Update settings
6666func (h * ThirdPartyController ) put (user models.User , c * fiber.Ctx ) error {
6767 if err := h .BodyParserValidator (c , & smsgateway.DeviceSettings {}); err != nil {
68- return fiber .NewError (fiber .StatusBadRequest , err . Error ( ))
68+ return fiber .NewError (fiber .StatusBadRequest , fmt . Sprintf ( "Invalid settings format: %v" , err ))
6969 }
7070
7171 settings := make (map [string ]any , 8 )
7272
7373 if err := c .BodyParser (& settings ); err != nil {
74- return err
74+ return fiber . NewError ( fiber . StatusBadRequest , fmt . Sprintf ( "Failed to parse request body: %v" , err ))
7575 }
7676
7777 updated , err := h .devicesSvc .ReplaceSettings (user .ID , settings )
@@ -83,15 +83,29 @@ func (h *ThirdPartyController) put(user models.User, c *fiber.Ctx) error {
8383 return c .JSON (updated )
8484}
8585
86+ // @Summary Partially update settings
87+ // @Description Partially updates settings for a specific user
88+ // @Security ApiAuth
89+ // @Tags User, Settings
90+ // @Accept json
91+ // @Produce json
92+ // @Param request body smsgateway.DeviceSettings true "Settings"
93+ // @Success 200 {object} object "Settings updated"
94+ // @Failure 400 {object} smsgateway.ErrorResponse "Invalid request"
95+ // @Failure 401 {object} smsgateway.ErrorResponse "Unauthorized"
96+ // @Failure 500 {object} smsgateway.ErrorResponse "Internal server error"
97+ // @Router /3rdparty/v1/settings [patch]
98+ //
99+ // Partially update settings
86100func (h * ThirdPartyController ) patch (user models.User , c * fiber.Ctx ) error {
87101 if err := h .BodyParserValidator (c , & smsgateway.DeviceSettings {}); err != nil {
88- return fiber .NewError (fiber .StatusBadRequest , err . Error ( ))
102+ return fiber .NewError (fiber .StatusBadRequest , fmt . Sprintf ( "Invalid settings format: %v" , err ))
89103 }
90104
91105 settings := make (map [string ]any , 8 )
92106
93107 if err := c .BodyParser (& settings ); err != nil {
94- return err
108+ return fiber . NewError ( fiber . StatusBadRequest , fmt . Sprintf ( "Failed to parse request body: %v" , err ))
95109 }
96110
97111 updated , err := h .devicesSvc .UpdateSettings (user .ID , settings )
0 commit comments