fix(resolve): release cancelled previews and preserve task ownership

This commit is contained in:
Levi committed 2026-11-10 09:39:07 +08:00
1 parent 763731eaaa
commit 8161042b93
14 files changed
+506 -36

No files matched your search

+9 -1
View File
@@ -51,6 +51,7 @@ func NewService(downloader *download.Downloader) (*Service, error) {
service.routes = []RouteSpec{
newRoute(http.MethodGet, "/api/v1/info", service.info),
newRoute(http.MethodPost, "/api/v1/resolve", service.resolve),
newRoute(http.MethodDelete, "/api/v1/resolve/{id}", service.releaseResolve),
newRoute(http.MethodPost, "/api/v1/tasks", service.createTask),
newRoute(http.MethodPost, "/api/v1/tasks/batch", service.createTaskBatch),
newRoute(http.MethodPatch, "/api/v1/tasks/{id}", service.patchTask),
@@ -143,13 +144,20 @@ func (s *Service) resolve(ctx *Context) *Response {
if response := decodeRequest(ctx.Body, &request); response != nil {
return response
}
result, err := s.Downloader.Resolve(request.Req)
result, err := s.Downloader.ResolveWithID(request.ID, request.Req)
if err != nil {
return newErrorResponse(err.Error())
}
return newOKResponse(result)
}
func (s *Service) releaseResolve(ctx *Context) *Response {
if err := s.Downloader.ReleaseResolve(ctx.PathParam("id")); err != nil {
return newErrorResponse(err.Error())
}
return newOKResponse(nil)
}
func (s *Service) createTask(ctx *Context) *Response {
var request restmodel.CreateTask
if response := decodeRequest(ctx.Body, &request); response != nil {