MCPcopy Create free account
hub / github.com/cloudreve/cloudreve / SetDownloadFiles

Method SetDownloadFiles

service/explorer/workflows.go:423–452  ·  view source on GitHub ↗
(c *gin.Context, taskID int)

Source from the content-addressed store, hash-verified

421)
422
423func (service *SetDownloadFilesService) SetDownloadFiles(c *gin.Context, taskID int) error {
424 dep := dependency.FromContext(c)
425 u := inventory.UserFromContext(c)
426 r := dep.TaskRegistry()
427
428 t, found := r.Get(taskID)
429 if !found || t.Owner().ID != u.ID {
430 return serializer.NewError(serializer.CodeNotFound, "Task not found", nil)
431 }
432
433 status := t.Status()
434 summary := t.Summarize(dep.HashIDEncoder())
435 // Task must be in processing state
436 if status != task.StatusSuspending && status != task.StatusProcessing {
437 return serializer.NewError(serializer.CodeNotFound, "Task not in processing state", nil)
438 }
439
440 // Task must in monitoring loop
441 if summary.Phase != workflows.RemoteDownloadTaskPhaseMonitor {
442 return serializer.NewError(serializer.CodeNotFound, "Task not in monitoring loop", nil)
443 }
444
445 if downloadTask, ok := t.(*workflows.RemoteDownloadTask); ok {
446 if err := downloadTask.SetDownloadTarget(c, service.Files...); err != nil {
447 return serializer.NewError(serializer.CodeInternalSetting, "Failed to set download files", err)
448 }
449 }
450
451 return nil
452}
453
454type (
455 RebuildFTSIndexWorkflowService struct {

Callers 1

SetDownloadTaskTargetFunction · 0.80

Calls 10

FromContextFunction · 0.92
UserFromContextFunction · 0.92
NewErrorFunction · 0.92
SetDownloadTargetMethod · 0.80
TaskRegistryMethod · 0.65
GetMethod · 0.65
OwnerMethod · 0.65
StatusMethod · 0.65
SummarizeMethod · 0.65
HashIDEncoderMethod · 0.65

Tested by

no test coverage detected