mirror of
https://github.com/makayabou/asg-server.git
synced 2026-05-02 17:43:36 +02:00
Fixed: response code and header
This commit is contained in:
parent
29fc8bb3c9
commit
32ea8f0762
@ -97,10 +97,16 @@
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"201": {
|
||||
"202": {
|
||||
"description": "Сообщение поставлено в очередь",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/smsgateway.MessageState"
|
||||
},
|
||||
"headers": {
|
||||
"Location": {
|
||||
"type": "string",
|
||||
"description": "URL для получения состояния сообщения"
|
||||
}
|
||||
}
|
||||
},
|
||||
"400": {
|
||||
@ -340,6 +346,11 @@
|
||||
"maxLength": 36,
|
||||
"example": "PyDmBQZZXYmyxMwED8Fzy"
|
||||
},
|
||||
"isEncrypted": {
|
||||
"description": "Зашифровано",
|
||||
"type": "boolean",
|
||||
"example": true
|
||||
},
|
||||
"message": {
|
||||
"description": "Текст сообщения",
|
||||
"type": "string",
|
||||
@ -390,6 +401,11 @@
|
||||
"maxLength": 36,
|
||||
"example": "PyDmBQZZXYmyxMwED8Fzy"
|
||||
},
|
||||
"isEncrypted": {
|
||||
"description": "Зашифровано",
|
||||
"type": "boolean",
|
||||
"example": false
|
||||
},
|
||||
"isHashed": {
|
||||
"description": "Хэшировано",
|
||||
"type": "boolean",
|
||||
@ -511,6 +527,7 @@
|
||||
"phoneNumber": {
|
||||
"description": "Номер телефона или первые 16 символов SHA256",
|
||||
"type": "string",
|
||||
"maxLength": 128,
|
||||
"minLength": 10,
|
||||
"example": "79990001234"
|
||||
},
|
||||
|
||||
@ -19,6 +19,10 @@ definitions:
|
||||
example: PyDmBQZZXYmyxMwED8Fzy
|
||||
maxLength: 36
|
||||
type: string
|
||||
isEncrypted:
|
||||
description: Зашифровано
|
||||
example: true
|
||||
type: boolean
|
||||
message:
|
||||
description: Текст сообщения
|
||||
example: Hello World!
|
||||
@ -58,6 +62,10 @@ definitions:
|
||||
example: PyDmBQZZXYmyxMwED8Fzy
|
||||
maxLength: 36
|
||||
type: string
|
||||
isEncrypted:
|
||||
description: Зашифровано
|
||||
example: false
|
||||
type: boolean
|
||||
isHashed:
|
||||
description: Хэшировано
|
||||
example: false
|
||||
@ -150,6 +158,7 @@ definitions:
|
||||
phoneNumber:
|
||||
description: Номер телефона или первые 16 символов SHA256
|
||||
example: "79990001234"
|
||||
maxLength: 128
|
||||
minLength: 10
|
||||
type: string
|
||||
state:
|
||||
@ -219,8 +228,12 @@ paths:
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"201":
|
||||
"202":
|
||||
description: Сообщение поставлено в очередь
|
||||
headers:
|
||||
Location:
|
||||
description: URL для получения состояния сообщения
|
||||
type: string
|
||||
schema:
|
||||
$ref: '#/definitions/smsgateway.MessageState'
|
||||
"400":
|
||||
|
||||
@ -13,6 +13,10 @@ import (
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
const (
|
||||
route3rdPartyGetMessage = "3rdparty.get.message"
|
||||
)
|
||||
|
||||
type thirdPartyHandler struct {
|
||||
Handler
|
||||
|
||||
@ -27,10 +31,11 @@ type thirdPartyHandler struct {
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param request body smsgateway.Message true "Сообщение"
|
||||
// @Success 201 {object} smsgateway.MessageState "Сообщение поставлено в очередь"
|
||||
// @Success 202 {object} smsgateway.MessageState "Сообщение поставлено в очередь"
|
||||
// @Failure 401 {object} smsgateway.ErrorResponse "Ошибка авторизации"
|
||||
// @Failure 400 {object} smsgateway.ErrorResponse "Некорректный запрос"
|
||||
// @Failure 500 {object} smsgateway.ErrorResponse "Внутренняя ошибка сервера"
|
||||
// @Header 202 {string} Location "URL для получения состояния сообщения"
|
||||
// @Router /3rdparty/v1/message [post]
|
||||
//
|
||||
// Поставить сообщение в очередь
|
||||
@ -55,7 +60,16 @@ func (h *thirdPartyHandler) postMessage(user models.User, c *fiber.Ctx) error {
|
||||
return err
|
||||
}
|
||||
|
||||
return c.Status(fiber.StatusCreated).JSON(state)
|
||||
location, err := c.GetRouteURL(route3rdPartyGetMessage, fiber.Map{
|
||||
"id": state.ID,
|
||||
})
|
||||
if err != nil {
|
||||
h.Logger.Error("Failed to get route URL", zap.String("route", route3rdPartyGetMessage), zap.Error(err))
|
||||
} else {
|
||||
c.Location(location)
|
||||
}
|
||||
|
||||
return c.Status(fiber.StatusAccepted).JSON(state)
|
||||
}
|
||||
|
||||
// @Summary Получить состояние сообщения
|
||||
@ -111,7 +125,7 @@ func (h *thirdPartyHandler) Register(router fiber.Router) {
|
||||
}))
|
||||
|
||||
router.Post("/message", h.authorize(h.postMessage))
|
||||
router.Get("/message/:id", h.authorize(h.getMessage))
|
||||
router.Get("/message/:id", h.authorize(h.getMessage)).Name(route3rdPartyGetMessage)
|
||||
}
|
||||
|
||||
func newThirdPartyHandler(logger *zap.Logger, validator *validator.Validate, authSvc *services.AuthService, messagesSvc *services.MessagesService) *thirdPartyHandler {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user