get prices methods
This commit is contained in:
parent
c772f0a4d2
commit
9e97f082fa
4 changed files with 324 additions and 14 deletions
|
|
@ -38,6 +38,10 @@ func (h *Handler) RegisterRoutes(r *gin.RouterGroup) {
|
|||
originsGroup.GET("", h.controller.getOrigins)
|
||||
originsGroup.DELETE("", h.controller.deleteOrigin)
|
||||
|
||||
chartsGroup := r.Group("/prices")
|
||||
chartsGroup.GET("", h.controller.getChartsPrices)
|
||||
chartsGroup.GET("/:uuid", h.controller.getDistinctPrices)
|
||||
|
||||
}
|
||||
|
||||
// create godoc
|
||||
|
|
@ -105,13 +109,13 @@ func (co *controller) getMany(c *gin.Context) {
|
|||
// @Description Update merch general info (except extra data)
|
||||
// @Tags Merch
|
||||
// @Accept json
|
||||
// @Param uuid path string true "merch uuid"
|
||||
// @Param payload body updateMerchDTO true "payload"
|
||||
// @Param uuid path string true "merch uuid"
|
||||
// @Param payload body updateMerchDTO true "payload"
|
||||
// @Produce json
|
||||
// @Success 200 {object} merchDTO
|
||||
// @Failure 400 {object} responses.BadRequest
|
||||
// @Failure 401 {object} responses.Unauthorized
|
||||
// @Failure 500 {object} responses.InternalServerError
|
||||
// @Success 200 {object} merchDTO
|
||||
// @Failure 400 {object} responses.BadRequest
|
||||
// @Failure 401 {object} responses.Unauthorized
|
||||
// @Failure 500 {object} responses.InternalServerError
|
||||
// @Router /merch/{uuid} [PUT]
|
||||
func (co *controller) updateMerch(c *gin.Context) {
|
||||
merchUuid := c.Param("id")
|
||||
|
|
@ -150,13 +154,13 @@ func (co *controller) updateMerch(c *gin.Context) {
|
|||
// @Description Update ONLY merch extra data
|
||||
// @Tags Merch
|
||||
// @Accept json
|
||||
// @Param uuid path string true "merch uuid"
|
||||
// @Param payload body extraDataDTO true "payload"
|
||||
// @Param uuid path string true "merch uuid"
|
||||
// @Param payload body extraDataDTO true "payload"
|
||||
// @Produce json
|
||||
// @Success 200 {object} extraDataDTO
|
||||
// @Failure 400 {object} responses.BadRequest
|
||||
// @Failure 401 {object} responses.Unauthorized
|
||||
// @Failure 500 {object} responses.InternalServerError
|
||||
// @Success 200 {object} extraDataDTO
|
||||
// @Failure 400 {object} responses.BadRequest
|
||||
// @Failure 401 {object} responses.Unauthorized
|
||||
// @Failure 500 {object} responses.InternalServerError
|
||||
// @Router /merch/extra/{uuid} [PUT]
|
||||
func (co *controller) updateExtraData(c *gin.Context) {
|
||||
merchUuid := c.Param("id")
|
||||
|
|
@ -303,3 +307,66 @@ func (co *controller) deleteOrigin(c *gin.Context) {
|
|||
logDebug(controllerLogHeader, "delete origin success")
|
||||
c.Status(http.StatusNoContent)
|
||||
}
|
||||
|
||||
// getChartsPrices godoc
|
||||
//
|
||||
// @Summary Получить цены мерча за период
|
||||
// @Description Получить цены мерча за период
|
||||
// @Tags Merch
|
||||
// @Security BearerAuth
|
||||
// @Produce json
|
||||
// @Param days query string false "period in days"
|
||||
// @Success 200 {array} PricesResponse
|
||||
// @Failure 400 {object} responses.BadRequest
|
||||
// @Failure 401 {object} responses.Unauthorized
|
||||
// @Failure 500 {object} responses.InternalServerError
|
||||
// @Router /prices [get]
|
||||
func (co *controller) getChartsPrices(c *gin.Context) {
|
||||
response, err := co.service.getPrices(c, getUserId(c), getDays(c))
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, responses.InternalServerError{Error: err.Error()})
|
||||
logErr(controllerLogHeader, err)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, response)
|
||||
}
|
||||
|
||||
// getDistinctPrices godoc
|
||||
//
|
||||
// @Summary Получить перепады цен мерча за период по его merch_uuid
|
||||
// @Description Получить перепады цен мерча за период по его merch_uuid
|
||||
// @Tags Merch
|
||||
// @Security BearerAuth
|
||||
// @Produce json
|
||||
// @Param uuid path string true "merch_uuid"
|
||||
// @Param days query string false "period in days"
|
||||
// @Success 200 {object} PricesResponse
|
||||
// @Success 204
|
||||
// @Failure 400 {object} responses.BadRequest
|
||||
// @Failure 401 {object} responses.Unauthorized
|
||||
// @Failure 500 {object} responses.InternalServerError
|
||||
// @Router /prices/{uuid} [get]
|
||||
func (co *controller) getDistinctPrices(c *gin.Context) {
|
||||
merchUuid := c.Param("uuid")
|
||||
if merchUuid == "" {
|
||||
err := errors.New("MerchUuid is empty")
|
||||
c.JSON(http.StatusBadRequest, responses.BadRequest{Error: err.Error()})
|
||||
logErr(controllerLogHeader, err)
|
||||
return
|
||||
}
|
||||
|
||||
response, err := co.service.getDistinctPrices(c, getUserId(c), merchUuid, getDays(c))
|
||||
if err != nil {
|
||||
c.JSON(http.StatusBadRequest, responses.InternalServerError{Error: err.Error()})
|
||||
logErr(controllerLogHeader, err)
|
||||
return
|
||||
}
|
||||
|
||||
if response == nil {
|
||||
c.Status(http.StatusNoContent)
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, response)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue