import axios from "axios"; function toJSON(data) { const jsonObj = {}; const fields = Object.getOwnPropertyNames(data); for (const field of fields) { if (data[field] === undefined) { continue; } jsonObj[field] = data[field]; } return jsonObj; } export default class DataService { static dataUrlPrefix = 'http://localhost:8080/'; static async readAll(url, transformer) { const response = await axios.get(this.dataUrlPrefix + url); return response.data.map(item => transformer(item)); } static async read(url, transformer) { const response = await axios.get(this.dataUrlPrefix + url); return transformer(response.data); } static async create(url, data) { const response = await axios.post(this.dataUrlPrefix + url, toJSON(data)); return true; } static async update(url, data) { const response = await axios.put(this.dataUrlPrefix + url, toJSON(data)); return true; } static async delete(url) { const response = await axios.delete(this.dataUrlPrefix + url); return response.data.id; } }