From b50d98d961ce4c08cecde24a091259fdf292a2e1 Mon Sep 17 00:00:00 2001 From: naudachu Date: Fri, 24 Nov 2023 14:58:17 +0500 Subject: [PATCH] rename shortname, key; --- internal/controller/control_project.go | 14 ++++--- internal/controller/control_task.go | 53 +++++++++++++------------- 2 files changed, 35 insertions(+), 32 deletions(-) diff --git a/internal/controller/control_project.go b/internal/controller/control_project.go index d04cbb3..b7692d2 100644 --- a/internal/controller/control_project.go +++ b/internal/controller/control_project.go @@ -41,17 +41,19 @@ func (wc *WorkflowController) ProjectCreate(ctx context.Context, project domain. return nil, err } - project.ShortName = fmt.Sprintf( + project.Key = fmt.Sprintf( "%s-%d", appconfig.TicketKey.String, appconfig.TicketID.Int32, ) + // Set ID from the DB raw: project.ID = string(appconfig.TicketID.Int32) projectRow, err := qtx.CreateTicket(ctx, db.CreateTicketParams{ - Key: pgtype.Text{String: project.ShortName, Valid: true}, + Key: pgtype.Text{String: project.Key, Valid: true}, Channelid: pgtype.Text{String: project.ChannelID, Valid: true}, + Title: pgtype.Text{String: project.Name, Valid: true}, }) if err != nil { tx.Rollback(ctx) @@ -75,12 +77,12 @@ func (wc *WorkflowController) GetProjectByChannelID(ctx context.Context, id stri } else { proj = domain.Project{ ID: string(dbTicket.ID), - ShortName: dbTicket.Key.String, + Key: dbTicket.Key.String, Name: dbTicket.Key.String, ChannelID: dbTicket.Channelid.String, ProjectGit: dbTicket.ProjectGit.String, BuildGit: dbTicket.BuildGit.String, - Cloud: dbTicket.Folder.String, + Folder: dbTicket.Folder.String, } } return &proj, nil @@ -108,11 +110,11 @@ func (wc *WorkflowController) InitProjectInChannel(ctx context.Context, channelI return &domain.Project{ ID: string(dbTicket.ID), - ShortName: dbTicket.Key.String, + Key: dbTicket.Key.String, Name: dbTicket.Key.String, ChannelID: dbTicket.Channelid.String, ProjectGit: dbTicket.ProjectGit.String, BuildGit: dbTicket.BuildGit.String, - Cloud: dbTicket.Folder.String, + Folder: dbTicket.Folder.String, }, nil } diff --git a/internal/controller/control_task.go b/internal/controller/control_task.go index b992ca7..3b4ae14 100644 --- a/internal/controller/control_task.go +++ b/internal/controller/control_task.go @@ -3,7 +3,6 @@ package controller import ( "context" "fmt" - "os" "ticket-pimp/internal/domain" "ticket-pimp/internal/storage/db" "time" @@ -42,17 +41,16 @@ func (wc *WorkflowController) WriteTaskToDB(t *domain.Task) (*domain.Task, error // InitTask /* -Runs the following: - - Use WriteTaskToDB method to make a new task row in the db; - - init new discord bot instance; - - + Runs the following: + - Use WriteTaskToDB method to make a new task row in the db; + - init new discord bot instance; -Possible errors: - - db record couldn't be created; - - bot couldn't be inited; - - bot session couldn't be started; - - thread couldn't be started; - - first task message couldn't be edited; + Possible errors: + - db record couldn't be created; + - bot couldn't be inited; + - bot session couldn't be started; + - thread couldn't be started; + - first task message couldn't be edited; */ func (wc *WorkflowController) InitTask(t *domain.Task) (*domain.Task, error) { @@ -61,14 +59,7 @@ func (wc *WorkflowController) InitTask(t *domain.Task) (*domain.Task, error) { return nil, fmt.Errorf("unable to create task at the db: %v", err) } - // Инициализируем новый клиент дискорда - // [ ] Нездоровое получение параметров клиента из os.. - var ( - token = os.Getenv("DISCORD_TOKEN") - forumChannelID = os.Getenv("TASKS_CHANNEL") - ) - - s, err := discordgo.New("Bot " + token) + s, err := discordgo.New("Bot " + wc.conf.Discord.Token) if err != nil { return task, fmt.Errorf("unable to create discord session: %v", err) } @@ -100,9 +91,10 @@ func (wc *WorkflowController) InitTask(t *domain.Task) (*domain.Task, error) { } th, err := s.ForumThreadStartComplex( - forumChannelID, + wc.conf.Discord.IsTaskForum, &discordgo.ThreadStart{ - Name: fmt.Sprintf("Task ID: %d, by %s", task.ID, task.Creator), + Name: fmt.Sprintf("Task ID: %d, by %s", task.ID, task.Creator), + AppliedTags: []string{"Не начат"}, }, &msg, ) @@ -126,25 +118,34 @@ func (wc *WorkflowController) UpdateTasksMessageID(ctx context.Context, msgID st return err } -func (wc *WorkflowController) UpdateTask(id string, opt int, user string) (*TaskConvertable, error) { +// UpdateTask +/* + - updates task by message Id + - with an action: + 0 for 'in progress' state; + 1 for 'done' state; + - and assignee.. +*/ +func (wc *WorkflowController) UpdateTask(messageId string, opt int, assignee string) (*TaskConvertable, error) { var ( err error dbtask db.Task ) + switch opt { case 0: dbtask, err = wc.q.StartTask(context.TODO(), db.StartTaskParams{ UpdatedAt: pgtype.Timestamptz{Time: time.Now(), InfinityModifier: 0, Valid: true}, - Assignee: pgtype.Text{String: user, Valid: true}, - Messageid: pgtype.Text{String: id, Valid: true}, + Assignee: pgtype.Text{String: assignee, Valid: true}, + Messageid: pgtype.Text{String: messageId, Valid: true}, }) return &TaskConvertable{&dbtask}, err case 1: dbtask, err = wc.q.CloseTask(context.TODO(), db.CloseTaskParams{ DeletedAt: pgtype.Timestamptz{Time: time.Now(), InfinityModifier: 0, Valid: true}, - Assignee: pgtype.Text{String: user, Valid: true}, - Messageid: pgtype.Text{String: id, Valid: true}, + Assignee: pgtype.Text{String: assignee, Valid: true}, + Messageid: pgtype.Text{String: messageId, Valid: true}, }) return &TaskConvertable{&dbtask}, err }