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 }