Changed types

This commit is contained in:
2025-09-12 19:40:53 +02:00
parent af1bf82c75
commit 0fe16ad79e
12 changed files with 35 additions and 11 deletions

View File

@@ -47,7 +47,7 @@ declare module "fastify" {
user?: {
user_id: string;
email: string;
tenant_id?: string;
tenant_id?: number;
role?: string;
};
}

View File

@@ -16,6 +16,7 @@ export default fp(async (server: FastifyInstance) => {
},
});
// @ts-ignore
await server.register(swaggerUi, {
routePrefix: "/docs", // UI erreichbar unter http://localhost:3000/docs
swagger: {

View File

@@ -1,8 +1,6 @@
import { FastifyInstance } from "fastify";
import bcrypt from "bcrypt";
import jwt from "jsonwebtoken";
import { generateRandomPassword, hashPassword } from "../utils/password"
import { sendMail } from "../utils/mailer"
export default async function authRoutesAuthenticated(server: FastifyInstance) {
server.post("/auth/password/change", {
@@ -33,6 +31,7 @@ export default async function authRoutesAuthenticated(server: FastifyInstance) {
const user_id = req.user?.user_id; // kommt aus JWT Middleware
if (!user_id) {
// @ts-ignore
return reply.code(401).send({ error: "Unauthorized" });
}
@@ -44,12 +43,14 @@ export default async function authRoutesAuthenticated(server: FastifyInstance) {
.single();
if (error || !user) {
// @ts-ignore
return reply.code(404).send({ error: "User not found" });
}
// Altes Passwort prüfen
const valid = await bcrypt.compare(old_password, user.password_hash);
if (!valid) {
// @ts-ignore
return reply.code(401).send({ error: "Old password incorrect" });
}
@@ -68,6 +69,7 @@ export default async function authRoutesAuthenticated(server: FastifyInstance) {
if (updateError) {
console.log(updateError);
// @ts-ignore
return reply.code(500).send({ error: "Password update failed" });
}

View File

@@ -31,6 +31,7 @@ export default async function authRoutes(server: FastifyInstance) {
const body = req.body as { email: string; password: string };
if (!body.email || !body.password) {
// @ts-ignore
return reply.code(400).send({ error: "Email and password required" });
}
@@ -45,6 +46,7 @@ export default async function authRoutes(server: FastifyInstance) {
.single();
if (error) {
// @ts-ignore
return reply.code(400).send({ error: error.message });
}
@@ -77,6 +79,7 @@ export default async function authRoutes(server: FastifyInstance) {
const body = req.body as { email: string; password: string };
if (!body.email || !body.password) {
// @ts-ignore
return reply.code(400).send({ error: "Email and password required" });
}
@@ -104,6 +107,7 @@ export default async function authRoutes(server: FastifyInstance) {
user = (data || []).find(i => i.tenants.find(x => x.id === req.tenant.id))
console.log(user)
if(error) {
// @ts-ignore
return reply.code(500).send({ error: "Internal Server Error" });
}
} else {
@@ -116,11 +120,13 @@ export default async function authRoutes(server: FastifyInstance) {
user = data
if(error) {
console.log(error);
// @ts-ignore
return reply.code(500).send({ error: "Internal Server Error" });
}
}
if(!user) {
// @ts-ignore
return reply.code(401).send({ error: "Invalid credentials" });
} else {
@@ -129,6 +135,7 @@ export default async function authRoutes(server: FastifyInstance) {
const valid = await bcrypt.compare(body.password, user.password_hash);
if (!valid) {
// @ts-ignore
return reply.code(401).send({ error: "Invalid credentials" });
} else {
const token = jwt.sign(

View File

@@ -6,7 +6,7 @@ export default async function userRoutes(server: FastifyInstance) {
server.get("/user/:id", async (req, reply) => {
const authUser = req.user // kommt aus JWT (user_id + tenant_id)
const {id} = req.params
const { id } = req.params as { id?: string }
if (!authUser) {
return reply.code(401).send({ error: "Unauthorized" })

View File

@@ -14,12 +14,14 @@ export default async function bankingRoutes(server: FastifyInstance) {
console.log(body);
const {data,error} = await server.supabase.from("statementallocations").insert({
//@ts-ignore
...body.data,
tenant: req.user.tenant_id,
}).select()
await insertHistoryItem(server,{
entity: "bankstatements",
//@ts-ignore
entityId: data.id,
action: "created",
created_by: req.user.user_id,

View File

@@ -98,7 +98,8 @@ export default async function fileRoutes(server: FastifyInstance) {
server.post("/files/download/:id?", async (req, reply) => {
const { id } = req.params as { id?: string }
const ids = req.body?.ids || []
const { ids } = req.body as { ids: string[] }
try {
if (id) {
@@ -180,8 +181,8 @@ export default async function fileRoutes(server: FastifyInstance) {
})
server.post("/files/presigned/:id?", async (req, reply) => {
const { id } = req.params as { key: string };
const { ids } = req.body as { keys: string[] }
const { id } = req.params as { id: string };
const { ids } = req.body as { ids: string[] }
if(id) {
try {

View File

@@ -3,7 +3,9 @@ import {insertHistoryItem } from "../utils/history"
import {diffObjects} from "../utils/diff";
import {sortData} from "../utils/sort";
const dataTypes: any[] = {
// @ts-ignore
tasks: {
isArchivable: true,
label: "Aufgaben",

View File

@@ -26,6 +26,7 @@ export default async function resourceRoutesSpecial(server: FastifyInstance) {
return reply.code(400).send({ error: error.message });
}
// @ts-ignore
const sorted =sortData(data,sort,asc === "true" ? true : false)
return sorted;

View File

@@ -81,10 +81,15 @@ export default async function routes(server: FastifyInstance) {
}
let correctedData = data.map(i => {
return {
id: i.user_id,
// @ts-ignore
email: i.auth_users.email,
// @ts-ignore
profile: i.auth_users.auth_profiles.find(x => x.tenant_id === authUser.tenant_id),
// @ts-ignore
full_name: i.auth_users.auth_profiles.find(x => x.tenant_id === authUser.tenant_id)?.full_name,
}
})

View File

@@ -18,8 +18,10 @@ const getCreatedDocumentTotal = (item) => {
totalNet = totalNet + Number(rowPrice)
if(row.taxPercent === 19) {
// @ts-ignore
total19 = total19 + Number(rowPrice * 0.19)
} else if(row.taxPercent === 7) {
// @ts-ignore
total7 = total7 + Number(rowPrice * 0.07)
}
}
@@ -168,10 +170,10 @@ export async function buildExportZip(server: FastifyInstance, tenant: number, st
let accountData = accounts.find(i => i.id === account.account)
let buschluessel = 9
let buschluessel: string = "9"
if(account.taxType === '19'){
buschluessel = 9
buschluessel = "9"
} else if(account.taxType === 'null') {
buschluessel = ""
} else if(account.taxType === '7') {

View File

@@ -7,7 +7,7 @@
*/
export function sortData<T extends Record<string, any>>(
data: T[],
column?: keyof T,
column?: keyof T | null,
ascending: boolean = true
): T[] {
if (!column) return data
@@ -27,6 +27,7 @@ export function sortData<T extends Record<string, any>>(
}
// Datumsvergleich
// @ts-ignore
if (valA instanceof Date && valB instanceof Date) {
return ascending ? valA.getTime() - valB.getTime() : valB.getTime() - valA.getTime()
}