ctucx.git: oeffi-web

[nimlang] oeffisearch fork that works without javascript

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
'use strict';

import { showDiv, hideDiv } from './helpers.js';
import { ConsoleLog } from './app_functions.js';
import { showAlertModal, showLoader, hideLoader } from './overlays.js';

const api_base = '/api';

const errorMessages = {
	'': 'Unbekannter Fehler',
	'REQUEST_NOT_FOUND': 'Ungültige Reise',
	'JOURNEY_NOT_FOUND': 'Verbindung nicht verfügbar',
	'TRY_AGAIN_LATER':   'Versuche es zu einem späteren Zeitpunkt erneut',
	'MISSING_VALUES':    'Benötigte Felder nicht ausgefüllt',
	'INVALID_DATE':      'Ungültiges Datum',
	'UNKNOWN_FROM':      'Unbekannter Abfahrtspunkt',
	'UNKNOWN_TO':        'Unbekannter Ankunftspunkt',
	'TOO_CLOSE':         'Abfahrts- und Ankunftspunkt zu nah',
	'NO_TRIPS':          'Keine Verbindungen gefunden',
};

export const get = async (endpoint, params, noLoader) => {
	if (!noLoader) showLoader();
	let data;
	try {
		data = await fetch(api_base+endpoint, {
				method: 'POST',
				headers: {
					'Accept': 'application/json',
					'Content-Type': 'application/json'
				},
				body: JSON.stringify(params)
    		}).then(resp => resp.json());
	} catch(e) {
		data = {
			msg: "Failed to fetch. Please check your network connection.",
		};
	}
	if (!noLoader) hideLoader();

	if (data.status !== 'success') {
		showAlertModal(errorMessages[data.msg] || data.msg);
		throw new Error(data.msg);
	} else {
		return data.data;
	}
}