Fixing importing db provider on repositories.

This commit is contained in:
Bradley Shellnut 2024-08-10 10:10:57 -07:00
parent 80b956b35c
commit 426ced1373
8 changed files with 46 additions and 33 deletions

View file

@ -0,0 +1,11 @@
import {inject, injectable} from "tsyringe";
import {DatabaseProvider} from "$lib/server/api/providers";
@injectable()
export class CollectionsRepository {
constructor(@inject(DatabaseProvider) private readonly db: DatabaseProvider) { }
async findAll() {
return db.query.collections.findMany();
}
}

View file

@ -1,14 +1,15 @@
import { and, eq, type InferInsertModel } from "drizzle-orm"; import { and, eq, type InferInsertModel } from "drizzle-orm";
import { credentialsTable, CredentialsType } from "../infrastructure/database/tables/credentials.table"; import { credentialsTable, CredentialsType } from "../infrastructure/database/tables/credentials.table";
import { db } from "../infrastructure/database";
import { takeFirstOrThrow } from "../infrastructure/database/utils"; import { takeFirstOrThrow } from "../infrastructure/database/utils";
import {injectable} from "tsyringe"; import {inject, injectable} from "tsyringe";
import {DatabaseProvider} from "$lib/server/api/providers";
export type CreateCredentials = InferInsertModel<typeof credentialsTable>; export type CreateCredentials = InferInsertModel<typeof credentialsTable>;
export type UpdateCredentials = Partial<CreateCredentials>; export type UpdateCredentials = Partial<CreateCredentials>;
@injectable() @injectable()
export class CredentialsRepository { export class CredentialsRepository {
constructor(@inject(DatabaseProvider) private readonly db: DatabaseProvider) { }
async findOneByUserId(userId: string) { async findOneByUserId(userId: string) {
return db.query.credentialsTable.findFirst({ return db.query.credentialsTable.findFirst({

View file

@ -1,8 +1,8 @@
import { eq, type InferInsertModel } from 'drizzle-orm'; import { eq, type InferInsertModel } from 'drizzle-orm';
import { takeFirstOrThrow } from '../infrastructure/database/utils'; import { takeFirstOrThrow } from '../infrastructure/database/utils';
import { db } from '../infrastructure/database';
import {roles} from "$lib/server/api/infrastructure/database/tables"; import {roles} from "$lib/server/api/infrastructure/database/tables";
import {injectable} from "tsyringe"; import {inject, injectable} from "tsyringe";
import {DatabaseProvider} from "$lib/server/api/providers";
/* -------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------- */
/* Repository */ /* Repository */
@ -25,6 +25,8 @@ export type UpdateRole = Partial<CreateRole>;
@injectable() @injectable()
export class RolesRepository { export class RolesRepository {
constructor(@inject(DatabaseProvider) private readonly db: DatabaseProvider) { }
async findOneById(id: string) { async findOneById(id: string) {
return db.query.roles.findFirst({ return db.query.roles.findFirst({
where: eq(roles.id, id) where: eq(roles.id, id)

View file

@ -1,9 +1,8 @@
import { eq, type InferInsertModel } from 'drizzle-orm'; import { eq, type InferInsertModel } from 'drizzle-orm';
import { usersTable } from '../infrastructure/database/tables/users.table';
import { takeFirstOrThrow } from '../infrastructure/database/utils'; import { takeFirstOrThrow } from '../infrastructure/database/utils';
import { db } from '../infrastructure/database';
import {user_roles} from "$lib/server/api/infrastructure/database/tables"; import {user_roles} from "$lib/server/api/infrastructure/database/tables";
import {injectable} from "tsyringe"; import {inject, injectable} from "tsyringe";
import {DatabaseProvider} from "$lib/server/api/providers";
/* -------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------- */
/* Repository */ /* Repository */
@ -26,6 +25,8 @@ export type UpdateUserRole = Partial<CreateUserRole>;
@injectable() @injectable()
export class UserRolesRepository { export class UserRolesRepository {
constructor(@inject(DatabaseProvider) private readonly db: DatabaseProvider) { }
async findOneById(id: string) { async findOneById(id: string) {
return db.query.user_roles.findFirst({ return db.query.user_roles.findFirst({
where: eq(user_roles.id, id) where: eq(user_roles.id, id)

View file

@ -1,8 +1,8 @@
import { eq, type InferInsertModel } from 'drizzle-orm'; import { eq, type InferInsertModel } from 'drizzle-orm';
import { usersTable } from '../infrastructure/database/tables/users.table'; import { usersTable } from '../infrastructure/database/tables/users.table';
import { takeFirstOrThrow } from '../infrastructure/database/utils'; import { takeFirstOrThrow } from '../infrastructure/database/utils';
import { db } from '../infrastructure/database'; import {inject, injectable} from "tsyringe";
import {injectable} from "tsyringe"; import {DatabaseProvider} from "$lib/server/api/providers";
/* -------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------- */
/* Repository */ /* Repository */
@ -25,6 +25,8 @@ export type UpdateUser = Partial<CreateUser>;
@injectable() @injectable()
export class UsersRepository { export class UsersRepository {
constructor(@inject(DatabaseProvider) private readonly db: DatabaseProvider) { }
async findOneById(id: string) { async findOneById(id: string) {
return db.query.usersTable.findFirst({ return db.query.usersTable.findFirst({
where: eq(usersTable.id, id) where: eq(usersTable.id, id)

View file

@ -0,0 +1,9 @@
import {inject, injectable} from "tsyringe";
import {DatabaseProvider} from "$lib/server/api/providers";
@injectable()
export class CollectionsService {
constructor(@inject(DatabaseProvider) private readonly db: DatabaseProvider) { }
}

View file

@ -0,0 +1,10 @@
import { inject, injectable } from "tsyringe";
@injectable()
export class CollectionsService {
constructor(
@inject(CollectionsRepository) private readonly collectionsRepository: CollectionsRepository
) { }
}

View file

@ -42,30 +42,7 @@ export class UsersService {
} }
this.userRolesService.addRoleToUser(user.id, 'user', true); this.userRolesService.addRoleToUser(user.id, 'user', true);
//
// const user = await db
// .insert(usersTable)
// .values({
// username: form.data.username,
// hashed_password: hashedPassword,
// email: form.data.email,
// first_name: form.data.firstName ?? '',
// last_name: form.data.lastName ?? '',
// verified: false,
// receive_email: false,
// theme: 'system',
// })
// .returning();
// console.log('signup user', user);
//
// if (!user || user.length === 0) {
// return fail(400, {
// form,
// message: `Could not create your account. Please try again. If the problem persists, please contact support. Error ID: ${cuid2()}`,
// });
// }
//
// await add_user_to_role(user[0].id, 'user', true);
// await db.insert(collections).values({ // await db.insert(collections).values({
// user_id: user[0].id, // user_id: user[0].id,
// }); // });