initial working version

This commit is contained in:
2020-05-24 21:06:46 +03:00
commit c38cf8c8c9
14 changed files with 5618 additions and 0 deletions

36
src/api/Api.js Normal file
View File

@@ -0,0 +1,36 @@
import fetch from 'node-fetch';
import { BASE_URL, BASE_HEADERS, BASE_PARAMS } from '../util/Constants';
const cookie = {
JSESSIONID: "ffu-WeUdcd3ICqoCimutvnpdERv3XONZ-VMxwg4-.eteenindusw-n1",
mntClientId: "15QY8LHHIST1C",
ROUTEID: ".et1",
plumbr_user_tracker: "a71e97ae-1d54-5fce-a758-cbf37e01c093",
plumbr_session_tracker_bkae1x: "004aec88-b58e-036b-2c05-ee309bfaa88b|1590327356024"
};
const formatCookie = 'JSESSIONID=OWbYYl4zGt6GOBW8nHFf9jX836540u0Bi-y5T6hf.eteenindusw-n1; mntClientId=15QY8LHHIST1C; ROUTEID=.et1; eteenindus_lang=en';
class Api {
constructor() {}
/**
* @param {string} plate @TODO implement usage
*/
async fetch(plate = "") {
try {
console.log(`Fetching data for ${plate}`);
return (await fetch(BASE_URL, {
"headers": {
...BASE_HEADERS,
"Cookie": formatCookie
},
...BASE_PARAMS,
})).text();
} catch (e) {
throw Error(`Failed to fetch data, reason: ${e.message}`);
}
}
}
export default Api;

36
src/api/Cache.js Normal file
View File

@@ -0,0 +1,36 @@
import Cacheman from 'cacheman';
import { CACHE } from '../util/Constants';
class Cache {
manager;
constructor() {
this.manager = new Cacheman({
ttl: CACHE.ttl,
engine: CACHE.engine,
tmpDir: CACHE.directory
});
}
formatKey(name) {
if (!name) {
throw Error('No number plate specified');
}
return `${CACHE.PREFIX.plate}${name}`;
}
async get(name) {
const key = this.formatKey(name);
return this.manager.get(key);
}
save(name, data) {
const key = this.formatKey(name);
if (!data) {
throw Error(`No data for caching car ${name}`);
}
this.manager.set(key, data);
}
}
export default Cache;