|
|
|
|
@@ -6,11 +6,11 @@ import { db } from './dbService';
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get Vorgang and corresponend list of tatorte
|
|
|
|
|
* @param caseToken
|
|
|
|
|
* @param vorgangToken
|
|
|
|
|
* @returns
|
|
|
|
|
*/
|
|
|
|
|
export const getCrimesListByToken = async (caseToken: string) => {
|
|
|
|
|
const prefix = `${caseToken}/`;
|
|
|
|
|
export const getCrimesListByToken = async (vorgangToken: string) => {
|
|
|
|
|
const prefix = `${vorgangToken}/`;
|
|
|
|
|
|
|
|
|
|
const stream = client.listObjectsV2(BUCKET, prefix, false, '');
|
|
|
|
|
|
|
|
|
|
@@ -28,46 +28,46 @@ export const getCrimesListByToken = async (caseToken: string) => {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get Vorgang
|
|
|
|
|
* @param caseToken
|
|
|
|
|
* @returns caseObj with keys `token`, `name`, `pw` || undefined
|
|
|
|
|
* @param vorgangToken
|
|
|
|
|
* @returns vorgangObj with keys `token`, `name`, `pin` || undefined
|
|
|
|
|
*/
|
|
|
|
|
export const getVorgangByToken = function (caseToken: string) {
|
|
|
|
|
let getVorgangSQLStmt = `SELECT token, name, pw FROM cases WHERE token = ?`;
|
|
|
|
|
export const getVorgangByToken = (vorgangToken: string): {token: string, name:string, pin: string} | undefined => {
|
|
|
|
|
const getVorgangSQLStmt = `SELECT token, name, pin FROM cases WHERE token = ?`;
|
|
|
|
|
const statement = db.prepare(getVorgangSQLStmt);
|
|
|
|
|
const result = statement.get(caseToken);
|
|
|
|
|
const result = statement.get(vorgangToken) as {token: string, name:string, pin: string} | undefined;
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get Vorgang
|
|
|
|
|
* @param caseName
|
|
|
|
|
* @returns caseObj with keys `token`, `name`, `pw` || undefined
|
|
|
|
|
* @param vorgangName
|
|
|
|
|
* @returns vorgangObj with keys `token`, `name`, `pin` || undefined
|
|
|
|
|
*/
|
|
|
|
|
export const getVorgangByName = function (caseName: string) {
|
|
|
|
|
let getVorgangByNameSQLStmt = `SELECT token, name, pw FROM cases WHERE name = ?`;
|
|
|
|
|
export const getVorgangByName = (vorgangName: string): {token: string, name: string, pin: string} | undefined => {
|
|
|
|
|
const getVorgangByNameSQLStmt = `SELECT token, name, pin FROM cases WHERE name = ?`;
|
|
|
|
|
const statement = db.prepare(getVorgangByNameSQLStmt);
|
|
|
|
|
const result = statement.get(caseName);
|
|
|
|
|
const result = statement.get(vorgangName) as {token: string, name: string, pin: string} | undefined;
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Delete Vorgang
|
|
|
|
|
* @param caseToken
|
|
|
|
|
* @param vorgangToken
|
|
|
|
|
* @returns int: number of changes
|
|
|
|
|
*/
|
|
|
|
|
export const deleteVorgangByToken = function (caseToken: string) {
|
|
|
|
|
let deleteSQLStmt = 'DELETE FROM cases WHERE token = ?';
|
|
|
|
|
export const deleteVorgangByToken = function (vorgangToken: string) {
|
|
|
|
|
const deleteSQLStmt = 'DELETE FROM cases WHERE token = ?';
|
|
|
|
|
const statement = db.prepare(deleteSQLStmt);
|
|
|
|
|
const info = statement.run(caseToken);
|
|
|
|
|
const info = statement.run(vorgangToken);
|
|
|
|
|
|
|
|
|
|
return info.changes;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Fetches list of vorgänge from s3 bucket
|
|
|
|
|
* @returns list of available cases
|
|
|
|
|
* @returns list of available vorgaenge
|
|
|
|
|
*/
|
|
|
|
|
export const getListOfVorgänge = async () => {
|
|
|
|
|
const stream = client.listObjectsV2(BUCKET, '', false, '');
|
|
|
|
|
@@ -86,15 +86,15 @@ export const getListOfVorgänge = async () => {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Fetches list of vorgänge from database
|
|
|
|
|
* @returns list with of available cases
|
|
|
|
|
* @returns list with of available vorgaenge
|
|
|
|
|
*/
|
|
|
|
|
export const getVorgaenge = function () {
|
|
|
|
|
let getVorgaengeSQLStmt = `SELECT token, name, pw from cases`;
|
|
|
|
|
export const getVorgaenge = (): {vorgangToken: string, vorgangName: string, vorgangPIN: string}[] => {
|
|
|
|
|
const getVorgaengeSQLStmt = `SELECT token, name, pin from cases`;
|
|
|
|
|
const statement = db.prepare(getVorgaengeSQLStmt);
|
|
|
|
|
const result = statement.all();
|
|
|
|
|
const vorgaenge_list = [];
|
|
|
|
|
for (const r of result) {
|
|
|
|
|
const vorg = { token: r.token, name: r.name, pw: r.pw };
|
|
|
|
|
const result = statement.all() as { token: string; name: string; vorgangPIN: string }[];
|
|
|
|
|
const vorgaenge_list: {vorgangToken: string, vorgangName: string, vorgangPIN: string}[] = [];
|
|
|
|
|
for (const resultItem of result) {
|
|
|
|
|
const vorg = { vorgangToken: resultItem.token, vorgangName: resultItem.name, vorgangPIN: resultItem.vorgangPIN };
|
|
|
|
|
vorgaenge_list.push(vorg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -106,19 +106,19 @@ export const getVorgaenge = function () {
|
|
|
|
|
* @param request
|
|
|
|
|
* @returns fail or true
|
|
|
|
|
*/
|
|
|
|
|
export const checkIfVorgangExists = async (caseId: string | null) => {
|
|
|
|
|
if (!caseId) {
|
|
|
|
|
export const checkIfVorgangExists = async (vorgangId: string | null) => {
|
|
|
|
|
if (!vorgangId) {
|
|
|
|
|
return fail(400, {
|
|
|
|
|
success: false,
|
|
|
|
|
caseId,
|
|
|
|
|
vorgangId,
|
|
|
|
|
error: { message: 'Die Vorgangsnummer darf nicht leer sein.' }
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (typeof caseId === 'string' && !(await checkIfExactDirectoryExists(caseId))) {
|
|
|
|
|
if (typeof vorgangId === 'string' && !(await checkIfExactDirectoryExists(vorgangId))) {
|
|
|
|
|
return fail(400, {
|
|
|
|
|
success: false,
|
|
|
|
|
caseId,
|
|
|
|
|
vorgangId,
|
|
|
|
|
error: { message: 'Die Vorgangsnummer existiert in dieser Anwendung nicht.' }
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
@@ -126,42 +126,42 @@ export const checkIfVorgangExists = async (caseId: string | null) => {
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const vorgangExists = function (caseToken: string | null) {
|
|
|
|
|
if (!caseToken) {
|
|
|
|
|
export const vorgangExists = function (vorgangToken: string | null) {
|
|
|
|
|
if (!vorgangToken) {
|
|
|
|
|
return fail(400, {
|
|
|
|
|
success: false,
|
|
|
|
|
caseId: caseToken,
|
|
|
|
|
vorgangId: vorgangToken,
|
|
|
|
|
error: { message: 'Die Vorgangsnummer darf nicht leer sein.' }
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let vorgaenge = getVorgaenge();
|
|
|
|
|
const vorgaenge_tokens = vorgaenge.map((vorg) => vorg.token);
|
|
|
|
|
const vorgaenge = getVorgaenge();
|
|
|
|
|
const vorgaengeTokens = vorgaenge.map((vorgang) => vorgang.vorgangToken);
|
|
|
|
|
|
|
|
|
|
const found = vorgaenge_tokens.indexOf(caseToken) != -1;
|
|
|
|
|
const found = vorgaengeTokens.indexOf(vorgangToken) != -1;
|
|
|
|
|
|
|
|
|
|
return found;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const vorgangNameExists = function (caseName: string) {
|
|
|
|
|
let vorgaenge = getVorgaenge();
|
|
|
|
|
const vorgaengeNames = vorgaenge.map((vorg) => vorg.name);
|
|
|
|
|
export const vorgangNameExists = function (vorgangName: string) {
|
|
|
|
|
const vorgaenge = getVorgaenge();
|
|
|
|
|
const vorgaengeNames = vorgaenge.map((vorgang) => vorgang.vorgangName);
|
|
|
|
|
|
|
|
|
|
const found = vorgaengeNames.indexOf(caseName) != -1;
|
|
|
|
|
const found = vorgaengeNames.indexOf(vorgangName) != -1;
|
|
|
|
|
|
|
|
|
|
return found;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const hasValidToken = async (caseId: string, caseToken: string) => {
|
|
|
|
|
const objPath = `${caseId}/${TOKENFILENAME}`;
|
|
|
|
|
export const hasValidToken = async (vorgangId: string, vorgangToken: string) => {
|
|
|
|
|
const objPath = `${vorgangId}/${TOKENFILENAME}`;
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
if (!caseToken) {
|
|
|
|
|
if (!vorgangToken) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const token = await getContentOfTextObject(BUCKET, objPath);
|
|
|
|
|
if (!token || token !== caseToken) {
|
|
|
|
|
if (!token || token !== vorgangToken) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -174,14 +174,14 @@ export const hasValidToken = async (caseId: string, caseToken: string) => {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const passwordValid = function (caseToken, casePassword) {
|
|
|
|
|
if (!casePassword) {
|
|
|
|
|
export const vorgangPINValidation = function (vorgangToken: string, vorgangPIN: string) {
|
|
|
|
|
if (!vorgangPIN) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const vorg = getVorgangByToken(caseToken);
|
|
|
|
|
const vorgang = getVorgangByToken(vorgangToken);
|
|
|
|
|
|
|
|
|
|
if (!vorg || vorg.pw !== casePassword) {
|
|
|
|
|
if (!vorgang || vorgang.pin !== vorgangPIN) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|