From 69839292b1c1eb8b373ff6e333319fd3aaa73ea8 Mon Sep 17 00:00:00 2001 From: John Harrington <84741727+harr1424@users.noreply.github.com> Date: Wed, 24 Dec 2025 08:07:47 -0700 Subject: [PATCH] WIP explore existing Send attributes and logic --- apps/cli/src/tools/send/commands/create.command.ts | 3 ++- apps/cli/src/tools/send/models/send.response.ts | 1 + apps/cli/src/tools/send/send.program.ts | 5 ++--- libs/common/src/tools/send/models/domain/send.ts | 1 + libs/common/src/tools/send/models/view/send.view.ts | 1 + 5 files changed, 7 insertions(+), 4 deletions(-) diff --git a/apps/cli/src/tools/send/commands/create.command.ts b/apps/cli/src/tools/send/commands/create.command.ts index 7803f6f94d4..c6599a18cfc 100644 --- a/apps/cli/src/tools/send/commands/create.command.ts +++ b/apps/cli/src/tools/send/commands/create.command.ts @@ -87,6 +87,7 @@ export class SendCreateCommand { req.key = null; req.maxAccessCount = maxAccessCount; + req.emails = emails; //TODO should this be encrypted? const hasPremium$ = this.accountService.activeAccount$.pipe( switchMap(({ id }) => this.accountProfileService.hasPremiumFromAnySource$(id)), @@ -139,7 +140,7 @@ export class SendCreateCommand { // Add dates from template encSend.deletionDate = sendView.deletionDate; encSend.expirationDate = sendView.expirationDate; - encSend.emails = emails && emails.join(","); + encSend.emails = emails && emails.join(","); // TODO should this be encrypted await this.sendApiService.save([encSend, fileData]); const newSend = await this.sendService.getFromState(encSend.id); diff --git a/apps/cli/src/tools/send/models/send.response.ts b/apps/cli/src/tools/send/models/send.response.ts index a0c1d3f83c6..87f71cbf049 100644 --- a/apps/cli/src/tools/send/models/send.response.ts +++ b/apps/cli/src/tools/send/models/send.response.ts @@ -116,6 +116,7 @@ export class SendResponse implements BaseResponse { this.deletionDate = o.deletionDate; this.expirationDate = o.expirationDate; this.passwordSet = o.password != null; + this.emails = o.emails ?? []; this.disabled = o.disabled; this.hideEmail = o.hideEmail; diff --git a/apps/cli/src/tools/send/send.program.ts b/apps/cli/src/tools/send/send.program.ts index 33bf4518ccd..900131b9e2d 100644 --- a/apps/cli/src/tools/send/send.program.ts +++ b/apps/cli/src/tools/send/send.program.ts @@ -59,9 +59,7 @@ export class SendProgram extends BaseProgram { new Option( "--email ", "optional emails to access this Send. Can also be specified in JSON.", - ) - .argParser(parseEmail) - .hideHelp(), + ).argParser(parseEmail), ) .option("-a, --maxAccessCount ", "The amount of max possible accesses.") .option("--hidden", "Hide in web by default. Valid only if --file is not set.") @@ -328,6 +326,7 @@ export class SendProgram extends BaseProgram { file: sendFile, text: sendText, type: type, + emails: options.email ?? undefined, }); return Buffer.from(JSON.stringify(template), "utf8").toString("base64"); diff --git a/libs/common/src/tools/send/models/domain/send.ts b/libs/common/src/tools/send/models/domain/send.ts index 2bf16de8a44..bca3b4f7c6d 100644 --- a/libs/common/src/tools/send/models/domain/send.ts +++ b/libs/common/src/tools/send/models/domain/send.ts @@ -33,6 +33,7 @@ export class Send extends Domain { emails: string; disabled: boolean; hideEmail: boolean; + // TODO add authType enum constructor(obj?: SendData) { super(); diff --git a/libs/common/src/tools/send/models/view/send.view.ts b/libs/common/src/tools/send/models/view/send.view.ts index 54657b12438..def3d29d0d2 100644 --- a/libs/common/src/tools/send/models/view/send.view.ts +++ b/libs/common/src/tools/send/models/view/send.view.ts @@ -29,6 +29,7 @@ export class SendView implements View { emails: string[] = []; disabled = false; hideEmail = false; + // TODO add AuthType enum constructor(s?: Send) { if (!s) {