Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
chanwit-y committed Nov 6, 2024
2 parents 55b0e60 + 4cb5729 commit 6adabae
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 25 deletions.
11 changes: 7 additions & 4 deletions libs/mod/auth/repository.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { SupabaseDB } from './../../utils/db/index.ts';
import type { AuthTokenResponsePassword, SupabaseClient, UserResponse } from "@supabase/supabase-js";

import { injectable } from "inversify";
import { supabase } from "../../utils/db/index.ts";
import { inject, injectable } from "inversify";
import { Instances } from "../../utils/config/container.ts";

export interface IUserRepository {
// auth(): Promise<any>;
Expand All @@ -11,9 +12,11 @@ export interface IUserRepository {

@injectable()
export class UserRepository implements IUserRepository {
private _db: SupabaseClient = supabase;
private _db: SupabaseClient;

constructor() {}
constructor(@inject("SupabaseDB") db: SupabaseDB) {
this._db = db.instance();
}

// public async auth() {
// return;
Expand Down
18 changes: 8 additions & 10 deletions libs/mod/vocabulary/repository.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { SupabaseDB } from './../../utils/db/index.ts';
import type { SupabaseClient } from "@supabase/supabase-js";
import { injectable } from "inversify";
import { inject, injectable } from "inversify";

import "reflect-metadata";
import { supabase } from "../../utils/db/index.ts";
import { Env } from "../../utils/config/index.ts";
import { Instances } from "../../utils/config/container.ts";

type TVocabulary = {
word: string;
Expand All @@ -26,8 +27,10 @@ const TableName = "vocabulary";

@injectable()
export class VocabularyRepository implements IVocabularyRepository {
private _db: SupabaseClient = supabase;
constructor() {}
private _db: SupabaseClient;
constructor(@inject("SupabaseDB") db: SupabaseDB) {
this._db = db.instance();
}

public async findAll() {
const { data, error } = await this._db.from(TableName).select("*");
Expand All @@ -50,12 +53,7 @@ export class VocabularyRepository implements IVocabularyRepository {
return data;
}
public async insert(v: TVocabulary) {
// TODO: Fix this
await this._db.auth.signInWithPassword({
email: Env.supabaseUser!,
password: Env.supabasePass!,
});
const { data, error } = await this._db.from(TableName).insert([{ ...v }]);
const { data, error } = await this._db.from(TableName).insert([{ ...v }]).select();
if (error) {
console.error(error);
throw new Error(`Failed to insert word: ${error.message}`);
Expand Down
8 changes: 4 additions & 4 deletions libs/mod/vocabulary/service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,10 @@ export class VocabularyService implements IVocabularyService {
const res = await this._openai.translate(word);
const content = res.choices[0].message.content ?? "";
const {thai, english, example, type, remark} = transform(content);
console.log("==============")
console.log(content)
// console.log(data);
console.log("==============")
// console.log("==============")
// console.log(content)
// // console.log(data);
// console.log("==============")
vocabulary = await this._repo.insert({
word,
content,
Expand Down
18 changes: 15 additions & 3 deletions libs/utils/config/container.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,22 @@
import { Container } from "inversify";
import { VocabularyRepository, type IVocabularyRepository } from "../../mod/vocabulary/repository.ts";
import {
VocabularyRepository,
type IVocabularyRepository,
} from "../../mod/vocabulary/repository.ts";
import { OpenAIAPI } from "../../api/openai.api.ts";
import { VocabularyService, type IVocabularyService } from "../../mod/vocabulary/service.ts";
import { UserRepository, type IUserRepository } from "../../mod/auth/repository.ts";
import {
VocabularyService,
type IVocabularyService,
} from "../../mod/vocabulary/service.ts";
import {
UserRepository,
type IUserRepository,
} from "../../mod/auth/repository.ts";
import { UserService, type IUserService } from "../../mod/auth/service.ts";
import { SupabaseDB, type ISupabaseDB } from "../db/index.ts";

enum Instances {
SupabaseDB = "SupabaseDB",
OpenAIAPI = "OpenAIAPI",
VocabularyRepository = "VocabularyRepository",
VocabularyService = "VocabularyService",
Expand All @@ -14,6 +25,7 @@ enum Instances {
}

const container = new Container();
container.bind<ISupabaseDB>(Instances.SupabaseDB).to(SupabaseDB).inSingletonScope();
container
.bind<IVocabularyRepository>(Instances.VocabularyRepository)
.to(VocabularyRepository);
Expand Down
24 changes: 20 additions & 4 deletions libs/utils/db/index.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,25 @@
import { createClient } from "jsr:@supabase/supabase-js@2";
import { injectable } from 'inversify';
import { createClient, SupabaseClient } from "jsr:@supabase/supabase-js@2";
import { Env } from "../config/index.ts";

const supabaseUrl = Env.supabaseUrl ?? "";
const supabaseKey = Env.supabaseKey ?? "";
export const supabase = createClient(supabaseUrl, supabaseKey);
export interface ISupabaseDB {
instance: () => SupabaseClient;
}

@injectable()
export class SupabaseDB implements ISupabaseDB {
private _db: SupabaseClient;

constructor() {
const supabaseUrl = Env.supabaseUrl ?? "";
const supabaseKey = Env.supabaseKey ?? "";
this._db = createClient(supabaseUrl, supabaseKey);
}

public instance(): SupabaseClient {
return this._db;
}
}

// export const findAll = async (table: string) => {
// let { data: eng_to_tha, error } = await supabase
Expand Down

0 comments on commit 6adabae

Please sign in to comment.