amocrm/internal/service/rules.go

89 lines
2.2 KiB
Go
Raw Normal View History

package service
import (
"context"
2024-06-04 16:05:53 +00:00
"database/sql"
2025-02-27 13:30:52 +00:00
"gitea.pena/SQuiz/amocrm/internal/models"
"gitea.pena/SQuiz/common/model"
"gitea.pena/SQuiz/common/pj_errors"
2024-04-23 12:22:12 +00:00
"go.uber.org/zap"
)
func (s *Service) ChangeQuizSettings(ctx context.Context, request *model.RulesReq, accountID string, quizID int) error {
err := s.repository.AmoRepo.ChangeQuizSettings(ctx, request, accountID, quizID)
if err != nil {
2024-06-04 16:05:53 +00:00
if err == sql.ErrNoRows {
return pj_errors.ErrNotFound
2024-06-04 16:05:53 +00:00
}
s.logger.Error("error change quiz settings", zap.Error(err))
return err
}
messageForUTM := models.KafkaMessage{
AccountID: accountID,
Type: models.RuleCheck,
Rule: models.KafkaRule{
QuizID: int32(quizID),
PerformerID: request.PerformerID,
PipelineID: request.PipelineID,
StepID: request.StepID,
Fieldsrule: request.Fieldsrule,
},
}
err = s.producer.ToKafkaUpdate(ctx, messageForUTM)
if err != nil {
s.logger.Error("error sending message to kafka for check rules", zap.Error(err))
if err != nil {
return err
}
}
return nil
}
func (s *Service) SetQuizSettings(ctx context.Context, request *model.RulesReq, accountID string, quizID int) error {
err := s.repository.AmoRepo.SetQuizSettings(ctx, request, accountID, quizID)
if err != nil {
2024-06-04 16:05:53 +00:00
if err == sql.ErrNoRows {
return pj_errors.ErrNotFound
2024-06-04 16:05:53 +00:00
}
s.logger.Error("error setting quiz settings", zap.Error(err))
return err
}
2024-04-28 20:51:00 +00:00
messageForUTM := models.KafkaMessage{
AccountID: accountID,
Type: models.RuleCheck,
Rule: models.KafkaRule{
QuizID: int32(quizID),
PerformerID: request.PerformerID,
PipelineID: request.PipelineID,
StepID: request.StepID,
Fieldsrule: request.Fieldsrule,
},
2024-04-28 20:51:00 +00:00
}
err = s.producer.ToKafkaUpdate(ctx, messageForUTM)
2024-04-28 20:51:00 +00:00
if err != nil {
s.logger.Error("error sending message to kafka for check rules", zap.Error(err))
if err != nil {
return err
}
2024-04-28 20:51:00 +00:00
}
return nil
}
2025-02-27 13:30:52 +00:00
func (s *Service) GettingQuizRules(ctx context.Context, accountID string, quizID int) (*model.Rule, error) {
rule, err := s.repository.AmoRepo.GettingQuizRules(ctx, accountID, quizID)
if err != nil {
2024-06-04 16:05:53 +00:00
if err == sql.ErrNoRows {
return nil, pj_errors.ErrNotFound
2024-06-04 16:05:53 +00:00
}
2024-04-23 12:22:12 +00:00
s.logger.Error("error getting quiz settings", zap.Error(err))
return nil, err
}
2024-04-23 12:22:12 +00:00
return rule, nil
}