2024-04-09 15:52:37 +00:00
|
|
|
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"
|
2024-04-09 15:52:37 +00:00
|
|
|
)
|
|
|
|
|
2024-05-02 15:30:12 +00:00
|
|
|
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 {
|
2024-06-05 08:47:37 +00:00
|
|
|
return pj_errors.ErrNotFound
|
2024-06-04 16:05:53 +00:00
|
|
|
}
|
2024-05-02 15:30:12 +00:00
|
|
|
s.logger.Error("error change quiz settings", zap.Error(err))
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
2024-04-29 12:23:40 +00:00
|
|
|
messageForUTM := models.KafkaMessage{
|
|
|
|
AccountID: accountID,
|
2024-04-29 14:09:40 +00:00
|
|
|
Type: models.RuleCheck,
|
|
|
|
Rule: models.KafkaRule{
|
|
|
|
QuizID: int32(quizID),
|
|
|
|
PerformerID: request.PerformerID,
|
|
|
|
PipelineID: request.PipelineID,
|
|
|
|
StepID: request.StepID,
|
|
|
|
Fieldsrule: request.Fieldsrule,
|
|
|
|
},
|
2024-04-29 12:23:40 +00:00
|
|
|
}
|
|
|
|
|
2024-05-02 15:30:12 +00:00
|
|
|
err = s.producer.ToKafkaUpdate(ctx, messageForUTM)
|
2024-04-29 12:23:40 +00:00
|
|
|
if err != nil {
|
2024-05-02 15:30:12 +00:00
|
|
|
s.logger.Error("error sending message to kafka for check rules", zap.Error(err))
|
2024-04-29 12:23:40 +00:00
|
|
|
if err != nil {
|
2024-05-02 15:30:12 +00:00
|
|
|
return err
|
2024-04-29 12:23:40 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-05-02 15:30:12 +00:00
|
|
|
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)
|
2024-04-09 15:52:37 +00:00
|
|
|
if err != nil {
|
2024-06-04 16:05:53 +00:00
|
|
|
if err == sql.ErrNoRows {
|
2024-06-05 08:47:37 +00:00
|
|
|
return pj_errors.ErrNotFound
|
2024-06-04 16:05:53 +00:00
|
|
|
}
|
2024-05-02 15:30:12 +00:00
|
|
|
s.logger.Error("error setting quiz settings", zap.Error(err))
|
|
|
|
return err
|
2024-04-09 15:52:37 +00:00
|
|
|
}
|
2024-04-28 20:51:00 +00:00
|
|
|
|
2024-04-29 12:23:40 +00:00
|
|
|
messageForUTM := models.KafkaMessage{
|
|
|
|
AccountID: accountID,
|
2024-04-29 14:09:40 +00:00
|
|
|
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
|
|
|
}
|
|
|
|
|
2024-05-02 15:30:12 +00:00
|
|
|
err = s.producer.ToKafkaUpdate(ctx, messageForUTM)
|
2024-04-28 20:51:00 +00:00
|
|
|
if err != nil {
|
2024-05-02 15:30:12 +00:00
|
|
|
s.logger.Error("error sending message to kafka for check rules", zap.Error(err))
|
2024-04-29 12:23:40 +00:00
|
|
|
if err != nil {
|
2024-05-02 15:30:12 +00:00
|
|
|
return err
|
2024-04-29 12:23:40 +00:00
|
|
|
}
|
2024-04-28 20:51:00 +00:00
|
|
|
}
|
|
|
|
|
2024-05-02 15:30:12 +00:00
|
|
|
return nil
|
2024-04-09 15:52:37 +00:00
|
|
|
}
|
|
|
|
|
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)
|
2024-04-09 15:52:37 +00:00
|
|
|
if err != nil {
|
2024-06-04 16:05:53 +00:00
|
|
|
if err == sql.ErrNoRows {
|
2024-06-05 08:47:37 +00:00
|
|
|
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))
|
2024-04-09 15:52:37 +00:00
|
|
|
return nil, err
|
|
|
|
}
|
2024-04-23 12:22:12 +00:00
|
|
|
return rule, nil
|
2024-04-09 15:52:37 +00:00
|
|
|
}
|