refactoring: 'Datei zu Vorgang hinzufügen' an DB angepasst
This commit is contained in:
@@ -117,6 +117,15 @@ export const vorgangExists = function (caseId: string | null) {
|
|||||||
return found;
|
return found;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const vorgangNameExists = function (caseName: string) {
|
||||||
|
let vorgaenge = getVorgaenge();
|
||||||
|
const vorgaenge_names = vorgaenge.map((vorg) => vorg.name);
|
||||||
|
|
||||||
|
const found = vorgaenge_names.indexOf(caseName) != -1;
|
||||||
|
|
||||||
|
return found;
|
||||||
|
};
|
||||||
|
|
||||||
export const hasValidToken = async (caseId: string, caseToken: string) => {
|
export const hasValidToken = async (caseId: string, caseToken: string) => {
|
||||||
const objPath = `${caseId}/${TOKENFILENAME}`;
|
const objPath = `${caseId}/${TOKENFILENAME}`;
|
||||||
|
|
||||||
|
|||||||
@@ -152,40 +152,33 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// `/(angemeldet)/view` return true or false
|
// `/(angemeldet)/view` return true or false
|
||||||
async function case_exists(case_no) {
|
async function case_exists(case_name: string) {
|
||||||
|
|
||||||
if (case_no == '') {
|
if (case_name == '') {
|
||||||
zugangscode = zugangscode_old;
|
zugangscode = zugangscode_old;
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ping `/view` with caseNumber in POST body
|
let url = `/api/list/${case_name}`
|
||||||
let url = '/view';
|
|
||||||
|
|
||||||
let data = new FormData();
|
const response = await fetch(url, { method: 'HEAD'});
|
||||||
data.append('caseNumber', case_no);
|
const status = response.status;
|
||||||
|
|
||||||
// fetch code in parallel
|
if (status == 200) {
|
||||||
const code = await get_code(case_no);
|
|
||||||
if (code != -1) {
|
|
||||||
zugangscode = code;
|
|
||||||
case_existing = true;
|
case_existing = true;
|
||||||
|
const code = await get_code(case_name);
|
||||||
|
zugangscode = code;
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
|
||||||
|
|
||||||
const response = await fetch(url, { method: 'POST', body: data });
|
} else {
|
||||||
|
|
||||||
const res_json = await response.json();
|
|
||||||
const status = res_json.status;
|
|
||||||
|
|
||||||
if (status != 303) {
|
|
||||||
case_existing = false;
|
case_existing = false;
|
||||||
zugangscode = zugangscode_old;
|
zugangscode = zugangscode_old;
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function get_code(case_no) {
|
async function get_code(case_no: string) {
|
||||||
|
|
||||||
if (case_no == '') return;
|
if (case_no == '') return;
|
||||||
|
|
||||||
|
|||||||
@@ -144,7 +144,7 @@
|
|||||||
<div class="flex flex-col items-center justify-center w-full">
|
<div class="flex flex-col items-center justify-center w-full">
|
||||||
<h1 class="text-xl">Vorgang {vorg.name}</h1>
|
<h1 class="text-xl">Vorgang {vorg.name}</h1>
|
||||||
{#if data?.user?.admin}
|
{#if data?.user?.admin}
|
||||||
Zugangspasswort: {vorg.pw}
|
Zugangscode: {vorg.pw}
|
||||||
<Button on:click={() => setClipboard($page.url.toString().split('?')[0])}>Copy Link</Button>
|
<Button on:click={() => setClipboard($page.url.toString().split('?')[0])}>Copy Link</Button>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { client } from '$lib/minio';
|
import { client } from '$lib/minio';
|
||||||
|
import { vorgangNameExists } from '$lib/server/vorgangService';
|
||||||
|
|
||||||
export async function DELETE({ params }) {
|
export async function DELETE({ params }) {
|
||||||
const vorgang = params.vorgang;
|
const vorgang = params.vorgang;
|
||||||
@@ -22,3 +23,15 @@ export async function DELETE({ params }) {
|
|||||||
|
|
||||||
return new Response(null, { status: 204 });
|
return new Response(null, { status: 204 });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function HEAD({ params }) {
|
||||||
|
const vorgang_name = params.vorgang;
|
||||||
|
|
||||||
|
const existing = vorgangNameExists(vorgang_name);
|
||||||
|
|
||||||
|
if (existing) {
|
||||||
|
return new Response(null, { status: 200 });
|
||||||
|
} else {
|
||||||
|
return new Response(null, { status: 404 });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,24 +1,16 @@
|
|||||||
import { client } from '$lib/minio';
|
import { client } from '$lib/minio';
|
||||||
|
import { db } from '$lib/server/dbService';
|
||||||
|
|
||||||
/** @type {import('./$types').RequestHandler} */
|
/** @type {import('./$types').RequestHandler} */
|
||||||
export async function GET({ params }) {
|
export async function GET({ params }) {
|
||||||
const prefix = params.vorgang ? `${params.vorgang}` : '';
|
const vorgang_name = params.vorgang;
|
||||||
|
|
||||||
const code_name = '__perm__';
|
let get_code_stmt = `SELECT pw FROM cases WHERE name = ?;`;
|
||||||
const obj_path = `${prefix}/${code_name}`;
|
const row = db.prepare(get_code_stmt).get(vorgang_name);
|
||||||
|
let pw = row.pw;
|
||||||
|
|
||||||
let result = null;
|
if (pw) {
|
||||||
|
return new Response(pw, { status: 200 });
|
||||||
try {
|
|
||||||
result = await client.getObject('tatort', obj_path);
|
|
||||||
} catch (error) {
|
|
||||||
if (error.name == 'S3Error') {
|
|
||||||
result = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (result != null) {
|
|
||||||
return new Response(result, { status: 200 });
|
|
||||||
} else {
|
} else {
|
||||||
return new Response(null, { status: 404 });
|
return new Response(null, { status: 404 });
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user