(dbx filesClient, targets []removeTarget, opts removeOptions)
| 155 | } |
| 156 | |
| 157 | func removeTargets(dbx filesClient, targets []removeTarget, opts removeOptions) ([]removeResult, error) { |
| 158 | results := make([]removeResult, 0, len(targets)) |
| 159 | |
| 160 | for _, target := range targets { |
| 161 | arg := files.NewDeleteArg(target.path) |
| 162 | metadata := target.metadata |
| 163 | |
| 164 | if opts.permanent { |
| 165 | if err := dbx.PermanentlyDeleteContext(currentContext(), arg); err != nil { |
| 166 | return nil, withJSONErrorDetails(err, operationErrorDetails(removeOperation(opts)), pathErrorDetails(target.path)) |
| 167 | } |
| 168 | } else { |
| 169 | res, err := dbx.DeleteV2Context(currentContext(), arg) |
| 170 | if err != nil { |
| 171 | return nil, withJSONErrorDetails(err, operationErrorDetails(removeOperation(opts)), pathErrorDetails(target.path)) |
| 172 | } |
| 173 | if res != nil && res.Metadata != nil { |
| 174 | metadata = res.Metadata |
| 175 | } |
| 176 | } |
| 177 | |
| 178 | result, err := newRemoveResult(target.path, metadata, opts) |
| 179 | if err != nil { |
| 180 | return nil, withJSONErrorDetails(err, operationErrorDetails(removeOperation(opts)), pathErrorDetails(target.path)) |
| 181 | } |
| 182 | results = append(results, result) |
| 183 | } |
| 184 | |
| 185 | return results, nil |
| 186 | } |
| 187 | |
| 188 | func newRemoveResult(path string, metadata files.IsMetadata, opts removeOptions) (removeResult, error) { |
| 189 | result, err := removeMetadataFromDropbox(path, metadata) |
no test coverage detected