diff --git a/README.md b/README.md index 9ade0d32628fb4bd06dbc241d6103788eb349150..14c6014a964b75e5e2ae78382a6e9b21c5dfcd0d 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ 5. set dev db ``` + bun db:generate bun db:migrate bun db:seed ``` diff --git a/src/db/repo/auth.repo.ts b/src/db/repo/auth.repo.ts index 2c37d7e1a1f9115bafa9e1e5b8adacff445dd341..8dfa7bf2540b395079b7b92f37cc8b62d7beea7e 100644 --- a/src/db/repo/auth.repo.ts +++ b/src/db/repo/auth.repo.ts @@ -16,12 +16,12 @@ export function verifyPassword( return Bun.password.verifySync(pass, hash) } -export const authSchema = userSchemas.userModelSchema.pick({ +export const authSchema = userSchemas.model.pick({ username: true, password: true, }) -export const authPayload = userSchemas.userModelSchema.pick({ +export const authPayload = userSchemas.model.pick({ id: true, username: true, }) diff --git a/src/db/repo/collection-resources.repo.ts b/src/db/repo/collection-resources.repo.ts index b2471a04304b41e6e11e3d522d61cd3e5c22e482..2301e03efdbc5be95e4356d6f6d0a09cd63a4e7f 100644 --- a/src/db/repo/collection-resources.repo.ts +++ b/src/db/repo/collection-resources.repo.ts @@ -3,7 +3,7 @@ import type { CollectionModel } from "../schema/collection.schema"; import type { ResourceModel } from "../schema/resource.schema"; import db from ".."; import collectionResourcesTable from "../relations/collection-resource.relation"; -import { and, eq, inArray, name } from "drizzle-orm"; +import { and, eq, inArray } from "drizzle-orm"; import resourceTable from "../schema/resource.schema"; import collectionTable from "../schema/collection.schema"; diff --git a/src/db/repo/user.repo.ts b/src/db/repo/user.repo.ts index e8356a5c66e7a3d271bad876127452c870f1aad5..e1ed321ab52dfafb2087fb46e038674f813ed6a8 100644 --- a/src/db/repo/user.repo.ts +++ b/src/db/repo/user.repo.ts @@ -13,7 +13,7 @@ import { eq } from 'drizzle-orm' export class UserRepo { async findMany(): Promise<UserModel[]> { return z - .array(userSchemas.userModelSchema) + .array(userSchemas.model) .parse(await db.query.userTable.findMany()) } @@ -26,7 +26,7 @@ export class UserRepo { if (!user) return null - return userSchemas.userModelSchema.parse(user) + return userSchemas.model.parse(user) } async findByUsername( @@ -38,7 +38,7 @@ export class UserRepo { if (!user) return null - return userSchemas.userModelSchema.parse(user) + return userSchemas.model.parse(user) } async findByEmail( @@ -50,7 +50,7 @@ export class UserRepo { if(!user) return null - return userSchemas.userModelSchema.parse(user) + return userSchemas.model.parse(user) } async create(user: UserInput, tx?: db): Promise<UserModel> { @@ -61,7 +61,7 @@ export class UserRepo { .values(user) .returning() - return userSchemas.userModelSchema.parse(ret) + return userSchemas.model.parse(ret) } async createMany( @@ -71,14 +71,14 @@ export class UserRepo { const repo = tx ?? db return z - .array(userSchemas.userModelSchema) + .array(userSchemas.model) .parse(await repo.insert(userTable).values(users).returning()) } async uploadUsers(users: UserInput[]): Promise<UserModel[]> { return await db.transaction(async (tx) => { return z - .array(userSchemas.userModelSchema) + .array(userSchemas.model) .parse(await tx.insert(userTable).values(users).returning()) }) } @@ -90,7 +90,7 @@ export class UserRepo { .where(eq(userTable.id, user.id)) .returning() - return userSchemas.userModelSchema.parse(ret) + return userSchemas.model.parse(ret) } async delete(id: UserModel['id']): Promise<UserModel>{ @@ -99,7 +99,7 @@ export class UserRepo { .where(eq(userTable.id, id)) .returning() - return userSchemas.userModelSchema.parse(ret) + return userSchemas.model.parse(ret) } } diff --git a/src/db/schema/user.schema.ts b/src/db/schema/user.schema.ts index f0b89c6411745c0d49d4c9a958e6d109e77258b8..cce754d356fd6f9bbf06234ed6e6940e8200db18 100644 --- a/src/db/schema/user.schema.ts +++ b/src/db/schema/user.schema.ts @@ -86,11 +86,11 @@ export type UserDto = z.infer<typeof userDtoSchema> export type UserProfile = z.infer<typeof userProfileSchema> export const userSchemas = { - userInputSchema, - userUpdateSchema, - userModelSchema, - userDtoSchema, - userProfileSchema + input: userInputSchema, + update: userUpdateSchema, + model: userModelSchema, + dto: userDtoSchema, + profile: userProfileSchema } export default userTable diff --git a/src/routes/auth.route.ts b/src/routes/auth.route.ts index ce9b45b747d1b6e2dbc63aeb434385df61dbaffc..c4e50db594f8970993cb9f3b2d3247474dd63661 100644 --- a/src/routes/auth.route.ts +++ b/src/routes/auth.route.ts @@ -41,14 +41,14 @@ export const authRouter = new Hono().post( } ) .post('/signup', - zValidator('json', userSchemas.userInputSchema), + zValidator('json', userSchemas.input), async (c) => { try { const input = await c.req.valid('json') const userStats = userStatsSchemas.dto.parse(await userStatsService.create()) input.user_stats_id = userStats.id - const user = userSchemas.userDtoSchema.parse( + const user = userSchemas.dto.parse( await userService.create(input) ) @@ -61,7 +61,7 @@ export const authRouter = new Hono().post( async (c) => { try{ const email: string = c.req.param('email') - const user = userSchemas.userDtoSchema.parse( + const user = userSchemas.dto.parse( await userService.findByEmail(email) ) @@ -147,7 +147,7 @@ export const authRouter = new Hono().post( */ user.password = password[0] - const ret = userSchemas.userDtoSchema.parse( + const ret = userSchemas.dto.parse( await userService.update(user) ) diff --git a/src/routes/uploader.route.ts b/src/routes/uploader.route.ts index 21992e80809729df6f1d496c73a1db43c7bcdbe7..fa646854c26e85532cb4898ce34bc4f7c081480e 100644 --- a/src/routes/uploader.route.ts +++ b/src/routes/uploader.route.ts @@ -34,7 +34,7 @@ export const uploaderRouter = honoWithJwt().post( } await service.uploadUsers( - z.array(userSchemas.userInputSchema).parse(users) + z.array(userSchemas.input).parse(users) ) return c.json({ message: 'uploaded' }) diff --git a/src/routes/user-institution.route.ts b/src/routes/user-institution.route.ts index 823a73bd7fcf829cc93d3997cce8870fd72b8747..3e9c287a6448a886bbb4577f8f6f46c1f868a301 100644 --- a/src/routes/user-institution.route.ts +++ b/src/routes/user-institution.route.ts @@ -19,9 +19,9 @@ export const userInstitutionRouter = honoWithJwt() async (c) => { try{ const input = await c.req.valid('json') - let user = await userService.findById(input.user_id) - let institution = await institutionService.findById(input.institution_id) //tinha que ver questão de um usuario sem ser admin poder criar um admin - let alreadyInstitution = await service.findByUserInstitution(input) != 0 + const user = await userService.findById(input.user_id) + const institution = await institutionService.findById(input.institution_id) //tinha que ver questão de um usuario sem ser admin poder criar um admin + const alreadyInstitution = await service.findByUserInstitution(input) != 0 if(user == null || institution == null || alreadyInstitution){ throw new Error() } @@ -50,10 +50,10 @@ export const userInstitutionRouter = honoWithJwt() try{ const user_id = +c.req.param('user_id') const institutions_by_user = z.array(userInstitutionRelationSchemas.model).parse(await service.findByUserId(user_id)) - var institutions: InstitutionModel[] = [] + const institutions: InstitutionModel[] = [] - for(var element of institutions_by_user){ - let institution = await institutionService.findById(element.institution_id) + for(const element of institutions_by_user){ + const institution = await institutionService.findById(element.institution_id) if(institution != null) institutions.push(institutionSchemas.dto.parse(institution)) } @@ -69,12 +69,12 @@ export const userInstitutionRouter = honoWithJwt() const institution_id = +c.req.param('institution_id') const users_by_institution = z.array(userInstitutionRelationSchemas.model).parse(await service.findByInstitutionId(institution_id)) - var users: UserProfile[] = [] + const users: UserProfile[] = [] - for(var element of users_by_institution){ - let user = await userService.findById(element.user_id) + for(const element of users_by_institution){ + const user = await userService.findById(element.user_id) if(user != null) - users.push(userSchemas.userProfileSchema.parse(user)) + users.push(userSchemas.profile.parse(user)) } diff --git a/src/routes/user-item.route.ts b/src/routes/user-item.route.ts index ce112391ebda4efa785f7a444f3565325d3f393f..7ce168733a64890031d3200e543f5d73340d35fe 100644 --- a/src/routes/user-item.route.ts +++ b/src/routes/user-item.route.ts @@ -19,9 +19,9 @@ export const userItemRouter = honoWithJwt() async (c) => { try{ const input = await c.req.valid('json') - let user = await userService.findById(input.user_id) - let item = await itemService.findById(input.item_id) //tinha que ver questão de um usuario sem ser admin poder criar um admin - let alreadyItem = await service.findByUserItem(input) != 0 + const user = await userService.findById(input.user_id) + const item = await itemService.findById(input.item_id) //tinha que ver questão de um usuario sem ser admin poder criar um admin + const alreadyItem = await service.findByUserItem(input) != 0 if(user == null || item == null || alreadyItem){ throw new Error() } @@ -47,10 +47,10 @@ export const userItemRouter = honoWithJwt() try{ const user_id = +c.req.param('user_id') const items_by_user = z.array(userItemRelationSchemas.model).parse(await service.findByUserId(user_id)) - var items: ItemsModel[] = [] + const items: ItemsModel[] = [] - for(var element of items_by_user){ - let item = await itemService.findById(element.item_id) + for(const element of items_by_user){ + const item = await itemService.findById(element.item_id) if(item != null) items.push(itemsSchema.dto.parse(item)) } @@ -66,12 +66,12 @@ export const userItemRouter = honoWithJwt() const item_id = +c.req.param('item_id') const users_by_item = z.array(userItemRelationSchemas.model).parse(await service.findByItemId(item_id)) - var users: UserProfile[] = [] + const users: UserProfile[] = [] - for(var element of users_by_item){ - let user = await userService.findById(element.user_id) + for(const element of users_by_item){ + const user = await userService.findById(element.user_id) if(user != null) - users.push(userSchemas.userProfileSchema.parse(user)) + users.push(userSchemas.profile.parse(user)) } diff --git a/src/routes/user-role.route.ts b/src/routes/user-role.route.ts index c2caaf8f537fe22f3b5f86da4a9ee11c6e0073d6..dc2d5a489435b5c34d6813d92cd287c081429262 100644 --- a/src/routes/user-role.route.ts +++ b/src/routes/user-role.route.ts @@ -71,7 +71,7 @@ export const userRoleRouter = honoWithJwt() for(const element of users_by_role){ const user = await userService.findById(element.user_id) if(user != null) - users.push(userSchemas.userProfileSchema.parse(user)) + users.push(userSchemas.profile.parse(user)) } diff --git a/src/routes/user.route.ts b/src/routes/user.route.ts index c817ccd3e7a22d3be09233b66b4282612f83898f..ec13c8cd4b692c77d6b5570a59013c2950567c35 100644 --- a/src/routes/user.route.ts +++ b/src/routes/user.route.ts @@ -104,7 +104,7 @@ export const userRouter = honoWithJwt() for(const element of follows_id){ const follow = await service.findById(element.follower_id) if(follow != null) - follows.push(userSchemas.userProfileSchema.parse(follow)) + follows.push(userSchemas.profile.parse(follow)) } return c.json({ follows }) @@ -122,7 +122,7 @@ export const userRouter = honoWithJwt() for(const element of followers_id){ const follow = await service.findById(element.follower_id) if(follow != null) - followers.push(userSchemas.userProfileSchema.parse(follow)) + followers.push(userSchemas.profile.parse(follow)) } return c.json({ followers }) @@ -138,7 +138,7 @@ export const userRouter = honoWithJwt() const users = await service.findMany() - const ret = z.array(userSchemas.userDtoSchema).parse(users) + const ret = z.array(userSchemas.dto).parse(users) return c.json({ users: ret }) }) @@ -146,7 +146,7 @@ export const userRouter = honoWithJwt() try { const username = c.req.param('username') const user = await service.findByUsername(username) - const ret = userSchemas.userDtoSchema.parse(user) + const ret = userSchemas.dto.parse(user) return c.json({ user: ret }) } catch { @@ -154,12 +154,12 @@ export const userRouter = honoWithJwt() } }) .post('/update', - zValidator('json', userSchemas.userUpdateSchema), + zValidator('json', userSchemas.update), async (c) => { try { const input = await c.req.valid('json') - const user = userSchemas.userDtoSchema.parse( + const user = userSchemas.dto.parse( await service.update(input) ) @@ -189,7 +189,7 @@ export const userRouter = honoWithJwt() user.confirmed_at = service.getUpdateTime() - const confirmed_user = userSchemas.userDtoSchema.parse( + const confirmed_user = userSchemas.dto.parse( await service.update(user) ) @@ -219,7 +219,7 @@ export const userRouter = honoWithJwt() user.reactivated_at = service.getUpdateTime() - const reactivated_user = userSchemas.userDtoSchema.parse( + const reactivated_user = userSchemas.dto.parse( await service.update(user) ) @@ -249,7 +249,7 @@ export const userRouter = honoWithJwt() user.deleted_at = service.getUpdateTime() - const deleted_user = userSchemas.userDtoSchema.parse( + const deleted_user = userSchemas.dto.parse( await service.update(user) ) @@ -271,7 +271,7 @@ export const userRouter = honoWithJwt() async (c) => { try { const id: number = +c.req.param('id') - const user = userSchemas.userDtoSchema.parse( + const user = userSchemas.dto.parse( await service.systemDelete(id) ) diff --git a/src/services/user.service.ts b/src/services/user.service.ts index c75d8792211327604149a48ce028eefe866d56a0..1f6bc4f7081049d6b581c24e4497fd3c70f0411e 100644 --- a/src/services/user.service.ts +++ b/src/services/user.service.ts @@ -59,7 +59,7 @@ export class UserService { } return this.repo.createMany( - z.array(userSchemas.userInputSchema).parse(users), + z.array(userSchemas.input).parse(users), tx ) }