| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | 
							- import { product } from "./product.js";
 
- export class products_loader {
 
-     static async all() {
 
-         const request = await fetch("/products/");
 
-         const response = await request.json();
 
-         
 
-         return products_loader.#response_to_collection(response);
 
-     }
 
-     static #response_to_collection(response) {
 
-         if (response.result !== "success") {
 
-             return new Array();
 
-         }
 
-         if ("collection" in response) {
 
-             return this.#list_response_to_collection(response);
 
-         }
 
-         return this.#single_response_to_collection(response);
 
-     }
 
-     static #single_response_to_collection(response) {
 
-         const result = new Array();
 
-         result.push(new product(response.product));
 
-         
 
-         return result;
 
-     }
 
-     static #list_response_to_collection(response) {
 
-         const result = new Array();
 
-         
 
-         response.collection.forEach(serialized => {
 
-             result.push(new product(serialized));
 
-         });
 
-         return result;
 
-     }
 
-     static async search_name(name) {
 
-         return await products_loader.#search(
 
-             "/product/search/name", 
 
-             name
 
-         ); 
 
-     }
 
-     static async search_author(author) {
 
-         return await products_loader.#search(
 
-             "/product/search/author", 
 
-             author
 
-         );
 
-     }
 
-     static async search_barcode(barcode) {
 
-         return await products_loader.#search(
 
-             "/product/get/barcode",
 
-             barcode
 
-         );
 
-     }
 
-     static async #search(path, parameter) {
 
-         const coded = encodeURI(parameter);
 
-         const request = await fetch(path + "/" + coded);
 
-         const response = await request.json();
 
-         
 
-         return products_loader.#response_to_collection(response);
 
-     }
 
- }
 
 
  |