Skip to content
Snippets Groups Projects
requests-to-domain.js 5.6 KiB
Newer Older
  • Learn to ignore specific revisions
  • Elisa Giglio's avatar
    Elisa Giglio committed
    'use strict';
    import {getToken} from "./script.js";
    import Domain from "./domain.js";
    
    class RequestToDomain {
    
        constructor() {
        }
    
    
        /**
    
        * Funzione per ottenenere dal domain manager tutte le informazioni
    
    Elisa Giglio's avatar
    Elisa Giglio committed
        * sui domini dell'utente che ha effettuato il login
        */
    
        static async getMyDomains() { 
            const responseDomain = await fetch('http://localhost:3001/secured/domains/', {  // DA FARE: controllare che l'uri che ho specificato qui coincida con quello specificato dal domain manager
    
    Elisa Giglio's avatar
    Elisa Giglio committed
                headers: {
                    'Authorization': `Bearer ${await getToken()}`
                }
            }) ;
    
    Elisa Giglio's avatar
    Elisa Giglio committed
            const domainsJson = await responseDomain.json();
            if(responseDomain.ok) {
    
    Elisa Giglio's avatar
    Elisa Giglio committed
                const domainsArray = domainsJson.response;
                const myDomains = domainsArray.map((d) => {
                    Domain.from(d)
                });
                return myDomains;
    
    Elisa Giglio's avatar
    Elisa Giglio committed
            else
                throw domainsJson;
        }
    
    
        /**
         * Effettua la richiesta per creare un nuovo dominio.
    
    Elisa Giglio's avatar
    Elisa Giglio committed
         * @param {*} json descrizione json del dominio che si vuole creare.
    
         * @returns true se il dominio è stato creato,
    
    Elisa Giglio's avatar
    Elisa Giglio committed
         * false altrimenti.
    
    Elisa Giglio's avatar
    Elisa Giglio committed
         */
    
        static async createNewDomain(json) {
    
    Elisa Giglio's avatar
    Elisa Giglio committed
            const response = await fetch('http://localhost:3001/install', {
                method: 'POST',
                headers: {
                    'Authorization': `Bearer ${await getToken()}`
                },
                body: JSON.stringify(json)
            });
            if(response.ok) {
                return true;
            }
            else {
                return false;
            }
    
         * Effettua la richiesta al domain manager per ottenere tutti i sevizi
    
         * disponibili.
         */
    
        static async getAllServices() {
    
            const responseDomain = await fetch('http://localhost:3001/secured/services', {  // DA FARE: controllare che l'uri che ho specificato qui coincida con quello specificato dal domain manager
    
                headers: {
                    'Authorization': `Bearer ${await getToken()}`
                }
            }) ;
    
    Elisa Giglio's avatar
    Elisa Giglio committed
            const servicesJson = await responseDomain.json();
            if(responseDomain.ok) {
    
                const servicesArray = servicesJson.response;
                return servicesArray;
    
    Elisa Giglio's avatar
    Elisa Giglio committed
        /**
         * Effettua la richiesta al domain manager per far partire un dominio.
         * @param {*} d dominio che si vuole far partire.
    
         * @returns true se il dominio è stato fatto partire,
    
    Elisa Giglio's avatar
    Elisa Giglio committed
         * false altrimenti.
         */
    
         static async startDomain(d) {
    
    Elisa Giglio's avatar
    Elisa Giglio committed
            const response = await fetch('http://localhost:3001/start', {
                method: 'POST',
                headers: {
                    'Authorization': `Bearer ${await getToken()}`
                },
                body: JSON.stringify({domain: d.nome})
            });
            if(response.ok) {
                return true;
            }
            else {
                return false;
            }
        }
    
    
        /**
         * Effettua la richiesta al domain manager per fermare un dominio.
         * @param {*} d dominio che si vuole fermare.
    
         * @returns true se il dominio è stato fermato,
    
    Elisa Giglio's avatar
    Elisa Giglio committed
         * false altrimenti.
         */
    
         static async stopDomain(d) {
    
    Elisa Giglio's avatar
    Elisa Giglio committed
            const response = await fetch('http://localhost:3001/stop', {
                method: 'POST',
                headers: {
                    'Authorization': `Bearer ${await getToken()}`
                },
                body: JSON.stringify({domain: d.nome})
            });
            if(response.ok) {
                return true;
            }
            else {
                return false;
            }
        }
    
    
        /**
         * Effettua la richiesta al domain manager per cancellare un dominio.
         * @param {*} d dominio che si vuole cancellare.
    
         * @returns true se la cancellazione è andata a buon fine,
    
    Elisa Giglio's avatar
    Elisa Giglio committed
         * false altrimenti.
         */
    
        static async deleteDomain(d) {
    
    Elisa Giglio's avatar
    Elisa Giglio committed
            const response = await fetch('http://localhost:3001/delete', {
                            method: 'POST',
                            headers: {
                                'Authorization': `Bearer ${await getToken()}`
                            },
                            body: JSON.stringify({domain: d.nome})
                        });
            if(response.ok) {
                return true;
            }
            else {
                return false;
    
            }
        }
    
        /**
         * Effettua la richiesta al domain manager per ottenere tutti i servizi in uso dal dominio
         * @param {*} domain
         * @returns
         */
        static async getUsedServices(domain) {
            const response = await fetch(`http://localhost:3001/secured/services?domain=${domain}`, {
                method: 'GET',
                headers: {
                    'Authorization': `Bearer ${await getToken()}`
                }
            });
            const servicesJson = await response.json();//{response: ["servizio1", "servizio2"]};
            if(response.ok) {
                return servicesJson.response;
            }
            else
                throw servicesJson;
    
    Elisa Giglio's avatar
    Elisa Giglio committed
        }
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
    
        /**
         * Effettua la richiesta al domain manager per sapere se l'utente e' un amministratore del dominio o meno
         * @param {*} domain
         * @returns
         */
        static async getUserPriviledges(domain) {
            const response = await fetch(`http://localhost:3001/secured/privileges?domain=${domain}`, {
                method: 'GET',
                headers: {
                    'Authorization': `Bearer ${await getToken()}`
                }
            });
            const privilegesJson = await response.json();//{response: "U"} || {response: "A"};
            if(response.ok) {
                return privilegesJson.response;
            }
            else
                throw privilegesJson;
        }
    
    Elisa Giglio's avatar
    Elisa Giglio committed
    }
    
    export default RequestToDomain;