sentinel-ng-http
v0.2.6
Published
This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.3.2.
Readme
RequestBuilder
This project was generated using Angular CLI version 20.3.2.
Sommaire
Installation
En local
cd /home/chemin-vers-mon-projet
npm install /home/chemin-vers-le-projet-lib/dist/request-builder/request-builder-x.x.x.tgzNPM
npm i request-builderprovider
Ajouter dans appConfig le provider. Le provider prend en paramètre un boolean optionnel afin d'activer le spinner. (Il peut être supprimé manuellement à chaque requête si activé.) Non activé par défaut.
provideRequestBuilder(),Utilisation
Exemple d'un contrôleur
BaseControler met à disposition plusieurs requêtes près-construite. Il faut les overrider individuellement afin de pouvoir les utiliser. [getAll, getOneById, create, put, patch, delete, softDelete, restore]
export class BookController extend BaseControler<Book> {
constructor() {
super('my-api')
}
public override getAll() {
return super.getAll();
}
}Les requêtes personnalisées peuvent être créées en utilisant les options.
getAll(opt?: RequestOptions): Observable<ResponseHttp<T>> {
return this.http.get<ResponseHttp<T>>(this.url, {...this.baseControler.testOptions(opt)});
}Exemple d'utilisation du tracker individuel
Le tracker permet de suivre le status d'une requête seule via un UUId donnée. Il est notamment utile pour mettre en place des skeletons en attente du retour de celle-ci.
import {TrackerService} from "request-builder";
import {inject} from "@angular/core";
...
export class monComposant implements OnInit {
private readonly controller = inject(MonControllerService);
private readonly trackerService = inject(TrackerService);
private uuidCutom = 'monSuperUuid'; //peut être généré via la lib ssilf-utils
// Récupération de l'état de la requête : return true si la requete est toujours en cours
public showSkeleton: Signal<boolean> = this.trackerService.checkOneRequestTracker(this.uuidCutom);
ngOnInit() {
this.controller.getById(2, {uuid: this.uuidCutom}).subscribe();
}
}Gestion des paramètres
page ==> Première page à afficher limit ==> nombre d'élément par page select ==> nom des colonnes à récupérer sortBy ==> tri par colonne filter ==> filtres pour la sélection des données
exemple de l'objet complet :
const paramsBuilder: ParamsBuilder = {
select: ['id', 'email', 'createdAt'],
page: 2,
limit: 10,
sortBy: [
['createdAt', 'DESC'],
['email', 'ASC'],
],
filter: {
role: 'admin',
status: ['active', 'pending'],
},
};requête générée :
/users?select=id,email,createdAt&page=2&limit=10&sortBy=createdAt:DESC&sortBy=email:ASC&
filter.role=admin&
filter.status=active&
filter.status=pending