Compare commits

..

No commits in common. "ccbbfd1d3b69458919570f57a0efc2f86675e427" and "95137acbed97481ce434f7b75d637ce210ed56e8" have entirely different histories.

3 changed files with 9 additions and 21 deletions

View file

@ -6,7 +6,9 @@ Allows for managing order tasks and imported products for a small workshop.
# Running
The project was tested with the nodejs version v18.17.1. It may not work with versions higher than 18 of nodejs.
The project was tested with the nodejs version v18.16.0. It may not work with newer versions of nodejs.
Dev dependencies are required. `npm install -D`
Project uses Oracle MySQL as a database store. It uses environment variables for the connection settings. All provided variables below are required.
@ -14,18 +16,4 @@ Project uses Oracle MySQL as a database store. It uses environment variables for
|----------------------|-------------------|
| `DB_URL` | Database url, see [this](https://www.prisma.io/docs/concepts/database-connectors/mysql#connection-url) |
## From Repository
Dev dependencies are required. `npm install -D`.
After setting variables, you can run the project using `npx nuxi dev`.
You can also setup variables by placing .env file in the root of the repository.
When using nix, you can use `nix-shell` to get prisma engines installed in your environment.
## From Actions
You can download build from [repository actions](https://git.proot.pl/Wroclaw/WorkshopTasker/actions?workflow=build.yml).
You need to extract tar file.
After setting environment variables, you can launch the project using the `node server/index.mjs` command.
After setting variables, you can run the project using `npx nuxi dev` or `npx nuxi preview`.

View file

@ -1,5 +1,5 @@
import { defineEventHandler, readBody, setResponseStatus } from "h3";
import { Prisma } from "@prisma/client";
import { Decimal } from "@prisma/client/runtime/library";
import { checkIsWork } from "../../orders.post";
import { orderExists } from "../[id].get";
@ -24,7 +24,7 @@ export default defineEventHandler(async (e) => {
notes: body.notes,
offerId: BigInt(body.offerId),
orderId: BigInt(body.orderId),
price: new Prisma.Decimal(body.price),
price: new Decimal(body.price),
},
});

View file

@ -1,4 +1,4 @@
import { Prisma } from "@prisma/client";
import { Decimal } from "@prisma/client/runtime/library";
type func = (...args: any[]) => any | Function;
@ -8,7 +8,7 @@ export type replaceJsonUnparsableToString<T> =
[K in keyof T]:
T[K] extends null ? null
: T[K] extends func ? never
: T[K] extends Prisma.Decimal ? `${number}`
: T[K] extends Decimal ? `${number}`
: T[K] extends Array<infer E> ? Array<replaceJsonUnparsableToString<E>>
: T[K] extends object ? replaceJsonUnparsableToString<T[K]>
: T[K] extends bigint ? `${bigint}`
@ -34,7 +34,7 @@ export function prismaToWeb<T>(ivalue: T): replaceJsonUnparsableToString<T> {
const current = ivalue[i];
if (current === null) rvalue[i] = null;
else if (typeof current === 'function') continue;
else if (current instanceof Prisma.Decimal) rvalue[i] = current.toString();
else if (current instanceof Decimal) rvalue[i] = current.toString();
else if (current instanceof Array) rvalue[i] = arrayPrismaToWeb(current);
else if (typeof current === 'object') rvalue[i] = prismaToWeb(current);
else if (typeof current === 'bigint') rvalue[i] = current.toString();