Ctrl K
ComunidadGuías…

internal/userapi/task_inbox_handler.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
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),
	})
}