Files
kandev/backend/internal/task/api/router.go
T
jcfs ba919305c2 Initial commit: Kandev with SQLite persistence and agent integration
Features:
- Unified Go binary running Task Service, Agent Manager, and Orchestrator
- SQLite persistence for boards, columns, and tasks
- Docker-based agent execution with ACP message streaming
- Augment Agent integration with session resumption support
- RESTful API for all operations (port 8080)
- In-memory event bus for service communication

Architecture:
- cmd/kandev: Single entry point for all services
- internal/task: Task, board, and column management
- internal/agent: Docker container lifecycle and ACP streaming
- internal/orchestrator: Agent coordination and monitoring
- internal/events: In-memory pub/sub event bus

Documentation:
- README.md: Project overview and quick start
- docs/ARCHITECTURE.md: System architecture (current + planned)
- docs/GETTING_STARTED.md: Development setup guide
- docs/IMPLEMENTATION_PLAN.md: Original microservices plan
- backend/NEXT_STEPS.md: Development roadmap
2026-01-10 01:30:24 +00:00

47 lines
1.2 KiB
Go

package api
import (
"github.com/gin-gonic/gin"
"github.com/kandev/kandev/internal/common/logger"
"github.com/kandev/kandev/internal/task/service"
)
// SetupRoutes configures the task API routes
func SetupRoutes(router *gin.RouterGroup, svc *service.Service, log *logger.Logger) {
handler := NewHandler(svc, log)
// Board routes
boards := router.Group("/boards")
{
boards.POST("", handler.CreateBoard)
boards.GET("", handler.ListBoards)
boards.GET("/:boardId", handler.GetBoard)
boards.PUT("/:boardId", handler.UpdateBoard)
boards.DELETE("/:boardId", handler.DeleteBoard)
// Board sub-resources
boards.GET("/:boardId/tasks", handler.ListTasks)
boards.POST("/:boardId/columns", handler.CreateColumn)
boards.GET("/:boardId/columns", handler.ListColumns)
}
// Task routes
tasks := router.Group("/tasks")
{
tasks.POST("", handler.CreateTask)
tasks.GET("/:taskId", handler.GetTask)
tasks.PUT("/:taskId", handler.UpdateTask)
tasks.DELETE("/:taskId", handler.DeleteTask)
tasks.PUT("/:taskId/state", handler.UpdateTaskState)
tasks.PUT("/:taskId/move", handler.MoveTask)
}
// Column routes
columns := router.Group("/columns")
{
columns.GET("/:columnId", handler.GetColumn)
}
}