init
This commit is contained in:
commit
98131c3b78
29 changed files with 2003 additions and 0 deletions
22
src/services/read-api.ts
Normal file
22
src/services/read-api.ts
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
import { DiaryEntries } from "@/db/schemas";
|
||||
import { singleResultOrFail } from "@/libs/utils/effects";
|
||||
import { desc } from "drizzle-orm";
|
||||
import { Data, Effect } from "effect";
|
||||
|
||||
import { LocalSqlite } from "./db";
|
||||
|
||||
class ReadApiError extends Data.TaggedError("ReadApiError")<{ cause: unknown }> {}
|
||||
|
||||
export class ReadApi extends Effect.Service<ReadApi>()("ReadApi", {
|
||||
dependencies: [LocalSqlite.Default],
|
||||
effect: Effect.gen(function*() {
|
||||
const { query } = yield* LocalSqlite;
|
||||
|
||||
return {
|
||||
getLastAddedEntry: () =>
|
||||
query(_ => _.select().from(DiaryEntries).limit(1).orderBy(desc(DiaryEntries.dateCreated))).pipe(
|
||||
singleResultOrFail(() => new ReadApiError({ cause: "Aucune entrée n'a encore été ajoutée." })),
|
||||
),
|
||||
};
|
||||
}),
|
||||
}) {}
|
||||
Loading…
Add table
Add a link
Reference in a new issue