Building a REST API with NestJS and Prisma: Authentication
https://www.prisma.io/blog/nestjs-prisma-rest-api-7D056s1BmOL0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.8 KiB
88 lines
2.8 KiB
// prisma/seed.ts
|
|
|
|
import { PrismaClient } from "@prisma/client";
|
|
import * as bcrypt from 'bcrypt'
|
|
|
|
// initialize Prisma Client
|
|
const prisma = new PrismaClient();
|
|
|
|
const roundsOfHashing = 10;
|
|
|
|
async function main() {
|
|
// create two dummy users
|
|
const passwordSabin = await bcrypt.hash('password-sabin', roundsOfHashing);
|
|
const passwordAlex = await bcrypt.hash('password-alex', roundsOfHashing);
|
|
const user1 = await prisma.user.upsert({
|
|
where: { email: 'sabin@adams.com' },
|
|
update: {},
|
|
create: {
|
|
email: 'sabin@adams.com',
|
|
name: 'Sabin Adams',
|
|
password: passwordSabin,
|
|
},
|
|
});
|
|
|
|
|
|
const user2 = await prisma.user.upsert({
|
|
where: { email: 'alex@ruheni.com' },
|
|
update: {},
|
|
create: {
|
|
email: 'alex@ruheni.com',
|
|
name: 'Alex Ruheni',
|
|
password: passwordAlex,
|
|
},
|
|
});
|
|
|
|
// create two dummy articles
|
|
const post1 = await prisma.article.upsert({
|
|
where: { title: 'Prisma Adds Support for MongoDB' },
|
|
update: {
|
|
authorId: user1.id,
|
|
},
|
|
create: {
|
|
title: 'Prisma Adds Support for MongoDB',
|
|
body: 'Support for MongoDB has been one of the most requested features since the initial release of...',
|
|
description: "We are excited to share that today's Prisma ORM release adds stable support for MongoDB!",
|
|
published: false,
|
|
authorId: user1.id,
|
|
}
|
|
})
|
|
|
|
const post2 = await prisma.article.upsert({
|
|
where: { title: "What's new in Prisma? (Q1/22)" },
|
|
update: {
|
|
authorId: user2.id,
|
|
},
|
|
create: {
|
|
title: "What's new in Prisma? (Q1/22)",
|
|
body: 'Our engineers have been working hard, issuing new releases with many improvements...',
|
|
description:
|
|
'Learn about everything in the Prisma ecosystem and community from January to March 2022.',
|
|
published: true,
|
|
authorId: user2.id,
|
|
},
|
|
});
|
|
|
|
const post3 = await prisma.article.upsert({
|
|
where: { title: 'Prisma Client Just Became a Lot More Flexible' },
|
|
update: {},
|
|
create: {
|
|
title: 'Prisma Client Just Became a Lot More Flexible',
|
|
body: 'Prisma Client extensions provide a powerful new way to add functionality to Prisma in a type-safe manner...',
|
|
description:
|
|
'This article will explore various ways you can use Prisma Client extensions to add custom functionality to Prisma Client..',
|
|
published: true,
|
|
},
|
|
});
|
|
|
|
console.log({ user1, user2, post1, post2, post3 });
|
|
}
|
|
|
|
// execute the main function
|
|
main().catch((e) => {
|
|
console.error(e)
|
|
process.exit(1)
|
|
}).finally(async () => {
|
|
// close Prisma Client at the end
|
|
await prisma.$disconnect()
|
|
})
|