From 2e85bcec826a067aa9759916b47f4f8cdc51563e Mon Sep 17 00:00:00 2001 From: Lennart <115736797+lnart@users.noreply.github.com> Date: Thu, 4 Apr 2024 17:54:49 +0200 Subject: [PATCH] tings --- docker-compose.yml | 2 +- package-lock.json | 68 +++++++++++++++++++++++++++++------ package.json | 1 + src/db/db.ts | 9 ++--- src/db/mongoDbPreferences.ts | 10 +++--- src/db/schemas.ts | 19 +++++----- src/endPoints/users/router.ts | 6 ++-- src/types.ts | 15 -------- 8 files changed, 79 insertions(+), 51 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index ab2e32d..ca19a28 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: dockerfile: Dockerfile environment: PORT: ${PORT} - DB_CONNECTION_STRING: ${DB_CONNECTION_STRING} + DB_CONNECTION_STRING: ${CLOUD_DB_CONNECTION_STRING} BASE_URL: ${BASE_URL} MQTT_CONNECT_STRING: ${MQTT_CONNECT_STRING} MQTT_USERNAME: ${MQTT_USERNAME} diff --git a/package-lock.json b/package-lock.json index 4282bcb..bb523f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "bcrypt": "^5.1.1", "cors": "^2.8.5", "dotenv": "^16.4.5", + "mongodb": "^6.5.0", "mongoose": "^8.2.0", "mqtt": "^5.3.6", "nodemon": "^3.1.0", @@ -463,9 +464,9 @@ } }, "node_modules/@mongodb-js/saslprep": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.4.tgz", - "integrity": "sha512-8zJ8N1x51xo9hwPh6AWnKdLGEC5N3lDa6kms1YHmFBoRhTpJR6HG8wWk0td1MVCu9cD4YBrvjZEtd5Obw0Fbnw==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.5.tgz", + "integrity": "sha512-XLNOMH66KhJzUJNwT/qlMnS4WsNDWD5ASdyaSH3EtK+F4r/CFGa3jT4GNi4mfOitGvWXtdLgQJkQjxSVrio+jA==", "dependencies": { "sparse-bitfield": "^3.0.3" } @@ -1002,9 +1003,9 @@ } }, "node_modules/bson": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-6.3.0.tgz", - "integrity": "sha512-balJfqwwTBddxfnidJZagCBPP/f48zj9Sdp3OJswREOgsJzHiQSaOIAtApSgDQFYgHqAvFkp53AFSqjMDZoTFw==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.6.0.tgz", + "integrity": "sha512-BVINv2SgcMjL4oYbBuCQTpE3/VKOSxrOA8Cj/wQP7izSzlBGVomdm+TcUd0Pzy0ytLSSDweCKQ6X3f5veM5LQA==", "engines": { "node": ">=16.20.1" } @@ -1869,12 +1870,12 @@ } }, "node_modules/mongodb": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.3.0.tgz", - "integrity": "sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.5.0.tgz", + "integrity": "sha512-Fozq68InT+JKABGLqctgtb8P56pRrJFkbhW0ux+x1mdHeyinor8oNzJqwLjV/t5X5nJGfTlluxfyMnOXNggIUA==", "dependencies": { - "@mongodb-js/saslprep": "^1.1.0", - "bson": "^6.2.0", + "@mongodb-js/saslprep": "^1.1.5", + "bson": "^6.4.0", "mongodb-connection-string-url": "^3.0.0" }, "engines": { @@ -1943,6 +1944,51 @@ "url": "https://opencollective.com/mongoose" } }, + "node_modules/mongoose/node_modules/mongodb": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.3.0.tgz", + "integrity": "sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA==", + "dependencies": { + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^6.2.0", + "mongodb-connection-string-url": "^3.0.0" + }, + "engines": { + "node": ">=16.20.1" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.1.0", + "gcp-metadata": "^5.2.0", + "kerberos": "^2.0.1", + "mongodb-client-encryption": ">=6.0.0 <7", + "snappy": "^7.2.2", + "socks": "^2.7.1" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "gcp-metadata": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + }, + "socks": { + "optional": true + } + } + }, "node_modules/mongoose/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", diff --git a/package.json b/package.json index 1bbc380..3d8e2d9 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "bcrypt": "^5.1.1", "cors": "^2.8.5", "dotenv": "^16.4.5", + "mongodb": "^6.5.0", "mongoose": "^8.2.0", "mqtt": "^5.3.6", "nodemon": "^3.1.0", diff --git a/src/db/db.ts b/src/db/db.ts index 5e39dd8..ed3146d 100644 --- a/src/db/db.ts +++ b/src/db/db.ts @@ -1,17 +1,14 @@ import mongoose from "mongoose"; import { config } from "dotenv"; -import { mongoDbPreferences } from "./mongoDbPreferences"; config(); export async function connectToDb() { - if (process.env.DB_CONNECTION_STRING) { + if (process.env.CLOUD_DB_CONNECTION_STRING) { const db = await mongoose - .connect( - `${process.env.DB_CONNECTION_STRING}/${mongoDbPreferences.databaseName}`, - ) + .connect(`${process.env.CLOUD_DB_CONNECTION_STRING}`) .then(() => console.log(`Successfully connected to MongoDB`)) - .catch((error) => console.error(`Comnnection error: ${error}`)); + .catch((error) => console.error(`Connection error: ${error}`)); return db; } } diff --git a/src/db/mongoDbPreferences.ts b/src/db/mongoDbPreferences.ts index dd0fa93..3e51877 100644 --- a/src/db/mongoDbPreferences.ts +++ b/src/db/mongoDbPreferences.ts @@ -2,9 +2,9 @@ import { config } from "dotenv"; config(); export enum mongoDbPreferences { - databaseName = "dryAger", - dryAgerCollection = "DryAgers", - usersCollection = "Users", - recordsCollection = "Records", - recipesColleciton = "Recipes", + databaseName = "MeatMatureDB", + dryAgerCollection = "dryAgers", + usersCollection = "users", + recordsCollection = "records", + recipesColleciton = "recipes", } diff --git a/src/db/schemas.ts b/src/db/schemas.ts index 02a9d96..0032432 100644 --- a/src/db/schemas.ts +++ b/src/db/schemas.ts @@ -7,26 +7,25 @@ export const userSchema = new mongoose.Schema({ dryAgerIds: [{ type: mongoose.Schema.Types.ObjectId, ref: "DryAger" }], }); -export const User = mongoose.model("User", userSchema); +export const User = mongoose.model("user", userSchema); export type UserType = typeof userSchema; export const dryAgerSchema = new mongoose.Schema({ - userId: { type: mongoose.Schema.Types.ObjectId, ref: "User", required: true }, + userId: { type: mongoose.Schema.Types.ObjectId, ref: "user", required: true }, name: { type: String, required: true }, model: String, status: { light: { type: String, enum: ["on", "off"], default: "off" }, fan: { type: String, enum: ["on", "off"], default: "off" }, }, - // Assuming records are referenced in the Records collection, not stored directly }); -export const DryAger = mongoose.model("DryAger", dryAgerSchema); +export const DryAger = mongoose.model("dryAger", dryAgerSchema); export const recordSchema = new mongoose.Schema({ dryAgerId: { type: mongoose.Schema.Types.ObjectId, - ref: "DryAger", + ref: "dryAger", required: true, }, date: { type: Date, default: Date.now }, @@ -38,21 +37,21 @@ export const recordSchema = new mongoose.Schema({ recordSchema.index({ dryAgerId: 1, date: -1 }); -export const Record = mongoose.model("Record", recordSchema); +export const Record = mongoose.model("record", recordSchema); export const recipeSchema = new mongoose.Schema({ - userId: { type: mongoose.Schema.Types.ObjectId, ref: "User", required: true }, + userId: { type: mongoose.Schema.Types.ObjectId, ref: "user", required: true }, name: { type: String, required: true }, description: String, notes: String, dryAgerId: { type: mongoose.Schema.Types.ObjectId, - ref: "DryAger", + ref: "dryAger", required: true, }, startDate: { type: Date, required: true }, endDate: { type: Date, required: true }, - relatedRecords: [{ type: mongoose.Schema.Types.ObjectId, ref: "Record" }], + relatedRecords: [{ type: mongoose.Schema.Types.ObjectId, ref: "record" }], }); -export const Recipe = mongoose.model("Recipe", recipeSchema); +export const Recipe = mongoose.model("recipe", recipeSchema); diff --git a/src/endPoints/users/router.ts b/src/endPoints/users/router.ts index 78e6d4b..d98a1b3 100644 --- a/src/endPoints/users/router.ts +++ b/src/endPoints/users/router.ts @@ -72,9 +72,9 @@ export const userRouter = router({ return res; }), - test: publicProcedure.query(()=>{ - return 'success' - }) + test: publicProcedure.query(() => { + return "success"; + }), }); export type userRouter = typeof userRouter; diff --git a/src/types.ts b/src/types.ts index becfca0..69125e4 100644 --- a/src/types.ts +++ b/src/types.ts @@ -22,21 +22,6 @@ export type EditUser = { email?: string; }; -export const testSchema = z - .object({ - username: z.string().optional(), - id: z.string().optional(), - }) - .refine( - (data) => { - // Ensure exactly one of the properties is provided - return (data.username && !data.id) || (!data.username && data.id); - }, - { - message: "Either 'username' or 'id' must be provided, but not both.", - }, - ); - export type DryAger = { _id: string; userId: string; // Reference to User