Feature: Es wird beachtet, dass es schon vorhandene Daten geben kann
This commit is contained in:
@@ -1,28 +1,10 @@
|
||||
<script context="module">
|
||||
const MyFetch = {
|
||||
'post': async (rest_url, request_body) => {
|
||||
return MyFetch._fetch(rest_url, {
|
||||
method: 'POST',
|
||||
mode: 'cors',
|
||||
cache: 'no-cache',
|
||||
credentials: 'omit',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: request_body,
|
||||
}, {})
|
||||
return MyFetch._fetch(rest_url, MyFetch._buildRequestOptions(request_body), {})
|
||||
},
|
||||
'put': async (rest_url, http_body) => {
|
||||
return MyFetch._fetch(rest_url, {
|
||||
method: 'PUT',
|
||||
mode: 'cors',
|
||||
cache: 'no-cache',
|
||||
credentials: 'omit',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: http_body,
|
||||
}, {})
|
||||
return MyFetch._fetch(rest_url, MyFetch._buildRequestOptions(http_body, true), {})
|
||||
},
|
||||
'get': async (rest_url, query_parameters) => {
|
||||
if (query_parameters !== null) {
|
||||
@@ -38,14 +20,30 @@
|
||||
},
|
||||
'_fetch': async (rest_url, request_options) => {
|
||||
// noinspection JSUnresolvedVariable
|
||||
let response = await fetch(env.API_URL + rest_url, request_options).catch(err => {
|
||||
console.error(err)
|
||||
return null
|
||||
})
|
||||
let response = await MyFetch._pureFetch(rest_url, request_options)
|
||||
if (!response.ok) {
|
||||
throw new Error('Fail!')
|
||||
}
|
||||
return response.json()
|
||||
},
|
||||
'_buildRequestOptions': (request_body, needPut) => {
|
||||
return {
|
||||
method: (needPut === true) ? 'PUT' : 'POST',
|
||||
mode: 'cors',
|
||||
cache: 'no-cache',
|
||||
credentials: 'omit',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: request_body,
|
||||
}
|
||||
},
|
||||
'_pureFetch': async (rest_url, request_options) => {
|
||||
// noinspection JSUnresolvedVariable
|
||||
return await fetch(env.API_URL + rest_url, request_options).catch(err => {
|
||||
console.error(err)
|
||||
return null
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,6 +56,16 @@
|
||||
return MyFetch.get('/working-hours/' + date)
|
||||
},
|
||||
|
||||
'readOrNew': async date => {
|
||||
let response = await MyFetch._pureFetch('/working-hours/' + date)
|
||||
if (response.status === 404) {
|
||||
return {workingTime: '00:00:00', workingDay: date}
|
||||
} else if (!response.ok) {
|
||||
throw new Error('Fail!')
|
||||
}
|
||||
return response.json()
|
||||
},
|
||||
|
||||
'add': async (record) => {
|
||||
console.debug(record);
|
||||
return MyFetch.post('/working-hours', JSON.stringify(record))
|
||||
@@ -66,6 +74,18 @@
|
||||
'update': async (date, record) => {
|
||||
console.debug(record);
|
||||
return MyFetch.put('/working-hours/' + date, JSON.stringify(record))
|
||||
},
|
||||
|
||||
'addOrUpdate': async (date, record) => {
|
||||
console.debug(record);
|
||||
let request_options = MyFetch._buildRequestOptions(JSON.stringify(record))
|
||||
let response = await MyFetch._pureFetch('/working-hours', request_options)
|
||||
if (response.status === 409) {
|
||||
return WorkingHoursRepository.update(date, record)
|
||||
} else if (!response.ok) {
|
||||
throw new Error('Fail!')
|
||||
}
|
||||
return response.json()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -9,20 +9,14 @@
|
||||
export let newRecord = false
|
||||
const Controller = {
|
||||
'saveRecord': () => {
|
||||
if (newRecord === true) {
|
||||
WorkingHoursRepository.add(activeRecord).then(() => {
|
||||
Controller.nextDay()
|
||||
});
|
||||
} else {
|
||||
WorkingHoursRepository.update(activeRecord.workingDay, activeRecord).then(() => {
|
||||
Controller.nextDay()
|
||||
});
|
||||
}
|
||||
WorkingHoursRepository.addOrUpdate(activeRecord.workingDay, activeRecord).then(() => {
|
||||
Controller.nextDay()
|
||||
});
|
||||
},
|
||||
'nextDay': () => {
|
||||
let actDate = new TimekeepingDate(activeRecord.workingDay)
|
||||
let nextDay = actDate.getNextDay()
|
||||
activeRecord = {workingTime: '00:00:00', workingDay: nextDay.getDateString()}
|
||||
activeRecord = WorkingHoursRepository.readOrNew(nextDay.getDateString())
|
||||
},
|
||||
'cancelActiveRecord': () => {
|
||||
activeRecord = null;
|
||||
|
||||
@@ -21,8 +21,7 @@
|
||||
},
|
||||
'newRecord': () => {
|
||||
const actDate = new TimekeepingDate()
|
||||
activeRecord = {workingTime: '00:00:00', workingDay: actDate.getDateString()}
|
||||
newRecord = true;
|
||||
activeRecord = WorkingHoursRepository.readOrNew(actDate.getDateString())
|
||||
},
|
||||
'selectActiveRecord': record => WorkingHoursRepository.read(record.workingDay).then(data => {
|
||||
if (data === null) {
|
||||
|
||||
Reference in New Issue
Block a user