ticket-pimp/internal/controller/controller.go

65 lines
1.2 KiB
Go

package controller
import (
"ticket-pimp/adapters"
"ticket-pimp/internal/domain"
"ticket-pimp/internal/storage/db"
"github.com/bwmarrin/discordgo"
"github.com/jackc/pgx/v5/pgxpool"
)
type WorkflowController struct {
IGit adapters.IGit
ICloud adapters.ICloud
ICoda adapters.ICoda
pool *pgxpool.Pool
q *db.Queries
ATags []discordgo.ForumTag
}
func NewWorkflowController(
git adapters.IGit,
cloud adapters.ICloud,
coda adapters.ICoda,
pool *pgxpool.Pool,
) *WorkflowController {
return &WorkflowController{
IGit: git,
ICloud: cloud,
ICoda: coda,
pool: pool,
q: db.New(pool),
}
}
type ProjectResponse struct {
Project *domain.Project
Message error
}
type TaskConvertable struct {
*db.Task
}
func newConvertable(db *db.Task) *TaskConvertable {
return &TaskConvertable{
Task: db,
}
}
func (t *TaskConvertable) ExtractDomain() *domain.Task {
return &domain.Task{
ID: t.ID,
// Summary: "",
Description: t.Description.String,
Creator: t.Creator.String,
CreatorLink: t.CreatorLink.String,
Assignee: t.Assignee.String,
CreatedAt: t.CreatedAt.Time,
DeletedAt: t.DeletedAt.Time,
UpdatedAt: t.UpdatedAt.Time,
// URL: "",
}
}