diff --git a/docs/docs.go b/docs/docs.go index a232b91..b97688b 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -675,53 +675,6 @@ const docTemplate = `{ } } }, - "/merch/zeroprices/period": { - "delete": { - "security": [ - { - "BearerAuth": [] - } - ], - "description": "Пометить нулевые цены как удаленные за указанный период", - "tags": [ - "Merch zero prices" - ], - "summary": "Пометить нулевые цены как удаленные за указанный период", - "parameters": [ - { - "type": "string", - "description": "start", - "name": "start", - "in": "query", - "required": true - }, - { - "type": "string", - "description": "end", - "name": "end", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/responses.ErrorResponse400" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/responses.ErrorResponse500" - } - } - } - } - }, "/merch/{uuid}": { "get": { "security": [ diff --git a/docs/swagger.json b/docs/swagger.json index 74a0031..f746266 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -667,53 +667,6 @@ } } }, - "/merch/zeroprices/period": { - "delete": { - "security": [ - { - "BearerAuth": [] - } - ], - "description": "Пометить нулевые цены как удаленные за указанный период", - "tags": [ - "Merch zero prices" - ], - "summary": "Пометить нулевые цены как удаленные за указанный период", - "parameters": [ - { - "type": "string", - "description": "start", - "name": "start", - "in": "query", - "required": true - }, - { - "type": "string", - "description": "end", - "name": "end", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/responses.ErrorResponse400" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/responses.ErrorResponse500" - } - } - } - } - }, "/merch/{uuid}": { "get": { "security": [ diff --git a/docs/swagger.yaml b/docs/swagger.yaml index 31eaa0d..883b177 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -674,36 +674,6 @@ paths: summary: Получить нулевые цены tags: - Merch zero prices - /merch/zeroprices/period: - delete: - description: Пометить нулевые цены как удаленные за указанный период - parameters: - - description: start - in: query - name: start - required: true - type: string - - description: end - in: query - name: end - required: true - type: string - responses: - "200": - description: OK - "400": - description: Bad Request - schema: - $ref: '#/definitions/responses.ErrorResponse400' - "500": - description: Internal Server Error - schema: - $ref: '#/definitions/responses.ErrorResponse500' - security: - - BearerAuth: [] - summary: Пометить нулевые цены как удаленные за указанный период - tags: - - Merch zero prices /prices: get: description: Получить цены мерча за период diff --git a/internal/api/merch/controller.go b/internal/api/merch/controller.go index a9f922a..7ea9636 100644 --- a/internal/api/merch/controller.go +++ b/internal/api/merch/controller.go @@ -54,9 +54,6 @@ func (h *Handler) RegisterRoutes(r *gin.RouterGroup, authMW gin.HandlerFunc, ref zeroPricesGroup := merchGroup.Group("/zeroprices", authMW) zeroPricesGroup.GET("", h.controller.getZeroPrices) zeroPricesGroup.DELETE("", h.controller.deleteZeroPrices) - - zeroPricesGroup.DELETE("/period", h.controller.deleteZeroPricesPeriod) - } // @Summary Добавить новый мерч @@ -159,7 +156,7 @@ func (co *controller) getAllMerch(c *gin.Context) { // @Description Обновить информацию про мерч по его uuid в json-е // @Tags Merch // @Security BearerAuth -// @Accept json +// @Accept json // @Param body body UpdateMerchDTO true "merch_uuid" // @Success 200 // @Failure 400 {object} responses.ErrorResponse400 @@ -197,7 +194,7 @@ func (co *controller) updateMerch(c *gin.Context) { // @Failure 400 {object} responses.ErrorResponse400 // @Failure 500 {object} responses.ErrorResponse500 // -// @Router /merch/{uuid} [delete] +// @Router /merch/{uuid} [delete] func (co *controller) deleteMerch(c *gin.Context) { merchUuid := c.Param("uuid") if merchUuid == "" { @@ -232,9 +229,9 @@ func (co *controller) deleteMerch(c *gin.Context) { // @Failure 500 {object} responses.ErrorResponse500 // @Router /prices [get] // -// @Failure 400 {object} responses.ErrorResponse400 -// @Failure 500 {object} responses.ErrorResponse500 -// @Router /prices [get] +// @Failure 400 {object} responses.ErrorResponse400 +// @Failure 500 {object} responses.ErrorResponse500 +// @Router /prices [get] func (co *controller) getChartsPrices(c *gin.Context) { daysQuery := strings.ToLower(c.DefaultQuery("days", "")) @@ -445,7 +442,7 @@ func (co *controller) deleteMerchImage(c *gin.Context) { // @Description Создать новую метку для товара // @Tags Merch labels // @Security BearerAuth -// @Accept json +// @Accept json // @Param payload body LabelDTO true "payload" // @Success 200 // @Failure 400 {object} responses.ErrorResponse400 @@ -510,7 +507,7 @@ func (co *controller) getLabels(c *gin.Context) { // @Description Изменить метку // @Tags Merch labels // @Security BearerAuth -// @Accept json +// @Accept json // @Param uuid path string true "label uuid" // @Param payload body LabelDTO true "payload" // @Success 200 @@ -583,16 +580,16 @@ func (co *controller) deleteLabel(c *gin.Context) { c.Status(http.StatusOK) } -// @Summary Прикрепить метку к товару -// @Description Прикрепить метку к товару -// @Tags Merch labels -// @Security BearerAuth -// @Accept json -// @Param payload body LabelLink true "payload" -// @Success 200 -// @Failure 400 {object} responses.ErrorResponse400 -// @Failure 500 {object} responses.ErrorResponse500 -// @Router /merch/labels/attach [post] +// @Summary Прикрепить метку к товару +// @Description Прикрепить метку к товару +// @Tags Merch labels +// @Security BearerAuth +// @Accept json +// @Param payload body LabelLink true "payload" +// @Success 200 +// @Failure 400 {object} responses.ErrorResponse400 +// @Failure 500 {object} responses.ErrorResponse500 +// @Router /merch/labels/attach [post] func (co *controller) attachLabel(c *gin.Context) { const logMsg = "Merch | Attach label" @@ -618,16 +615,16 @@ func (co *controller) attachLabel(c *gin.Context) { c.Status(http.StatusOK) } -// @Summary Удалить привязку метки к товару -// @Description Удалить привязку метки к товару -// @Tags Merch labels -// @Security BearerAuth -// @Accept json -// @Param payload body LabelLink true "payload" -// @Success 200 -// @Failure 400 {object} responses.ErrorResponse400 -// @Failure 500 {object} responses.ErrorResponse500 -// @Router /merch/labels/detach [post] +// @Summary Удалить привязку метки к товару +// @Description Удалить привязку метки к товару +// @Tags Merch labels +// @Security BearerAuth +// @Accept json +// @Param payload body LabelLink true "payload" +// @Success 200 +// @Failure 400 {object} responses.ErrorResponse400 +// @Failure 500 {object} responses.ErrorResponse500 +// @Router /merch/labels/detach [post] func (co *controller) detachLabel(c *gin.Context) { const logMsg = "Merch | Detach label" @@ -722,7 +719,7 @@ func (co *controller) getZeroPrices(c *gin.Context) { // @Description Пометить нулевые цены как удаленные // @Tags Merch zero prices // @Security BearerAuth -// @Accept json +// @Accept json // @Param payload body DeleteZeroPrices true "payload" // @Success 200 // @Failure 400 {object} responses.ErrorResponse400 @@ -752,45 +749,3 @@ func (co *controller) deleteZeroPrices(c *gin.Context) { } c.Status(http.StatusOK) } - -// @Summary Пометить нулевые цены как удаленные за указанный период -// @Description Пометить нулевые цены как удаленные за указанный период -// @Tags Merch zero prices -// @Security BearerAuth -// @Param start query string true "start" -// @Param end query string true "end" -// @Success 200 -// @Failure 400 {object} responses.ErrorResponse400 -// @Failure 500 {object} responses.ErrorResponse500 -// @Router /merch/zeroprices/period [delete] -func (co *controller) deleteZeroPricesPeriod(c *gin.Context) { - const logMsg = "Merch | Delete zero prices period" - - userUuid, err := co.utils.GetUserUuidFromContext(c) - if err != nil { - c.JSON(http.StatusInternalServerError, responses.ErrorResponse500{Error: err.Error()}) - log.WithError(err).Error(logMsg) - return - } - - start, err := co.utils.ParseTime(c.Query("start")) - if err != nil { - c.JSON(http.StatusBadRequest, responses.ErrorResponse400{Error: err.Error()}) - log.WithError(err).Error(logMsg) - return - } - - end, err := co.utils.ParseTime(c.Query("end")) - if err != nil { - c.JSON(http.StatusBadRequest, responses.ErrorResponse400{Error: err.Error()}) - log.WithError(err).Error(logMsg) - return - } - - if err = co.service.deleteZeroPricesPeriod(userUuid, start, end); err != nil { - c.JSON(http.StatusInternalServerError, responses.ErrorResponse500{Error: err.Error()}) - log.WithError(err).Error(logMsg) - return - } - c.Status(http.StatusOK) -} diff --git a/internal/api/merch/repository.go b/internal/api/merch/repository.go index 4a5f3ce..e84f551 100644 --- a/internal/api/merch/repository.go +++ b/internal/api/merch/repository.go @@ -42,7 +42,6 @@ type prices interface { getZeroPrices(userUuid string) ([]ZeroPrice, error) deleteZeroPrices(list []DeleteZeroPrices) error - deleteZeroPricesPeriod(userUuid string, start, end time.Time) error } type labels interface { @@ -372,19 +371,3 @@ func (r *Repo) deleteZeroPrices(list []DeleteZeroPrices) error { } return nil } - -func (r *Repo) deleteZeroPricesPeriod(userUuid string, start, end time.Time) error { - if err := r.db.Exec(` - UPDATE prices - SET deleted_at = ? - FROM merch - WHERE prices.merch_uuid = merch.merch_uuid - AND merch.user_uuid = ? - AND prices.price = 0 - AND prices.deleted_at IS NULL - AND prices.created_at BETWEEN ? AND ?; - `, time.Now().UTC(), userUuid, start, end).Error; err != nil { - return err - } - return nil -} diff --git a/internal/api/merch/service.go b/internal/api/merch/service.go index ae6c2f5..d409b71 100644 --- a/internal/api/merch/service.go +++ b/internal/api/merch/service.go @@ -662,7 +662,3 @@ func (s *service) deleteZeroPrices(userUuid string, list []DeleteZeroPrices) err return s.repo.deleteZeroPrices(toDelete) } - -func (s *service) deleteZeroPricesPeriod(userUuid string, start, end time.Time) error { - return s.repo.deleteZeroPricesPeriod(userUuid, start, end) -} diff --git a/internal/interfaces/utils.go b/internal/interfaces/utils.go index 31cd891..dd6b773 100644 --- a/internal/interfaces/utils.go +++ b/internal/interfaces/utils.go @@ -1,9 +1,6 @@ package interfaces -import ( - "github.com/gin-gonic/gin" - "time" -) +import "github.com/gin-gonic/gin" type Utils interface { IsEmail(email string) bool @@ -11,5 +8,4 @@ type Utils interface { GetRefreshUuidFromContext(c *gin.Context) (string, error) HashPassword(password string) (string, error) ComparePasswords(hashedPassword string, plainPassword string) error - ParseTime(t string) (time.Time, error) } diff --git a/pkg/utils/time.go b/pkg/utils/time.go deleted file mode 100644 index 01bfaf6..0000000 --- a/pkg/utils/time.go +++ /dev/null @@ -1,11 +0,0 @@ -package utils - -import "time" - -func (u *Utils) ParseTime(t string) (time.Time, error) { - timeStr, err := time.Parse(time.RFC3339, t) - if err != nil { - return time.Time{}, err - } - return timeStr, nil -}