import axios from 'B/axios';

interface ModuleServerResponseInterface {
  foldername: string;
  filenames: string[];
  havePDF: boolean;
}

class ModuleRepository {
  // module returns array of module names
  async getModules(): Promise<ModuleServerResponseInterface[]> {
    const request = await axios.get('/modules');
    if (request.status != 200) return [];

    return request.data;
  }

  // post module file is also handled in a laravel blade file

  deployModule({ id, type, name }) {
    return axios.post('/modules/deploy', {
      id,
      name,
      type
    });
  }

  removeModuleByName(name: string) {
    axios.delete(`/system/modules?name=${name}`).then((response) => {
      if (response.status !== 200) return;
      location.reload();
    });
  }
}

export default ModuleRepository;
