amocrm/internal/service/rules.go
2024-04-28 23:51:00 +03:00

61 lines
2.2 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package service
import (
"context"
"go.uber.org/zap"
"penahub.gitlab.yandexcloud.net/backend/quiz/common.git/model"
)
func (s *Service) ChangeQuizSettings(ctx context.Context, request *model.RulesReq, accountID string, quizID int) (*model.Rule, error) {
rule, err := s.repository.AmoRepo.ChangeQuizSettings(ctx, request, accountID, quizID)
if err != nil {
s.logger.Error("error change quiz settings", zap.Error(err))
return nil, err
}
return rule, nil
}
func (s *Service) SetQuizSettings(ctx context.Context, request *model.RulesReq, accountID string, quizID int) (*model.Rule, error) {
utms, err := s.repository.AmoRepo.GetUserUTMByListIDs(ctx, request.Utms)
if err != nil {
s.logger.Error("error getting user UTM byList IDs", zap.Error(err))
return nil, err
}
// получаем сохраненные utm, у них id field как правило пустое, по имени нужно найти
// существуют ли они в амо на аккаунте, если да, то получить просто id в амо, если нет, то создать
// записать новые id и записать их в базу то есть обновить, сделать это пакетно
// в апдейт методе тоже самое сделать
// получаем токен
token, err := s.repository.AmoRepo.GetTokenByID(ctx, accountID)
if err != nil {
s.logger.Error("error getting amo user token from db", zap.Error(err))
return nil, err
}
//todo метод для клиента на получение
// todo в утилиты добавить метод для отлавливания существующих и не существующийх
// todo добавление
rule, err := s.repository.AmoRepo.SetQuizSettings(ctx, request, accountID, quizID)
if err != nil {
s.logger.Error("error setting quiz settings", zap.Error(err))
return nil, err
}
return rule, nil
}
func (s *Service) GettingQuizRules(ctx context.Context, quizID int) (*model.Rule, error) {
rule, err := s.repository.AmoRepo.GettingQuizRules(ctx, quizID)
if err != nil {
s.logger.Error("error getting quiz settings", zap.Error(err))
return nil, err
}
return rule, nil
}