f034_sqlite_database #19
@@ -117,6 +117,15 @@ export const vorgangExists = function (caseId: string | null) {
|
||||
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) => {
|
||||
const objPath = `${caseId}/${TOKENFILENAME}`;
|
||||
|
||||
|
||||
@@ -152,40 +152,33 @@
|
||||
}
|
||||
|
||||
// `/(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;
|
||||
return;
|
||||
}
|
||||
|
||||
// ping `/view` with caseNumber in POST body
|
||||
let url = '/view';
|
||||
let url = `/api/list/${case_name}`
|
||||
|
||||
let data = new FormData();
|
||||
data.append('caseNumber', case_no);
|
||||
const response = await fetch(url, { method: 'HEAD'});
|
||||
const status = response.status;
|
||||
|
||||
// fetch code in parallel
|
||||
const code = await get_code(case_no);
|
||||
if (code != -1) {
|
||||
zugangscode = code;
|
||||
if (status == 200) {
|
||||
case_existing = true;
|
||||
const code = await get_code(case_name);
|
||||
zugangscode = code;
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
const response = await fetch(url, { method: 'POST', body: data });
|
||||
|
||||
const res_json = await response.json();
|
||||
const status = res_json.status;
|
||||
|
||||
if (status != 303) {
|
||||
} else {
|
||||
case_existing = false;
|
||||
zugangscode = zugangscode_old;
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
async function get_code(case_no) {
|
||||
async function get_code(case_no: string) {
|
||||
|
||||
if (case_no == '') return;
|
||||
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
<div class="flex flex-col items-center justify-center w-full">
|
||||
<h1 class="text-xl">Vorgang {vorg.name}</h1>
|
||||
{#if data?.user?.admin}
|
||||
Zugangspasswort: {vorg.pw}
|
||||
Zugangscode: {vorg.pw}
|
||||
<Button on:click={() => setClipboard($page.url.toString().split('?')[0])}>Copy Link</Button>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { client } from '$lib/minio';
|
||||
import { vorgangNameExists } from '$lib/server/vorgangService';
|
||||
|
||||
export async function DELETE({ params }) {
|
||||
const vorgang = params.vorgang;
|
||||
@@ -22,3 +23,15 @@ export async function DELETE({ params }) {
|
||||
|
||||
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';
|
||||
|
trachi93 marked this conversation as resolved
Outdated
|
||||
import { db } from '$lib/server/dbService';
|
||||
|
||||
/** @type {import('./$types').RequestHandler} */
|
||||
export async function GET({ params }) {
|
||||
const prefix = params.vorgang ? `${params.vorgang}` : '';
|
||||
const vorgang_name = params.vorgang;
|
||||
|
||||
const code_name = '__perm__';
|
||||
const obj_path = `${prefix}/${code_name}`;
|
||||
let get_code_stmt = `SELECT pw FROM cases WHERE name = ?;`;
|
||||
const row = db.prepare(get_code_stmt).get(vorgang_name);
|
||||
let pw = row.pw;
|
||||
|
||||
let result = null;
|
||||
|
||||
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 });
|
||||
if (pw) {
|
||||
return new Response(pw, { status: 200 });
|
||||
} else {
|
||||
return new Response(null, { status: 404 });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user
[JB] Der Pfad [vorgang]/code/.. sollte geändert werden in die entsprechende Vokabel also zugangstoken o. ä. s.o.