internal/userapi/task_inbox_handler.go
Rama main · réplica de lectura del repositorio original.
package userapi
import (
"net/http"
"github.com/yeomyeonggeori/blueclaw/internal/task"
)
type TaskInboxHandler struct {
TaskRunService *task.TaskRunService
TaskStepService *task.TaskStepService
TaskAuthService *task.TaskAuthService
}
func (taskInboxHandler TaskInboxHandler) HandleListOwnTaskRun(responseWriter http.ResponseWriter, request *http.Request) {
taskSessionID := request.URL.Query().Get("taskSessionID")
taskSession, errorValue := taskInboxHandler.TaskAuthService.ResolveTaskSession(taskSessionID)
if errorValue != nil {
http.Error(responseWriter, errorValue.Error(), http.StatusUnauthorized)
return
}
writeJSON(responseWriter, http.StatusOK, taskInboxHandler.TaskRunService.ListTaskRunByPersonID(taskSession.PersonID))
}
func (taskInboxHandler TaskInboxHandler) HandleGetOwnTaskRun(responseWriter http.ResponseWriter, request *http.Request) {
taskSessionID := request.URL.Query().Get("taskSessionID")
taskRunID := request.URL.Query().Get("taskRunID")
taskRun, errorValue := taskInboxHandler.TaskAuthService.AuthorizeTaskAccess(taskSessionID, taskRunID)
if errorValue != nil {
http.Error(responseWriter, errorValue.Error(), http.StatusUnauthorized)
return
}
writeJSON(responseWriter, http.StatusOK, map[string]any{
"taskRun": taskRun,
"taskSteps": taskInboxHandler.TaskStepService.ListTaskStep(taskRunID),
})
}