From 0d48ccedb90be9bb6ca480ed78b2ba9afdf84f3b Mon Sep 17 00:00:00 2001 From: naudachu Date: Sat, 8 Jul 2023 14:13:45 +0500 Subject: [PATCH] Setup domain method to get ID by Project Name --- bot/domain/youtrack.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/bot/domain/youtrack.go b/bot/domain/youtrack.go index 6f47f2a..e52085d 100644 --- a/bot/domain/youtrack.go +++ b/bot/domain/youtrack.go @@ -1,5 +1,7 @@ package domain +import "fmt" + type Project struct { ID string `json:"id"` ShortName string `json:"shortName"` @@ -10,6 +12,23 @@ type ProjectID struct { ID string `json:"id"` } +// Find needed project.ID in the project's list +func (plist *ProjectsList) FindProjectByName(searchName string) (string, error) { + + projectID := "" + + for _, elem := range plist.Projects { + if elem.ShortName == searchName { + projectID = elem.ID + } + } + + if projectID == "" { + return "", fmt.Errorf("project %s doesn't exist", searchName) + } + return projectID, nil +} + type IssueCreateRequest struct { ProjectID ProjectID `json:"project"` Key string `json:"idReadable"` @@ -30,3 +49,7 @@ type CustomField struct { Type string `json:"$type"` Value string `json:"value"` } + +type ProjectsList struct { + Projects []Project +}