import { DocFromDocx } from "../body/doc/DocFromDocx"; import { DocFromTemplate } from "../body/doc/DocFromTemplate"; import { ExtraDoc } from "../body/doc/ExtraDoc"; import { RubricasArray } from "../body/doc/RubricasArray"; import { DocFromPdf } from "../body/doc/DocFromPdf"; import { HttpRequestFactory } from "../services/HttpRequestFactory"; import { ExtraDocResponse } from "../response/ExtraDocResponse"; import { DocAsyncResponse } from "../response/DocAsyncResponse"; import { DocResponse } from "../response/DocResponse"; import { DocsResponse } from "../response/DocsResponse"; export default class DocRequests { private sandboxRoute: string = "https://sandbox.api.zapsign.com.br/api/v1/"; private productionRoute: string = "https://api.zapsign.com.br/api/v1/"; private apiRoute: string = ""; private apiToken: string = ""; constructor(apiToken: string, sandbox: boolean = false) { this.apiRoute = sandbox ? this.sandboxRoute : this.productionRoute; this.apiToken = apiToken; } public DocRequests(apiToken: string) { this.apiToken = apiToken; } public getTokenApi(): string { return this.apiToken; } public setTokenApi(apiToken: string): this { this.apiToken = apiToken; return this; } public async createDocFromUploadPdf(doc: DocFromPdf): Promise { const uri: string = `${this.apiRoute}docs/?api_token=${this.apiToken}`; const { response } = await new HttpRequestFactory().postRequest(uri, doc); return response; } public async getDocs(): Promise { const uri: string = `${this.apiRoute}docs/?api_token=${this.apiToken}`; const { response } = await new HttpRequestFactory().getRequest(uri); return response; } public async createDocFromUploadDocx(doc: DocFromDocx): Promise { const uri: string = `${this.apiRoute}docs/?api_token=${this.apiToken}`; const { response } = await new HttpRequestFactory().postRequest(uri, doc); return response; } public async createDocFromUploadAsync( doc: DocFromPdf ): Promise { const uri: string = `${this.apiRoute}docs/async/?api_token=${this.apiToken}`; const { response } = await new HttpRequestFactory().postRequest(uri, doc); return response; } public async createDocFromTemplate( doc: DocFromTemplate ): Promise { const uri: string = `${this.apiRoute}models/create-doc/?api_token=${this.apiToken}`; const { response } = await new HttpRequestFactory().postRequest(uri, doc); return response; } public async createDocFromTemplateAsync( doc: DocFromTemplate ): Promise { const uri: string = `${this.apiRoute}models/create-doc/async/?api_token=${this.apiToken}`; const { response } = await new HttpRequestFactory().postRequest(uri, doc); return response; } public async addExtraDoc( docToken: string, extraDoc: ExtraDoc ): Promise { const uri: string = `${this.apiRoute}docs/${docToken}/upload-extra-doc/?api_token=${this.apiToken}`; const { response } = await new HttpRequestFactory().postRequest( uri, extraDoc ); return response; } public async detailDoc(docToken: string): Promise { const uri: string = `${this.apiRoute}docs/${docToken}/?api_token=${this.apiToken}`; const { response } = await new HttpRequestFactory().getRequest( uri ); return response; } public async deleteDoc(docToken: string): Promise { const uri: string = `${this.apiRoute}docs/${docToken}/?api_token=${this.apiToken}`; const { response } = await new HttpRequestFactory().deleteRequest(uri); return response; } public async placeSignatures( docToken: string, rubricaList: RubricasArray ): Promise { const uri: string = `${this.apiRoute}docs/${docToken}/place-signatures/?api_token=${this.apiToken}`; const { response } = await new HttpRequestFactory().postRequest( uri, rubricaList ); return response; } }