Skip to content
Snippets Groups Projects
requests-to-domain.js 5.67 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";
    
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
    import { getDomainURL } from './configuration.js';
    
    Elisa Giglio's avatar
    Elisa Giglio committed
    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
        */
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        static async getMyDomains() {
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
            const responseDomain = await fetch(`${getDomainURL()}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;
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                const myDomains = domainsArray.map(d => {
                    return Domain.from(d);
    
    Elisa Giglio's avatar
    Elisa Giglio committed
                });
                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) {
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
            const response = await fetch(`${getDomainURL()}install/`, {
    
    Elisa Giglio's avatar
    Elisa Giglio committed
                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() {
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
            const responseDomain = await fetch(`${getDomainURL()}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;
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
        /**
         * Effettua la richiesta al domain manager per ottenere tutti i servizi in uso dal dominio
         * @param {*} domain
         * @returns
         */
         static async getUsedServices(domain) {
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
            const response = await fetch(`${getDomainURL()}secured/services?domain=${domain}`, {
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                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
        /**
         * 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) {
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
            const response = await fetch(`${getDomainURL()}start/`, {
    
    Elisa Giglio's avatar
    Elisa Giglio committed
                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) {
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
            const response = await fetch(`${getDomainURL()}stop/`, {
    
    Elisa Giglio's avatar
    Elisa Giglio committed
                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) {
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
            const response = await fetch(`${getDomainURL()}delete/`, {
    
    Elisa Giglio's avatar
    Elisa Giglio committed
                            method: 'POST',
                            headers: {
                                'Authorization': `Bearer ${await getToken()}`
                            },
                            body: JSON.stringify({domain: d.nome})
                        });
            if(response.ok) {
                return true;
            }
            else {
                return false;
    
    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) {
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
            const response = await fetch(`${getDomainURL()}secured/priviledges?domain=${domain}`, {
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
                method: 'GET',
                headers: {
                    'Authorization': `Bearer ${await getToken()}`
                }
            });
    
            const privilegesJson = await response.json();// String response = "{\"priviledges\":\"admin\"}" || "{\"priviledges\":\"user\"}";
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
            if(response.ok) {
    
                return privilegesJson.priviledges;
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
            }
            else
                throw privilegesJson;
        }
    
    Elisa Giglio's avatar
    Elisa Giglio committed
    }
    
    
    Alfredo Chissotti's avatar
    Alfredo Chissotti committed
    export default RequestToDomain;