diff --git a/SETUP.md b/SETUP.md new file mode 100644 index 0000000..e50379b --- /dev/null +++ b/SETUP.md @@ -0,0 +1,22 @@ +## To update schemas + +1. modify schema.prisma + +## After changing schema + +1. Prisma Generate using `npx prisma generate` [OPTIONAL] +2. Prisma Migrate `npx prisma migrate dev --name ` +3. + +### .env file + +```bash +DATABASE_URL="file:./dev.db" +``` + +### Testing + +0. Modify the sample.ts file for testing +1. Run `npm run build +2. Run `node dist/sample.js` +3. If needed modify services diff --git a/package-lock.json b/package-lock.json index fd06a8b..f33c41d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,7 +7,6 @@ "": { "name": "design.email-database", "version": "1.0.3", - "hasInstallScript": true, "license": "ISC", "dependencies": { "@libsql/client": "^0.8.1", diff --git a/package.json b/package.json index b3d5be1..b82b6d7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "design.email-database", - "version": "1.0.3", + "version": "1.0.5", "description": "A package to access EmailStencil database", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 34c24c6..f626235 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -33,8 +33,8 @@ model Emails { } model Domains { - id String @id @default(cuid()) - name String + id Int @id @default(autoincrement()) + name String @unique createdAt DateTime @default(now()) updatedAt DateTime @updatedAt } diff --git a/sample.ts b/sample.ts index 1d2e0be..295e4c2 100644 --- a/sample.ts +++ b/sample.ts @@ -1,27 +1,29 @@ -import { db } from './lib/prisma.js'; -import { createBrand } from './services/brand.js'; -import { getEmailByQuery } from './services/email.js' +import { db } from "./lib/prisma.js"; +import { createBrand } from "./services/brand.js"; +import { getEmailByQuery } from "./services/email.js"; +import { getBrands } from "./services/brand.js"; -export * from './services/email.js' -export * from './services/brand.js' +export * from "./services/email.js"; +export * from "./services/brand.js"; async function main() { - const email = await createBrand({ - name: 'test' - }) - console.log(email); + // const email = await createBrand({ + // name: "test", + // }); + + const brands = await getBrands(); + console.log({ brands }); } main() - .then(async () => { - await db.$disconnect() - }) - .catch(async (e) => { - console.error(e) - await db.$disconnect() - process.exit(1) - }) - + .then(async () => { + await db.$disconnect(); + }) + .catch(async (e) => { + console.error(e); + await db.$disconnect(); + process.exit(1); + }); /* diff --git a/services/brand.ts b/services/brand.ts index be297e4..2d0ee55 100644 --- a/services/brand.ts +++ b/services/brand.ts @@ -1,51 +1,51 @@ import { db } from "../lib/prisma.js"; export async function getBrands(offset = 0, limit = 10) { - const brands = await db.domains.findMany({ - skip: offset, - take: limit, - }) - return brands; + const brands = await db.domains.findMany({ + skip: offset, + take: limit, + }); + return brands; } -export async function getBrand(id: string) { - const brand = await db.domains.findUnique({ - where: { - id, - }, - }); - return brand; +export async function getBrand(id: number) { + const brand = await db.domains.findUnique({ + where: { + id, + }, + }); + return brand; } export async function getBrandByQuery(query: any) { - const brand = await db.domains.findUnique({ - where: { - ...query, - }, - }); - return brand; + const brand = await db.domains.findUnique({ + where: { + ...query, + }, + }); + return brand; } -export async function deleteBrand(id: string) { - const brand = await db.domains.delete({ - where: { - id, - }, - }); - return brand; +export async function deleteBrand(id: number) { + const brand = await db.domains.delete({ + where: { + id, + }, + }); + return brand; } -export async function updateBrand(id: string, data: any) { - const brand = await db.domains.update({ - where: { - id, - }, - data, - }); - return brand; +export async function updateBrand(id: number, data: any) { + const brand = await db.domains.update({ + where: { + id, + }, + data, + }); + return brand; } export async function createBrand(data: any) { - const brand = await db.domains.create({ data }); - return brand; -} \ No newline at end of file + const brand = await db.domains.create({ data }); + return brand; +} diff --git a/tsconfig.json b/tsconfig.json index 65f3cf1..18d8ecb 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,16 +3,20 @@ "target": "ESNext", "module": "ESNext", "moduleResolution": "bundler", - "declaration": false, + "declaration": false, "outDir": "./dist", - "rootDir": "./", + "rootDir": "./", "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "strict": true, "skipLibCheck": true }, - "include": ["prisma/**/*.prisma", "./services", "./lib", "index.ts"], - "exclude": [ - "node_modules" - ] -} \ No newline at end of file + "include": [ + "prisma/**/*.prisma", + "./services", + "./lib", + "index.ts", + "sample.ts" + ], + "exclude": ["node_modules"] +}