Datenbank Schema Änderungen
This commit is contained in:
@@ -1,9 +1,8 @@
|
||||
import { prisma } from "@ibcornelsen/database";
|
||||
import type { APIRoute } from "astro";
|
||||
import { ActionFailedError, MissingEntityError, error, success } from "src/lib/APIResponse";
|
||||
import { Ausweis } from "src/lib/Ausweis/Ausweis";
|
||||
import { Energiekennwerte } from "src/lib/Energiekennwerte";
|
||||
import { Gebaeude } from "src/lib/Gebaeude";
|
||||
import { db } from "src/lib/shared";
|
||||
import { z } from "zod";
|
||||
|
||||
const AusweisUploadChecker = z.object({
|
||||
@@ -83,54 +82,35 @@ export const post: APIRoute = async ({ request }) => {
|
||||
return error(validation.error.issues);
|
||||
}
|
||||
|
||||
let gebaeude, kennwerte, ausweis;
|
||||
let gebaeude, ausweis;
|
||||
if (body.gebaeude_uid) {
|
||||
gebaeude = await db("gebaeude")
|
||||
.update(body.gebaeude)
|
||||
.where("uid", body.gebaeude_uid)
|
||||
.returning(["uid", "id"]);
|
||||
gebaeude = await prisma.gebaeudeStammdaten.update({
|
||||
where: {
|
||||
uid: body.gebaeude_uid,
|
||||
},
|
||||
data: body.gebaeude,
|
||||
})
|
||||
} else {
|
||||
gebaeude = await db("gebaeude")
|
||||
.insert(body.gebaeude)
|
||||
.returning(["uid", "id"]);
|
||||
gebaeude = await prisma.gebaeudeStammdaten.create({
|
||||
data: body.gebaeude,
|
||||
})
|
||||
}
|
||||
|
||||
if (!gebaeude) {
|
||||
return ActionFailedError();
|
||||
}
|
||||
|
||||
if (body.kennwerte_uid) {
|
||||
kennwerte = await db("energiekennwerte")
|
||||
.update({ ...body.kennwerte, gebaeude_id: gebaeude[0].id })
|
||||
.where("uid", body.kennwerte_uid)
|
||||
.returning(["uid", "id"]);
|
||||
} else {
|
||||
kennwerte = await db("energiekennwerte")
|
||||
.insert({ ...body.kennwerte, gebaeude_id: gebaeude[0].id })
|
||||
.returning(["uid", "id"]);
|
||||
}
|
||||
|
||||
if (!kennwerte) {
|
||||
return ActionFailedError();
|
||||
}
|
||||
|
||||
if (body.ausweis_uid) {
|
||||
ausweis = await db("energieausweise")
|
||||
.update({
|
||||
...body.ausweis,
|
||||
gebaeude_id: gebaeude[0].id,
|
||||
energiekennwerte_id: kennwerte[0].id,
|
||||
})
|
||||
.where("uid", body.ausweis_uid)
|
||||
.returning(["uid", "id"]);
|
||||
ausweis = await prisma.verbrauchsausweisWohnen.update({
|
||||
where: {
|
||||
uid: body.ausweis_uid,
|
||||
},
|
||||
data: body.ausweis,
|
||||
})
|
||||
} else {
|
||||
ausweis = await db("energieausweise")
|
||||
.insert({
|
||||
...body.ausweis,
|
||||
gebaeude_id: gebaeude[0].id,
|
||||
energiekennwerte_id: kennwerte[0].id,
|
||||
})
|
||||
.returning(["uid", "id"]);
|
||||
ausweis = await prisma.verbrauchsausweisWohnen.create({
|
||||
data: body.ausweis,
|
||||
})
|
||||
}
|
||||
|
||||
if (!ausweis) {
|
||||
@@ -138,9 +118,8 @@ export const post: APIRoute = async ({ request }) => {
|
||||
}
|
||||
|
||||
return success({
|
||||
ausweis: ausweis[0],
|
||||
kennwerte: kennwerte[0],
|
||||
gebaeude: gebaeude[0],
|
||||
ausweis: ausweis,
|
||||
gebaeude: gebaeude,
|
||||
});
|
||||
};
|
||||
|
||||
@@ -153,29 +132,18 @@ export const get: APIRoute = async ({ request }) => {
|
||||
return error(validation.error.issues);
|
||||
}
|
||||
|
||||
let result = await db<{ gebaeude: Gebaeude, kennwerte: Energiekennwerte, ausweis: Ausweis}>("gebaeude")
|
||||
.select([
|
||||
db.raw("(json_agg(gebaeude)->0) AS gebaeude"),
|
||||
db.raw("(json_agg(energiekennwerte)->0) AS kennwerte"),
|
||||
db.raw("(json_agg(energieausweise)->0) AS ausweis"),
|
||||
])
|
||||
.leftJoin(
|
||||
"energiekennwerte",
|
||||
"energiekennwerte.gebaeude_id",
|
||||
"gebaeude.id"
|
||||
)
|
||||
.leftJoin(
|
||||
"energieausweise",
|
||||
"energieausweise.gebaeude_id",
|
||||
"gebaeude.id"
|
||||
)
|
||||
.where("gebaeude.uid", body.uid)
|
||||
.groupBy("gebaeude.id")
|
||||
.first();
|
||||
const ausweis = await prisma.verbrauchsausweisWohnen.findUnique({
|
||||
where: {
|
||||
uid: body.uid,
|
||||
},
|
||||
include: {
|
||||
gebaeude_stammdaten: true,
|
||||
}
|
||||
})
|
||||
|
||||
if (!result) {
|
||||
if (!ausweis) {
|
||||
return MissingEntityError("gebäude");
|
||||
}
|
||||
|
||||
return result;
|
||||
return success(ausweis);
|
||||
};
|
||||
@@ -4,7 +4,7 @@ import {
|
||||
error,
|
||||
success,
|
||||
} from "src/lib/APIResponse";
|
||||
import { db, prisma } from "src/lib/shared";
|
||||
import { prisma } from "@ibcornelsen/database";
|
||||
|
||||
export const get: APIRoute = async ({ url }) => {
|
||||
const body = url.searchParams
|
||||
|
||||
@@ -5,7 +5,7 @@ import {
|
||||
} from "src/lib/APIResponse";
|
||||
import * as path from "path";
|
||||
import * as fs from "fs";
|
||||
import { prisma } from "src/lib/shared";
|
||||
import { prisma } from "@ibcornelsen/database";
|
||||
|
||||
export const get: APIRoute = async ({ url }) => {
|
||||
const body = url.searchParams
|
||||
|
||||
@@ -9,7 +9,7 @@ import * as jimp from "jimp";
|
||||
import { z } from "zod";
|
||||
import * as path from "path";
|
||||
import * as fs from "fs";
|
||||
import { db, prisma } from "src/lib/shared";
|
||||
import { prisma } from "@ibcornelsen/database";
|
||||
|
||||
const ImageUploadChecker = z.object({
|
||||
data: z.string(),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { APIRoute } from "astro";
|
||||
import { success, MissingPropertyError, error } from "../../lib/APIResponse";
|
||||
import { validatePassword, hashPassword } from "../../lib/Password";
|
||||
import { validatePassword } from "../../lib/Password";
|
||||
import { User } from "../../lib/User";
|
||||
import moment from "moment";
|
||||
import { encodeToken } from "../../lib/JsonWebToken";
|
||||
|
||||
Reference in New Issue
Block a user