1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-10-30 08:10:34 +01:00
bitwarden-browser/apps/cli/src/commands/restore.command.ts

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

37 lines
958 B
TypeScript
Raw Normal View History

2022-06-14 17:10:53 +02:00
import { CipherService } from "@bitwarden/common/abstractions/cipher.service";
import { Response } from "@bitwarden/node/cli/models/response";
export class RestoreCommand {
constructor(private cipherService: CipherService) {}
2022-01-19 16:45:14 +01:00
async run(object: string, id: string): Promise<Response> {
if (id != null) {
id = id.toLowerCase();
}
switch (object.toLowerCase()) {
case "item":
2022-01-19 16:45:14 +01:00
return await this.restoreCipher(id);
default:
return Response.badRequest("Unknown object.");
}
2021-12-20 18:04:00 +01:00
}
2022-01-19 16:45:14 +01:00
private async restoreCipher(id: string) {
const cipher = await this.cipherService.get(id);
if (cipher == null) {
return Response.notFound();
}
if (cipher.deletedDate == null) {
return Response.badRequest("Cipher is not in trash.");
}
try {
await this.cipherService.restoreWithServer(id);
return Response.success();
} catch (e) {
return Response.error(e);
}
2021-12-20 18:04:00 +01:00
}
}