Skip to content
Snippets Groups Projects
requests-to-domain.js 3.04 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 
        * sui domini dell'utente che ha effettuato il login
        */
        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
                method: 'GET', 
                headers: {
                    'Authorization': `Bearer ${await getToken()}`
                }
            }) ;
            const domainsJson = await response.json();
            if(response.ok) {
                const domainsArray = domainsJson.response;
                const myDomains = domainsArray.map((d) => {
                    Domain.from(d)
                });
                return myDomains;
            } 
            else
                throw domainsJson;
        }
    
    
        /**
         * Effettua la richiesta per creare un nuovo dominio.
         */
        async createNewDomain() {
    
        }
    
    
        /**
         * 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, 
         * false altrimenti.
         */
        async startDomain(d) {
            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, 
         * false altrimenti.
         */
        async stopDomain(d) {
            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, 
         * false altrimenti.
         */
        async deleteDomain(d) {
            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;
            } 
        }
    }
    
    export default RequestToDomain;