'use strict';
import {createRowDomain} from '../templates/domains-template.js';
import {statoDomainToggle} from '../toggles.js';
import { getToken } from './script.js';

class App {
    constructor(myDomains) {
        this.myDomains = myDomains;
        this.showAllDomains(myDomains);
    }

    showAllDomains(myDomains) {
        const addHere = document.getElementById('table-row-domains');
        for(const d of myDomains) {
            const row = createRowDomain(d);
            const tr = document.createElement('tr');
            tr.innerHTML = row;
            const plusRow = addHere.lastElementChild;
            addHere.insertBefore(row, plusRow);
            if(d.admin) {
                const toggle = row.querySelector('.toggle-button');
                statoDomainToggle(d, toggle);
                const deleteDomain = row.querySelector('.fa-trash');
                deleteDomain.addEventListener('click', () => {
                    const token = getToken();
                    const response = await fetch('http://localhost:3001/delete', {
                        method: 'POST',
                        headers: , // DA FARE: inserire il token
                        body: JSON.stringify({domain: domain.nome})
                    });
                    if(response.ok) {
                        addHere.removeChild(row);
                    }
                    else {
                        throw new Error('Impossibile eliminare il dominio, provare piu\' tardi');
                    } 
                });
            }
        }
        
    }
}

export default App;