service backend
This commit is contained in:
110
api/pkg/mutil/helpers/internal/taskmanager.go
Normal file
110
api/pkg/mutil/helpers/internal/taskmanager.go
Normal file
@@ -0,0 +1,110 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/tech/sendico/pkg/merrors"
|
||||
"github.com/tech/sendico/pkg/mlogger"
|
||||
"github.com/tech/sendico/pkg/model"
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
)
|
||||
|
||||
// TaskManager is a placeholder implementation that validates input and provides a consistent
|
||||
// constructor until the full business logic is available.
|
||||
type TaskManager struct {
|
||||
logger mlogger.Logger
|
||||
projectDB any
|
||||
taskDB any
|
||||
}
|
||||
|
||||
// NewTaskManager creates a new TaskManager instance.
|
||||
func NewTaskManager(logger mlogger.Logger, projectDB, taskDB any) *TaskManager {
|
||||
var namedLogger mlogger.Logger
|
||||
if logger != nil {
|
||||
namedLogger = logger.Named("task_manager")
|
||||
}
|
||||
return &TaskManager{
|
||||
logger: namedLogger,
|
||||
projectDB: projectDB,
|
||||
taskDB: taskDB,
|
||||
}
|
||||
}
|
||||
|
||||
func (m *TaskManager) CreateTask(ctx context.Context, accountRef, organizationRef primitive.ObjectID, task *model.Task) error {
|
||||
if ctx == nil {
|
||||
return merrors.InvalidArgument("context is nil")
|
||||
}
|
||||
if accountRef.IsZero() {
|
||||
return merrors.InvalidArgument("account reference is zero")
|
||||
}
|
||||
if organizationRef.IsZero() {
|
||||
return merrors.InvalidArgument("organization reference is zero")
|
||||
}
|
||||
if task == nil {
|
||||
return merrors.InvalidArgument("task is nil")
|
||||
}
|
||||
if task.ProjectRef.IsZero() {
|
||||
return merrors.InvalidArgument("task.projectRef is zero")
|
||||
}
|
||||
if task.StatusRef.IsZero() {
|
||||
return merrors.InvalidArgument("task.statusRef is zero")
|
||||
}
|
||||
return merrors.NotImplemented("task manager CreateTask requires data layer integration")
|
||||
}
|
||||
|
||||
func (m *TaskManager) MoveTask(ctx context.Context, accountRef, organizationRef primitive.ObjectID, taskRef, targetProjectRef, targetStatusRef primitive.ObjectID) error {
|
||||
if ctx == nil {
|
||||
return merrors.InvalidArgument("context is nil")
|
||||
}
|
||||
if accountRef.IsZero() {
|
||||
return merrors.InvalidArgument("account reference is zero")
|
||||
}
|
||||
if organizationRef.IsZero() {
|
||||
return merrors.InvalidArgument("organization reference is zero")
|
||||
}
|
||||
if taskRef.IsZero() {
|
||||
return merrors.InvalidArgument("task reference is zero")
|
||||
}
|
||||
if targetProjectRef.IsZero() {
|
||||
return merrors.InvalidArgument("target project reference is zero")
|
||||
}
|
||||
if targetStatusRef.IsZero() {
|
||||
return merrors.InvalidArgument("target status reference is zero")
|
||||
}
|
||||
return merrors.NotImplemented("task manager MoveTask requires data layer integration")
|
||||
}
|
||||
|
||||
func (m *TaskManager) MoveTasks(ctx context.Context, accountRef, organizationRef, sourceProjectRef, targetProjectRef, targetStatusRef primitive.ObjectID) error {
|
||||
if ctx == nil {
|
||||
return merrors.InvalidArgument("context is nil")
|
||||
}
|
||||
if accountRef.IsZero() {
|
||||
return merrors.InvalidArgument("account reference is zero")
|
||||
}
|
||||
if organizationRef.IsZero() {
|
||||
return merrors.InvalidArgument("organization reference is zero")
|
||||
}
|
||||
if sourceProjectRef.IsZero() {
|
||||
return merrors.InvalidArgument("source project reference is zero")
|
||||
}
|
||||
if targetProjectRef.IsZero() {
|
||||
return merrors.InvalidArgument("target project reference is zero")
|
||||
}
|
||||
if targetStatusRef.IsZero() {
|
||||
return merrors.InvalidArgument("target status reference is zero")
|
||||
}
|
||||
return merrors.NotImplemented("task manager MoveTasks requires data layer integration")
|
||||
}
|
||||
|
||||
func (m *TaskManager) DeleteTask(ctx context.Context, accountRef, taskRef primitive.ObjectID) error {
|
||||
if ctx == nil {
|
||||
return merrors.InvalidArgument("context is nil")
|
||||
}
|
||||
if accountRef.IsZero() {
|
||||
return merrors.InvalidArgument("account reference is zero")
|
||||
}
|
||||
if taskRef.IsZero() {
|
||||
return merrors.InvalidArgument("task reference is zero")
|
||||
}
|
||||
return merrors.NotImplemented("task manager DeleteTask requires data layer integration")
|
||||
}
|
||||
Reference in New Issue
Block a user