refactor: REST-API-Abfrage ist in eigenes Modul ausgelagert worden

This commit is contained in:
2021-12-14 12:28:58 +01:00
parent 3dd0f451fc
commit f3ff303b93
2 changed files with 90 additions and 100 deletions
+19 -100
View File
@@ -7,122 +7,41 @@
import xIcon from '@iconify-icons/oi/x';
import documentIcon from '@iconify-icons/oi/document';
let activeRecord = null;
let newRecord = false;
params = {
title: 'Einträge',
records: [],
isLoading: true
}
const Records = {
'browse': () => {
// noinspection JSUnresolvedVariable
fetch(env.API_URL + '/working-hours')
.then(res => {
if (!res.ok) {
throw new Error('Fail!');
}
return res.json();
})
.then(data => {
Controller.cancelActiveRecord();
params.records = data;
params.isLoading = false;
})
.catch(err => {
params.isLoading = false;
console.log(err);
});
},
'read': date => {
// noinspection JSUnresolvedVariable
fetch(env.API_URL + '/working-hours/' + date)
.then(res => {
if (!res.ok) {
throw new Error('Fail!');
}
return res.json();
})
.then(data => {
activeRecord = data;
if (date === null) {
Controller.listRecords();
}
})
.catch(err => {
console.log(err);
});
},
'add': async record => {
console.log(record);
// noinspection JSUnresolvedVariable
await fetch(env.API_URL + '/working-hours', {
method: 'POST',
mode: 'cors',
cache: 'no-cache',
credentials: 'omit',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(record)
})
.then(res => {
if (!res.ok) {
throw new Error('Fail!');
}
})
.then(() => {
Controller.listRecords();
})
.catch(err => {
console.log(err);
});
},
'update': async (date, record) => {
console.log(record);
// noinspection JSUnresolvedVariable
await fetch(env.API_URL + '/working-hours/' + date, {
method: 'PUT',
mode: 'cors',
cache: 'no-cache',
credentials: 'omit',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(record)
})
.then(res => {
if (!res.ok) {
throw new Error('Fail!');
}
})
.then(() => {
Controller.listRecords();
})
.catch(err => {
console.log(err);
});
}
};
const Controller = {
'listRecords': () => {
Controller.cancelActiveRecord();
Records.browse();
WorkingHoursRepository.browse().then(data => {
activeRecord = null;
params.records = data;
params.isLoading = false;
})
},
'newRecord': () => {
activeRecord = {workingTime: '00:00:00'};
newRecord = true;
activeRecord = {workingTime: '00:00:00', workingDay: null};
},
'saveRecord': () => {
if (newRecord === true) {
Records.add(activeRecord);
if (activeRecord.workingDay === null) {
WorkingHoursRepository.add(activeRecord).then(() => {
Controller.listRecords()
});
} else {
Records.update(activeRecord.workingDay, activeRecord);
WorkingHoursRepository.update(activeRecord.workingDay, activeRecord).then(() => {
Controller.listRecords()
})
}
},
'selectActiveRecord': record => Records.read(record.workingDay),
'selectActiveRecord': record => WorkingHoursRepository.read(record.workingDay).then(data => {
activeRecord = data;
if (activeRecord === null) {
Controller.listRecords()
}
}),
'cancelActiveRecord': () => {
activeRecord = null;
newRecord = false;
}
};
const initSite = () => {