From 756b64127eb5d36ebdd0911a3c557b43e713aec3 Mon Sep 17 00:00:00 2001 From: Wanderley Santos Teixeira Date: Wed, 21 Sep 2022 19:57:21 -0300 Subject: [PATCH] =?UTF-8?q?feat(upload):=20adiciona=20o=20par=C3=A2metro?= =?UTF-8?q?=20`extractData`=20no=20evento=20`p-upload`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adiciona a propriedade `extractData` no evento `p-upload` e nesta propriedade pode ser informado algum dado solicitado pela API que não possa estar no objeto `data`, assim o conteúdo será extraído do objeto e enviado como parâmetro. Fixes #1395 --- .../po-field/po-upload/po-upload-base.component.ts | 11 +++++++++-- .../po-field/po-upload/po-upload-base.service.ts | 5 +++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/projects/ui/src/lib/components/po-field/po-upload/po-upload-base.component.ts b/projects/ui/src/lib/components/po-field/po-upload/po-upload-base.component.ts index 74b597587..50bad7237 100644 --- a/projects/ui/src/lib/components/po-field/po-upload/po-upload-base.component.ts +++ b/projects/ui/src/lib/components/po-field/po-upload/po-upload-base.component.ts @@ -215,12 +215,19 @@ export abstract class PoUploadBaseComponent implements ControlValueAccessor, Val * * Função que será executada no momento de realizar o envio do arquivo, * onde será possível adicionar informações ao parâmetro que será enviado na requisição. - * É passado por parâmetro um objeto com o arquivo e a propiedade data nesta propriedade pode ser informado algum dado, - * que será enviado em conjunto com o arquivo na requisição, por exemplo: + * É passado por parâmetro um objeto com o arquivo e as propiedades data e extractParams, + * que serão enviadas em conjunto com o arquivo na requisição, por exemplo: * + * > data, nesta propriedade pode ser informado algum dado * ``` * event.data = {id: 'id do usuario'}; * ``` + * > extractParams, nesta propriedade pode ser informado algum dado solicitado pela API + * > que não possa estar no objeto `data`, assim o conteúdo sará extraído do objeto e + * > enviado como parâmetro + * ``` + * event.extractParams = {id: 'id do usuario'}; + * ``` */ @Output('p-upload') onUpload: EventEmitter = new EventEmitter(); diff --git a/projects/ui/src/lib/components/po-field/po-upload/po-upload-base.service.ts b/projects/ui/src/lib/components/po-field/po-upload/po-upload-base.service.ts index d0bdec922..b6c548263 100644 --- a/projects/ui/src/lib/components/po-field/po-upload/po-upload-base.service.ts +++ b/projects/ui/src/lib/components/po-field/po-upload/po-upload-base.service.ts @@ -41,6 +41,7 @@ export class PoUploadBaseService { const filesLength = files.length; const uploadEvent: any = { data: {}, + extractParams: {}, file: null }; @@ -56,6 +57,10 @@ export class PoUploadBaseService { uploadEvent['file'] = file; tOnUpload.emit(uploadEvent); + Object.keys(uploadEvent.extractParams).forEach(key => { + formData.append(key, uploadEvent.extractParams[key]); + }); + formData.append('data', JSON.stringify(uploadEvent.data)); }