ticket-pimp/bot/controller/controller.go

47 lines
1.0 KiB
Go

package controller
import (
"io"
d "ticket-pimp/bot/domain"
"ticket-pimp/bot/ext"
)
type WorkflowController struct {
iGit ext.IGit
iCloud ext.ICloud
iYouTrack ext.IYouTrack
additionalYT ext.IYouTrack
iCoda ext.ICoda
}
func NewWorkflowController(
gitBaseURL,
gitToken,
cloudBaseURL,
cloudAuthUser,
cloudAuthPass,
ytBaseURL,
ytToken,
addYTURL,
addYTToken string,
) *WorkflowController {
return &WorkflowController{
iGit: ext.NewGit(gitBaseURL, gitToken),
iCloud: ext.NewCloud(cloudBaseURL, cloudAuthUser, cloudAuthPass),
iYouTrack: ext.NewYT(ytBaseURL, ytToken),
additionalYT: ext.NewYT(addYTURL, addYTToken),
iCoda: ext.NewCodaClient(),
}
}
type IWorkflowController interface {
Workflow(name string) (string, error)
CreateRepo(name string) (*d.Git, error)
CreateFolder(name string) (*d.Folder, error)
NewTask(summ, desc, c, cLink string) *Task
CreateTask(t *Task) (*Task, error)
ThrowConversions(f io.ReadCloser, appID string, token string) *d.ConversionLog
}