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

Method Do

pkg/filemanager/manager/recycle.go:95–118  ·  view source on GitHub ↗
(ctx context.Context)

Source from the content-addressed store, hash-verified

93}
94
95func (m *ExplicitEntityRecycleTask) Do(ctx context.Context) (task.Status, error) {
96 dep := dependency.FromContext(ctx)
97 fm := NewFileManager(dep, inventory.UserFromContext(ctx)).(*manager)
98
99 // unmarshal state
100 state := &ExplicitEntityRecycleTaskState{}
101 if err := json.Unmarshal([]byte(m.State()), state); err != nil {
102 return task.StatusError, fmt.Errorf("failed to unmarshal state: %w", err)
103 }
104
105 // recycle entities
106 err := fm.RecycleEntities(ctx, false, state.EntityIDs...)
107 if err != nil {
108 appendAe(&state.Errors, err)
109 privateState, err := json.Marshal(state)
110 if err != nil {
111 return task.StatusError, fmt.Errorf("failed to marshal state: %w", err)
112 }
113 m.Task.PrivateState = string(privateState)
114 return task.StatusError, err
115 }
116
117 return task.StatusCompleted, nil
118}
119
120type (
121 EntityRecycleRoutineTask struct {

Callers

nothing calls this directly

Calls 6

FromContextFunction · 0.92
UserFromContextFunction · 0.92
NewFileManagerFunction · 0.85
appendAeFunction · 0.85
StateMethod · 0.65
RecycleEntitiesMethod · 0.65

Tested by

no test coverage detected