Compare commits

..

No commits in common. "8186d8a46cbfeddef48bb142fcccc6292a2bbc14" and "8ac753f63293092318f4967cfef813eb9f94f93d" have entirely different histories.

5 changed files with 9 additions and 77 deletions

View file

@ -43,14 +43,13 @@ func (h *Handler) RegisterRoutes(r *gin.RouterGroup, authMW gin.HandlerFunc, ref
imagesGroup.GET("/:uuid", h.controller.getMerchImage) imagesGroup.GET("/:uuid", h.controller.getMerchImage)
imagesGroup.DELETE("/:uuid", h.controller.deleteMerchImage) imagesGroup.DELETE("/:uuid", h.controller.deleteMerchImage)
labelsGroup := merchGroup.Group("/labels", authMW) labelsGroup := merchGroup.Group("/labels")
labelsGroup.POST("", h.controller.createLabel) labelsGroup.POST("", h.controller.createLabel)
labelsGroup.GET("", h.controller.getLabels) labelsGroup.GET("", h.controller.getLabels)
labelsGroup.PUT("/:uuid", h.controller.updateLabel) labelsGroup.PUT("/:uuid", h.controller.updateLabel)
labelsGroup.DELETE("/:uuid", h.controller.deleteLabel) labelsGroup.DELETE("/:uuid", h.controller.deleteLabel)
labelsGroup.POST("/attach", h.controller.attachLabel) labelsGroup.POST("/attach", h.controller.attachLabel)
labelsGroup.POST("/detach", h.controller.detachLabel) labelsGroup.POST("/detach", h.controller.detachLabel)
labelsGroup.GET("/:uuid", h.controller.getMerchLabels)
} }
// @Summary Добавить новый мерч // @Summary Добавить новый мерч
@ -631,38 +630,3 @@ func (co *controller) detachLabel(c *gin.Context) {
} }
c.Status(http.StatusOK) c.Status(http.StatusOK)
} }
// @Summary Получить метки товара по его uuid
// @Description Получить метки товара по его uuid
// @Tags Merch labels
// @Security BearerAuth
// @Param uuid path string true "label uuid"
// @Success 200
// @Failure 400 {object} responses.ErrorResponse400
// @Failure 500 {object} responses.ErrorResponse500
// @Router /merch/labels/{uuid} [get]
func (co *controller) getMerchLabels(c *gin.Context) {
const logMsg = "Merch | Get merch labels"
userUuid, err := co.utils.GetUserUuidFromContext(c)
if err != nil {
c.JSON(http.StatusInternalServerError, responses.ErrorResponse500{Error: err.Error()})
log.WithError(err).Error(logMsg)
return
}
merchUuid := c.Param("uuid")
if merchUuid == "" {
c.JSON(http.StatusBadRequest, responses.ErrorResponse400{Error: "label uuid is empty"})
log.WithError(err).Error(logMsg)
return
}
response, err := co.service.getMerchLabels(userUuid, merchUuid)
if err != nil {
c.JSON(http.StatusInternalServerError, responses.ErrorResponse500{Error: err.Error()})
log.WithError(err).Error(logMsg)
return
}
c.JSON(http.StatusOK, response)
}

View file

@ -10,7 +10,6 @@ type MerchDTO struct {
Name string `json:"name"` Name string `json:"name"`
OriginSurugaya SurugayaDTO `json:"origin_surugaya"` OriginSurugaya SurugayaDTO `json:"origin_surugaya"`
OriginMandarake MandarakeDTO `json:"origin_mandarake"` OriginMandarake MandarakeDTO `json:"origin_mandarake"`
Labels []string `json:"labels,omitempty" gorm:"-"`
} }
type SurugayaDTO struct { type SurugayaDTO struct {

View file

@ -48,7 +48,6 @@ type labels interface {
attachLabel(label CardLabel) error attachLabel(label CardLabel) error
detachLabel(label CardLabel) error detachLabel(label CardLabel) error
getAttachedLabelsByList(list []string) ([]CardLabel, error) getAttachedLabelsByList(list []string) ([]CardLabel, error)
getAttachedLabelsByUuid(userUuid, merchUuid string) ([]CardLabel, error)
} }
func (r *Repo) addMerch(bundle merchBundle) error { func (r *Repo) addMerch(bundle merchBundle) error {
@ -301,13 +300,3 @@ func (r *Repo) getAttachedLabelsByList(list []string) ([]CardLabel, error) {
return labelsList, nil return labelsList, nil
} }
func (r *Repo) getAttachedLabelsByUuid(userUuid, merchUuid string) ([]CardLabel, error) {
var labelsList []CardLabel
if err := r.db.Model(&CardLabel{}).Where("user_uuid = ? AND merch_uuid = ?", userUuid, merchUuid).Find(&labelsList).Error; err != nil {
return nil, err
}
return labelsList, nil
}

View file

@ -411,14 +411,13 @@ func (s *service) deleteMerchImage(ctx context.Context, userUuid, merchUuid stri
return fmt.Errorf("no merch found for user %s with uuid %s", userUuid, merchUuid) return fmt.Errorf("no merch found for user %s with uuid %s", userUuid, merchUuid)
} }
//uncomment for MinIO if err = s.media.Delete(ctx, s.bucketName, fmt.Sprintf("%s/merch/%s/thumbnail.jpg", userUuid, merchUuid)); err != nil {
//if err = s.media.Delete(ctx, s.bucketName, fmt.Sprintf("%s/merch/%s/thumbnail.jpg", userUuid, merchUuid)); err != nil { return err
// return err }
//}
// if err = s.media.Delete(ctx, s.bucketName, fmt.Sprintf("%s/merch/%s/full.jpg", userUuid, merchUuid)); err != nil {
//if err = s.media.Delete(ctx, s.bucketName, fmt.Sprintf("%s/merch/%s/full.jpg", userUuid, merchUuid)); err != nil { return err
// return err }
//}
return nil return nil
} }
@ -562,7 +561,7 @@ func (s *service) updateLabel(userUuid, labelUuid string, label LabelDTO) error
} }
if label.BgColor != "" { if label.BgColor != "" {
updateMap["bg_color"] = label.BgColor updateMap["bgcolor"] = label.BgColor
} }
return s.repo.updateLabel(userUuid, labelUuid, updateMap) return s.repo.updateLabel(userUuid, labelUuid, updateMap)
@ -598,17 +597,3 @@ func (s *service) detachLabel(userUuid string, label LabelLink) error {
} }
return s.repo.detachLabel(detach) return s.repo.detachLabel(detach)
} }
func (s *service) getMerchLabels(userUuid, merchUuid string) ([]string, error) {
getLabels, err := s.repo.getAttachedLabelsByUuid(userUuid, merchUuid)
if err != nil {
return nil, err
}
response := make([]string, 0, len(getLabels))
for _, label := range getLabels {
response = append(response, label.LabelUuid)
}
return response, nil
}

View file

@ -70,12 +70,7 @@ CREATE TABLE labels(
); );
CREATE TABLE card_labels ( CREATE TABLE card_labels (
id BIGSERIAL PRIMARY KEY,
user_uuid VARCHAR(36) NOT NULL, user_uuid VARCHAR(36) NOT NULL,
label_uuid VARCHAR(36) NOT NULL, label_uuid VARCHAR(36) NOT NULL,
merch_uuid VARCHAR(36) NOT NULL merch_uuid VARCHAR(36) NOT NULL
); );
ALTER TABLE card_labels
ADD CONSTRAINT card_labels_unique_user_label_merch
UNIQUE (user_uuid, label_uuid, merch_uuid);