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

Method Files

service/admin/file.go:162–237  ·  view source on GitHub ↗
(c *gin.Context)

Source from the content-addressed store, hash-verified

160)
161
162func (service *AdminListService) Files(c *gin.Context) (*ListFileResponse, error) {
163 dep := dependency.FromContext(c)
164 hasher := dep.HashIDEncoder()
165 fileClient := dep.FileClient()
166
167 ctx := context.WithValue(c, inventory.LoadFileEntity{}, true)
168 ctx = context.WithValue(ctx, inventory.LoadFileMetadata{}, true)
169 ctx = context.WithValue(ctx, inventory.LoadFileShare{}, true)
170 ctx = context.WithValue(ctx, inventory.LoadFileUser{}, true)
171 ctx = context.WithValue(ctx, inventory.LoadFileDirectLink{}, true)
172
173 var (
174 err error
175 userID int
176 policyID int
177 metadata string
178 shared bool
179 directLink bool
180 )
181
182 if service.Conditions[fileUserCondition] != "" {
183 userID, err = strconv.Atoi(service.Conditions[fileUserCondition])
184 if err != nil {
185 return nil, serializer.NewError(serializer.CodeParamErr, "Invalid user ID", err)
186 }
187 }
188
189 if service.Conditions[filePolicyCondition] != "" {
190 policyID, err = strconv.Atoi(service.Conditions[filePolicyCondition])
191 if err != nil {
192 return nil, serializer.NewError(serializer.CodeParamErr, "Invalid policy ID", err)
193 }
194 }
195
196 if service.Conditions[fileMetadataCondition] != "" {
197 metadata = service.Conditions[fileMetadataCondition]
198 }
199
200 if service.Conditions[fileSharedCondition] != "" && setting.IsTrueValue(service.Conditions[fileSharedCondition]) {
201 shared = true
202 }
203
204 if service.Conditions[fileDirectLinkCondition] != "" && setting.IsTrueValue(service.Conditions[fileDirectLinkCondition]) {
205 directLink = true
206 }
207
208 res, err := fileClient.FlattenListFiles(ctx, &inventory.FlattenListFileParameters{
209 PaginationArgs: &inventory.PaginationArgs{
210 Page: service.Page - 1,
211 PageSize: service.PageSize,
212 OrderBy: service.OrderBy,
213 Order: inventory.OrderDirection(service.OrderDirection),
214 },
215 UserID: userID,
216 StoragePolicyID: policyID,
217 Name: service.Conditions[fileNameCondition],
218 HasMetadata: metadata,
219 Shared: shared,

Callers 1

AdminListFilesFunction · 0.80

Calls 9

FromContextFunction · 0.92
NewErrorFunction · 0.92
IsTrueValueFunction · 0.92
OrderDirectionTypeAlias · 0.92
EncodeUserIDFunction · 0.92
EncodeFileIDFunction · 0.92
HashIDEncoderMethod · 0.65
FileClientMethod · 0.65
FlattenListFilesMethod · 0.65

Tested by

no test coverage detected