-
Alfredo Chissotti authoredAlfredo Chissotti authored
requests-to-domain.js 5.64 KiB
'use strict';
import {getToken} from "./script.js";
import Domain from "./domain.js";
import { getDomainURL } from './configuration.js';
class RequestToDomain {
/**
* Funzione per ottenenere dal domain manager tutte le informazioni
* sui domini dell'utente che ha effettuato il login
*/
static async getMyDomains() {
const responseDomain = await fetch(`${getDomainURL()}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 responseDomain.json();
if(responseDomain.ok) {
const domainsArray = domainsJson.response;
const myDomains = domainsArray.map(d => {
return Domain.from(d);
});
return myDomains;
}
else
throw domainsJson;
}
/**
* Effettua la richiesta per creare un nuovo dominio.
* @param {*} json descrizione json del dominio che si vuole creare.
* @returns true se il dominio è stato creato,
* false altrimenti.
*/
static async createNewDomain(json) {
const response = await fetch(`${getDomainURL()}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(`${getDomainURL()}secured/services`, { // 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 servicesJson = await responseDomain.json();
if(responseDomain.ok) {
const servicesArray = servicesJson.response;
return servicesArray;
}
else
throw servicesJson;
}
/**
* 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(`${getDomainURL()}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;
}
/**
* 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.
*/
static async startDomain(d) {
const response = await fetch(`${getDomainURL()}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.
*/
static async stopDomain(d) {
const response = await fetch(`${getDomainURL()}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.
*/
static async deleteDomain(d) {
const response = await fetch(`${getDomainURL()}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 sapere se l'utente e' un amministratore del dominio o meno
* @param {*} domain
* @returns
*/
static async getUserPriviledges(domain) {
const response = await fetch(`${getDomainURL()}secured/priviledges?domain=${domain}`, {
method: 'GET',
headers: {
'Authorization': `Bearer ${await getToken()}`
}
});
const privilegesJson = await response.json();// String response = "{\"priviledges\":\"admin\"}" || "{\"priviledges\":\"user\"}";
if(response.ok) {
return privilegesJson.priviledges;
}
else
throw privilegesJson;
}
}
export default RequestToDomain;