MCPcopy Index your code
hub / github.com/cloudreve/cloudreve / CreateExtractTask

Method CreateExtractTask

service/explorer/workflows.go:182–218  ·  view source on GitHub ↗
(c *gin.Context)

Source from the content-addressed store, hash-verified

180)
181
182func (service *ArchiveWorkflowService) CreateExtractTask(c *gin.Context) (*TaskResponse, error) {
183 dep := dependency.FromContext(c)
184 user := inventory.UserFromContext(c)
185 hasher := dep.HashIDEncoder()
186 m := manager.NewFileManager(dep, user)
187 defer m.Recycle()
188
189 if !user.Edges.Group.Permissions.Enabled(int(types.GroupPermissionArchiveTask)) {
190 return nil, serializer.NewError(serializer.CodeGroupNotAllowed, "Group not allowed to compress files", nil)
191 }
192
193 dst, err := fs.NewUriFromString(service.Dst)
194 if err != nil {
195 return nil, serializer.NewError(serializer.CodeParamErr, "Invalid destination", err)
196 }
197
198 if len(service.Src) == 0 {
199 return nil, serializer.NewError(serializer.CodeParamErr, "No source files", nil)
200 }
201
202 // Validate destination
203 if _, err := m.Get(c, dst, dbfs.WithRequiredCapabilities(dbfs.NavigatorCapabilityCreateFile)); err != nil {
204 return nil, serializer.NewError(serializer.CodeParamErr, "Invalid destination", err)
205 }
206
207 // Create task
208 t, err := workflows.NewExtractArchiveTask(c, service.Src[0], service.Dst, service.Encoding, service.Password, service.FileMask)
209 if err != nil {
210 return nil, serializer.NewError(serializer.CodeCreateTaskError, "Failed to create task", err)
211 }
212
213 if err := dep.IoIntenseQueue(c).QueueTask(c, t); err != nil {
214 return nil, serializer.NewError(serializer.CodeCreateTaskError, "Failed to queue task", err)
215 }
216
217 return BuildTaskResponse(t, nil, hasher), nil
218}
219
220// CreateCompressTask Create task to create an archive file
221func (service *ArchiveWorkflowService) CreateCompressTask(c *gin.Context) (*TaskResponse, error) {

Callers 1

ExtractArchiveFunction · 0.80

Calls 14

RecycleMethod · 0.95
GetMethod · 0.95
FromContextFunction · 0.92
UserFromContextFunction · 0.92
NewFileManagerFunction · 0.92
NewErrorFunction · 0.92
NewUriFromStringFunction · 0.92
WithRequiredCapabilitiesFunction · 0.92
NewExtractArchiveTaskFunction · 0.92
BuildTaskResponseFunction · 0.85
HashIDEncoderMethod · 0.65
EnabledMethod · 0.65

Tested by

no test coverage detected