ngx-dsxlibrary 2.21.5 → 2.21.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -20,6 +20,31 @@ Si estas versiones no coinciden (o no son compatibles), pueden aparecer errores
|
|
|
20
20
|
|
|
21
21
|
## Guía para consumidores
|
|
22
22
|
|
|
23
|
+
### Envío de archivos al backend (POST)
|
|
24
|
+
|
|
25
|
+
Si tu endpoint del backend recibe datos por formulario multipart (por ejemplo `[FromForm]` en ASP.NET Core), puedes usar `HttpHelpersService`.
|
|
26
|
+
|
|
27
|
+
Este servicio convierte automáticamente el objeto a `FormData`, así que permite enviar campos normales y archivos en una sola petición.
|
|
28
|
+
|
|
29
|
+
```ts
|
|
30
|
+
import { HttpHelpersService } from 'ngx-dsxlibrary';
|
|
31
|
+
|
|
32
|
+
constructor(private httpHelpers: HttpHelpersService) {}
|
|
33
|
+
|
|
34
|
+
subirArchivo(file: File | null) {
|
|
35
|
+
return this.httpHelpers.post<{ ok: boolean; mensaje: string }>('documentos/subir', {
|
|
36
|
+
documentoId: 10,
|
|
37
|
+
nombre: 'Contrato',
|
|
38
|
+
archivo: file,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Notas:
|
|
44
|
+
|
|
45
|
+
- Si el archivo viene en `null` o `undefined`, ese campo se omite del `FormData`.
|
|
46
|
+
- Es ideal para simplificar flujos de carga de archivos con metadata.
|
|
47
|
+
|
|
23
48
|
### Fuentes compartidas (@font-face)
|
|
24
49
|
|
|
25
50
|
La librería expone un archivo CSS con `@font-face` para que cualquier proyecto consumidor lo importe una sola vez.
|
|
@@ -3650,9 +3650,52 @@ function toFormData(data, formData = new FormData(), parentKey) {
|
|
|
3650
3650
|
*/
|
|
3651
3651
|
class HttpHelpersService {
|
|
3652
3652
|
http = inject(HttpClient);
|
|
3653
|
-
|
|
3653
|
+
/**
|
|
3654
|
+
* POST orientado a endpoints `[FromForm]` en backend (ASP.NET Core u otros).
|
|
3655
|
+
*
|
|
3656
|
+
* Convierte automáticamente `data` a `FormData`, por lo que permite enviar
|
|
3657
|
+
* campos simples y archivos (`File`, `Blob`, `FileList`) en una sola llamada.
|
|
3658
|
+
*
|
|
3659
|
+
* Casos de uso comunes:
|
|
3660
|
+
* - Crear/actualizar recursos con adjuntos.
|
|
3661
|
+
* - Subir archivos junto con metadata (id, nombre, observaciones, etc.).
|
|
3662
|
+
* - Mantener un único método de POST para formularios multipart.
|
|
3663
|
+
*
|
|
3664
|
+
* @typeParam T Tipo de respuesta esperada del backend.
|
|
3665
|
+
* @param url Endpoint relativo o absoluto.
|
|
3666
|
+
* @param data Objeto plano que se transformará a `FormData`.
|
|
3667
|
+
* @returns `Observable<T>` con la respuesta del backend.
|
|
3668
|
+
*
|
|
3669
|
+
* @example
|
|
3670
|
+
* this.httpHelpers.postForm<{ ok: boolean }>('documentos/subir', {
|
|
3671
|
+
* documentoId: 15,
|
|
3672
|
+
* descripcion: 'Contrato firmado',
|
|
3673
|
+
* archivo: this.archivoSeleccionado // File | null
|
|
3674
|
+
* });
|
|
3675
|
+
*/
|
|
3676
|
+
postForm(url, data) {
|
|
3654
3677
|
return this.http.post(url, toFormData(data));
|
|
3655
3678
|
}
|
|
3679
|
+
/**
|
|
3680
|
+
* PUT orientado a endpoints `[FromForm]` en backend (ASP.NET Core u otros).
|
|
3681
|
+
*
|
|
3682
|
+
* Equivalente a `postForm`, pero usando el verbo HTTP PUT para actualizar recursos existentes.
|
|
3683
|
+
*
|
|
3684
|
+
* @typeParam T Tipo de respuesta esperada del backend.
|
|
3685
|
+
* @param url Endpoint relativo o absoluto.
|
|
3686
|
+
* @param data Objeto plano que se transformará a `FormData`.
|
|
3687
|
+
* @returns `Observable<T>` con la respuesta del backend.
|
|
3688
|
+
*
|
|
3689
|
+
* @example
|
|
3690
|
+
* this.httpHelpers.putForm<{ ok: boolean }>('documentos/actualizar/15', {
|
|
3691
|
+
* documentoId: 15,
|
|
3692
|
+
* descripcion: 'Contrato actualizado',
|
|
3693
|
+
* archivo: this.archivoSeleccionado // File | null
|
|
3694
|
+
* });
|
|
3695
|
+
*/
|
|
3696
|
+
putForm(url, data) {
|
|
3697
|
+
return this.http.put(url, toFormData(data));
|
|
3698
|
+
}
|
|
3656
3699
|
/**
|
|
3657
3700
|
* GET para descarga de archivos en formato Blob.
|
|
3658
3701
|
* Útil cuando solo se necesita el contenido del archivo.
|