From 15cf91aeef5f0e344d0602d3ede056d6bdb43203 Mon Sep 17 00:00:00 2001 From: naudachu Date: Wed, 26 Jul 2023 14:17:34 +0500 Subject: [PATCH] - new YT entity to support multiaccounting; --- bot/controller/controller.go | 22 +++++++++++++--------- bot/controller/task.go | 6 +++--- bot/handler/handler.go | 7 +++++-- cmd/main.go | 4 +++- internal/domain/telegram.go | 7 +++++++ internal/storage/tasks.go | 7 +++++++ 6 files changed, 38 insertions(+), 15 deletions(-) create mode 100644 internal/domain/telegram.go create mode 100644 internal/storage/tasks.go diff --git a/bot/controller/controller.go b/bot/controller/controller.go index 40e1dd2..ecc0ebf 100644 --- a/bot/controller/controller.go +++ b/bot/controller/controller.go @@ -7,10 +7,11 @@ import ( ) type WorkflowController struct { - iGit ext.IGit - iCloud ext.ICloud - iYouTrack ext.IYouTrack - iCoda ext.ICoda + iGit ext.IGit + iCloud ext.ICloud + iYouTrack ext.IYouTrack + additionalYT ext.IYouTrack + iCoda ext.ICoda } func NewWorkflowController( @@ -20,13 +21,16 @@ func NewWorkflowController( cloudAuthUser, cloudAuthPass, ytBaseURL, - ytToken string, + ytToken, + addYTURL, + addYTToken string, ) *WorkflowController { return &WorkflowController{ - iGit: ext.NewGit(gitBaseURL, gitToken), - iCloud: ext.NewCloud(cloudBaseURL, cloudAuthUser, cloudAuthPass), - iYouTrack: ext.NewYT(ytBaseURL, ytToken), - iCoda: ext.NewCodaClient(), + iGit: ext.NewGit(gitBaseURL, gitToken), + iCloud: ext.NewCloud(cloudBaseURL, cloudAuthUser, cloudAuthPass), + iYouTrack: ext.NewYT(ytBaseURL, ytToken), + additionalYT: ext.NewYT(addYTURL, addYTToken), + iCoda: ext.NewCodaClient(), } } diff --git a/bot/controller/task.go b/bot/controller/task.go index 533f5e7..cfe6e78 100644 --- a/bot/controller/task.go +++ b/bot/controller/task.go @@ -23,9 +23,9 @@ func (wc *WorkflowController) NewTask(summ, desc, c, cLink string) *Task { func (wc *WorkflowController) CreateTask(t *Task) (*Task, error) { - yt := wc.iYouTrack + yt := wc.additionalYT - projectID, err := yt.GetProjectIDByName("ETMD") + projectID, err := yt.GetProjectIDByName("E") if err != nil { return nil, err } @@ -38,7 +38,7 @@ func (wc *WorkflowController) CreateTask(t *Task) (*Task, error) { } t.Key = issue.Key - t.URL = fmt.Sprintf("https://marlerino.youtrack.cloud/issue/%s", issue.Key) + t.URL = fmt.Sprintf("https://mobmarlerino.youtrack.cloud/issue/%s", issue.Key) return t, nil } diff --git a/bot/handler/handler.go b/bot/handler/handler.go index ff4937d..3a0b898 100644 --- a/bot/handler/handler.go +++ b/bot/handler/handler.go @@ -17,7 +17,7 @@ type Handler struct { workflow controller.IWorkflowController } -func NewHandler(gitBaseURL, gitToken, cloudBaseURL, cloudAuthUser, cloudAuthPass, ytBaseURL, ytToken string) *Handler { +func NewHandler(gitBaseURL, gitToken, cloudBaseURL, cloudAuthUser, cloudAuthPass, ytBaseURL, ytToken, addYTURL, addYTToken string) *Handler { return &Handler{ workflow: controller.NewWorkflowController( gitBaseURL, @@ -26,7 +26,10 @@ func NewHandler(gitBaseURL, gitToken, cloudBaseURL, cloudAuthUser, cloudAuthPass cloudAuthUser, cloudAuthPass, ytBaseURL, - ytToken), + ytToken, + addYTURL, + addYTToken, + ), } } diff --git a/cmd/main.go b/cmd/main.go index b0f327a..478b121 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -16,7 +16,7 @@ import ( func main() { log.Print("started") - env(".dev.env") + env(".env") ctx := context.Background() ctx, cancel := signal.NotifyContext(ctx, os.Interrupt, os.Kill, syscall.SIGTERM) @@ -54,6 +54,8 @@ func runBot(ctx context.Context) error { os.Getenv("CLOUD_PASS"), os.Getenv("YT_URL"), os.Getenv("YT_TOKEN"), + os.Getenv("YT_ADDITIONAL_URL"), + os.Getenv("YT_ADDITIONAL_TOKEN"), ) router := tgb.NewRouter(). diff --git a/internal/domain/telegram.go b/internal/domain/telegram.go new file mode 100644 index 0000000..11cbaa3 --- /dev/null +++ b/internal/domain/telegram.go @@ -0,0 +1,7 @@ +package domain + +type TgUser struct { + ID string + Name string + TgLink string +} diff --git a/internal/storage/tasks.go b/internal/storage/tasks.go new file mode 100644 index 0000000..01b53f3 --- /dev/null +++ b/internal/storage/tasks.go @@ -0,0 +1,7 @@ +package storage + +import "ticket-pimp/internal/domain" + +type TaskRepository interface { + GetOrCreate(tg string) *domain.TgUser +}