1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-14 15:23:33 +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:
Robyn MacCallum
2023-03-28 12:37:40 -04:00
committed by GitHub
parent c2bfb2497b
commit d799529428
58 changed files with 1333 additions and 663 deletions

View File

@@ -1,3 +1,5 @@
import { Jsonify } from "type-fest";
import { SendFileData } from "../data/send-file.data";
import { SendFileView } from "../view/send-file.view";
@@ -41,4 +43,14 @@ export class SendFile extends Domain {
);
return view;
}
static fromJSON(obj: Jsonify<SendFile>) {
if (obj == null) {
return null;
}
return Object.assign(new SendFile(), obj, {
fileName: EncString.fromJSON(obj.fileName),
});
}
}

View File

@@ -1,3 +1,5 @@
import { Jsonify } from "type-fest";
import { SendTextData } from "../data/send-text.data";
import { SendTextView } from "../view/send-text.view";
@@ -36,4 +38,14 @@ export class SendText extends Domain {
key
);
}
static fromJSON(obj: Jsonify<SendText>) {
if (obj == null) {
return null;
}
return Object.assign(new SendText(), obj, {
text: EncString.fromJSON(obj.text),
});
}
}

View File

@@ -1,3 +1,5 @@
import { Jsonify } from "type-fest";
import { SendType } from "../../enums/sendType";
import { Utils } from "../../misc/utils";
import { SendData } from "../data/send.data";
@@ -102,4 +104,25 @@ export class Send extends Domain {
return model;
}
static fromJSON(obj: Jsonify<Send>) {
if (obj == null) {
return null;
}
const revisionDate = obj.revisionDate == null ? null : new Date(obj.revisionDate);
const expirationDate = obj.expirationDate == null ? null : new Date(obj.expirationDate);
const deletionDate = obj.deletionDate == null ? null : new Date(obj.deletionDate);
return Object.assign(new Send(), obj, {
key: EncString.fromJSON(obj.key),
name: EncString.fromJSON(obj.name),
notes: EncString.fromJSON(obj.notes),
text: SendText.fromJSON(obj.text),
file: SendFile.fromJSON(obj.file),
revisionDate,
expirationDate,
deletionDate,
});
}
}