mirror of
https://github.com/bitwarden/browser
synced 2025-12-12 06:13:38 +00:00
[SG 623] Send Service Refactor (#4327)
* Split out api methods into sendApiService * Move SendService and abstraction * Libs updates * Web updates * CLI updates * Desktop updates * libs send service fixes * browser factory additions * Browser updates * Fix service injection for CLI SendReceiveCommand * Deprecate directly calling send state service methods * SendService observables updates * Update components to use new observables * Modify CLI to use state service instead of observables * Remove unnecessary await on get() * Move delete() to InternalSendService * SendService unit tests * Split fileUploadService by send and cipher * send and cipher service factory updates * Add file upload methods to get around circular dependency issues * Move api methods from sendService to sendApiService * Update cipherService to use fileApi methods * libs service injection and component changes * browser service injection and component changes * Desktop component changes * Web component changes * cipher service test fix * Fix file capitalization * CLI service import and command updates * Remove extra abstract fileUploadService * WIP: Condense callbacks for file upload Co-authored-by: Robyn MacCallum <robyntmaccallum@gmail.com> * Send callbacks for file upload * Fix circular service dependencies * Fix response return on upload * Fix function definitions * Service injection fixes and bug fixes * Fix folder casing * Service injection cleanup * Remove deleted file from capital letters whitelist * Create new SendApiService for popup * Move cipherFileUploadService to vault * Move SendFileUploadService methods into SendApiService * Rename methods to remove 'WithServer' * Properly subscribe to sendViews * Fix Send serialization * Implement fromJSON on sendFile and sendText * [PM-1347] Fix send key serialization (#4989) * Properly serialize key on send fromJSON * Remove call that nulled out decrypted sends * Fix null checks in fromJSON methods for models * lint fixes --------- Co-authored-by: Matt Gibson <mgibson@bitwarden.com>
This commit is contained in:
@@ -121,8 +121,6 @@ import { KeysRequest } from "../models/request/keys.request";
|
||||
import { OrganizationImportRequest } from "../models/request/organization-import.request";
|
||||
import { PreloginRequest } from "../models/request/prelogin.request";
|
||||
import { RegisterRequest } from "../models/request/register.request";
|
||||
import { SendAccessRequest } from "../models/request/send-access.request";
|
||||
import { SendRequest } from "../models/request/send.request";
|
||||
import { StorageRequest } from "../models/request/storage.request";
|
||||
import { UpdateAvatarRequest } from "../models/request/update-avatar.request";
|
||||
import { UpdateDomainsRequest } from "../models/request/update-domains.request";
|
||||
@@ -135,12 +133,7 @@ import { ErrorResponse } from "../models/response/error.response";
|
||||
import { EventResponse } from "../models/response/event.response";
|
||||
import { ListResponse } from "../models/response/list.response";
|
||||
import { ProfileResponse } from "../models/response/profile.response";
|
||||
import { SendAccessResponse } from "../models/response/send-access.response";
|
||||
import { SendFileDownloadDataResponse } from "../models/response/send-file-download-data.response";
|
||||
import { SendFileUploadDataResponse } from "../models/response/send-file-upload-data.response";
|
||||
import { SendResponse } from "../models/response/send.response";
|
||||
import { UserKeyResponse } from "../models/response/user-key.response";
|
||||
import { SendAccessView } from "../models/view/send-access.view";
|
||||
import { AttachmentRequest } from "../vault/models/request/attachment.request";
|
||||
import { CipherBulkDeleteRequest } from "../vault/models/request/cipher-bulk-delete.request";
|
||||
import { CipherBulkMoveRequest } from "../vault/models/request/cipher-bulk-move.request";
|
||||
@@ -485,103 +478,6 @@ export class ApiService implements ApiServiceAbstraction {
|
||||
return new BillingPaymentResponse(r);
|
||||
}
|
||||
|
||||
// Send APIs
|
||||
|
||||
async getSend(id: string): Promise<SendResponse> {
|
||||
const r = await this.send("GET", "/sends/" + id, null, true, true);
|
||||
return new SendResponse(r);
|
||||
}
|
||||
|
||||
async postSendAccess(
|
||||
id: string,
|
||||
request: SendAccessRequest,
|
||||
apiUrl?: string
|
||||
): Promise<SendAccessResponse> {
|
||||
const addSendIdHeader = (headers: Headers) => {
|
||||
headers.set("Send-Id", id);
|
||||
};
|
||||
const r = await this.send(
|
||||
"POST",
|
||||
"/sends/access/" + id,
|
||||
request,
|
||||
false,
|
||||
true,
|
||||
apiUrl,
|
||||
addSendIdHeader
|
||||
);
|
||||
return new SendAccessResponse(r);
|
||||
}
|
||||
|
||||
async getSendFileDownloadData(
|
||||
send: SendAccessView,
|
||||
request: SendAccessRequest,
|
||||
apiUrl?: string
|
||||
): Promise<SendFileDownloadDataResponse> {
|
||||
const addSendIdHeader = (headers: Headers) => {
|
||||
headers.set("Send-Id", send.id);
|
||||
};
|
||||
const r = await this.send(
|
||||
"POST",
|
||||
"/sends/" + send.id + "/access/file/" + send.file.id,
|
||||
request,
|
||||
false,
|
||||
true,
|
||||
apiUrl,
|
||||
addSendIdHeader
|
||||
);
|
||||
return new SendFileDownloadDataResponse(r);
|
||||
}
|
||||
|
||||
async getSends(): Promise<ListResponse<SendResponse>> {
|
||||
const r = await this.send("GET", "/sends", null, true, true);
|
||||
return new ListResponse(r, SendResponse);
|
||||
}
|
||||
|
||||
async postSend(request: SendRequest): Promise<SendResponse> {
|
||||
const r = await this.send("POST", "/sends", request, true, true);
|
||||
return new SendResponse(r);
|
||||
}
|
||||
|
||||
async postFileTypeSend(request: SendRequest): Promise<SendFileUploadDataResponse> {
|
||||
const r = await this.send("POST", "/sends/file/v2", request, true, true);
|
||||
return new SendFileUploadDataResponse(r);
|
||||
}
|
||||
|
||||
async renewSendFileUploadUrl(
|
||||
sendId: string,
|
||||
fileId: string
|
||||
): Promise<SendFileUploadDataResponse> {
|
||||
const r = await this.send("GET", "/sends/" + sendId + "/file/" + fileId, null, true, true);
|
||||
return new SendFileUploadDataResponse(r);
|
||||
}
|
||||
|
||||
postSendFile(sendId: string, fileId: string, data: FormData): Promise<any> {
|
||||
return this.send("POST", "/sends/" + sendId + "/file/" + fileId, data, true, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads.
|
||||
* This method still exists for backward compatibility with old server versions.
|
||||
*/
|
||||
async postSendFileLegacy(data: FormData): Promise<SendResponse> {
|
||||
const r = await this.send("POST", "/sends/file", data, true, true);
|
||||
return new SendResponse(r);
|
||||
}
|
||||
|
||||
async putSend(id: string, request: SendRequest): Promise<SendResponse> {
|
||||
const r = await this.send("PUT", "/sends/" + id, request, true, true);
|
||||
return new SendResponse(r);
|
||||
}
|
||||
|
||||
async putSendRemovePassword(id: string): Promise<SendResponse> {
|
||||
const r = await this.send("PUT", "/sends/" + id + "/remove-password", null, true, true);
|
||||
return new SendResponse(r);
|
||||
}
|
||||
|
||||
deleteSend(id: string): Promise<any> {
|
||||
return this.send("DELETE", "/sends/" + id, null, true, false);
|
||||
}
|
||||
|
||||
// Cipher APIs
|
||||
|
||||
async getCipher(id: string): Promise<CipherResponse> {
|
||||
|
||||
Reference in New Issue
Block a user