Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions src/commands/folders/move.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@ class FoldersMoveCommand extends BoxCommand {
updates.etag = flags.etag;
}

if (flags['owned-by']) {
updates.owned_by = {
id: flags['owned-by'],
};
}

let movedFolder = await this.client.folders.update(args.id, updates);
await this.output(movedFolder);
}
Expand All @@ -28,6 +34,7 @@ FoldersMoveCommand._endpoint = 'put_folders_id move';
FoldersMoveCommand.flags = {
...BoxCommand.flags,
etag: Flags.string({ description: 'Only move if etag value matches' }),
'owned-by': Flags.string({ description: 'ID of the user to own the folder' }),
};

FoldersMoveCommand.args = {
Expand Down
27 changes: 27 additions & 0 deletions test/commands/folders.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -136,13 +136,22 @@ describe('Folders', () => {
describe('folders:move', () => {
let folderId = '0',
parentFolderId = '987654321',
ownedById = '1234567890',
moveFixture = getFixture('folders/put_folders_id'),
yamlOutput = getFixture('output/folders_move_yaml.txt');

let moveBody = {
parent: {
id: parentFolderId
}
},
moveBodyWithOwnedBy = {
parent: {
id: parentFolderId
},
owned_by: {
id: ownedById
}
};

test
Expand Down Expand Up @@ -205,6 +214,24 @@ describe('Folders', () => {
let msg = 'Unexpected API Response [412 Precondition Failed | 1wne91fxf8871ide] precondition_failed - The resource has been modified. Please retrieve the resource again and retry';
assert.equal(ctx.stderr, `${msg}${os.EOL}`);
});

test
.nock(TEST_API_ROOT, api => api
.put(`/2.0/folders/${folderId}`, moveBodyWithOwnedBy)
.reply(200, moveFixture)
)
.stdout()
.command([
'folders:move',
folderId,
parentFolderId,
`--owned-by=${ownedById}`,
'--json',
'--token=test'
])
.it('should move a folder to a different folder and set the owner', ctx => {
assert.equal(ctx.stdout, moveFixture);
});
});

describe('folders:delete', () => {
Expand Down