import { FilledSigningObject } from './filled-signing-object'; import { RequestSigner } from './request-signer'; import { SigningObject } from './signing-object'; /** * * * @export * @class SigningProcess */ export class SigningProcess { public signingObject: SigningObject; protected requestSigner: RequestSigner; /** * Creates an instance of SigningProcess. * @param {RequestSigner} requestSigner * @param {SigningObject} signingObject * * @memberOf SigningProcess */ constructor(requestSigner: RequestSigner, signingObject: SigningObject) { this.requestSigner = requestSigner; this.signingObject = signingObject; } /** * Calls cancelSigning on requestSigner with filledSigningObject property used for updating state property, and returns FilledSigningObject in Promise */ // cancel = (): Promise => this.requestSigner.cancelSigning(this.filledSigningObject); } /** * @export * @class TacSigningProcess * @extends {SigningProcess} */ export class TacSigningProcess extends SigningProcess { /** * Creates an instance of TacSigningProcess. * @param {RequestSigner} requestSigner * @param {SigningObject} signingObject * * @memberOf TacSigningProcess */ constructor(requestSigner: RequestSigner, signingObject: SigningObject) { super(requestSigner, signingObject); } /** * Finishes signing process with TAC (that usually means signing using OneTimePassword from SMS) * You can call this method only if you successfully called `startSigningWithTac` before. * @param {string} oneTimePassword * @returns {Promise} * * @memberOf TacSigningProcess */ finishSigning = (oneTimePassword: string): Promise => this.requestSigner.finishSigningWithTac(oneTimePassword, this.signingObject.signId).then(signingObject => { this.signingObject.order.signing = signingObject; return signingObject; }); } /** * @export * @class CaseMobileSigningProcess * @extends {SigningProcess} */ export class CaseMobileSigningProcess extends SigningProcess { /** * Creates an instance of CaseMobileSigningProcess. * @param {RequestSigner} requestSigner * @param {SigningObject} signingObject * * @memberOf CaseMobileSigningProcess */ constructor(requestSigner: RequestSigner, signingObject: SigningObject) { super(requestSigner, signingObject); } /** * Finishes signing process with CASE_MOBILE (that usually means signing using OneTimePassword from SMS) * You can call this method only if you successfully called `startSigningWithCaseMobile` before. * @param {string} oneTimePassword * @returns {Promise} * * @memberOf CaseMobileSigningProcess */ finishSigning = (oneTimePassword: string): Promise => this.requestSigner.finishSigningWithCaseMobile(oneTimePassword, this.signingObject.signId).then(signingObject => { this.signingObject.order.signing = signingObject; return signingObject; }); } /** * @export * @class NoAuthSigningProcess * @extends {SigningProcess} */ export class NoAuthSigningProcess extends SigningProcess { /** * Creates an instance of NoAuthSigningProcess. * @param {RequestSigner} requestSigner * @param {SigningObject} signingObject * * @memberOf NoAuthSigningProcess */ constructor(requestSigner: RequestSigner, signingObject: SigningObject) { super(requestSigner, signingObject); } /** * Finishes signing process using NO_AUTHORIZATION method * You can call this method only if you successfully called `startSigningWithNoAuthorization` before. * @returns {Promise} * * @memberOf NoAuthSigningProcess */ finishSigning = (): Promise => this.requestSigner.finishSigningWithNoAuth(this.signingObject.signId).then((signingObject: FilledSigningObject) => { this.signingObject.order.signing = signingObject; return signingObject; }); }