2023-11-19 02:25:32 +09:00
import { Database } from "./database" ;
export type Book = {
id : number ;
platform : "dmm-books" | "google-play-books" ;
readerUrl : string ;
} ;
export function createLibrary ( db : Database ) {
return {
async add ( readerUrl : string ) {
const platform = "dmm-books" ;
await db . run (
` insert into books(reader_url, platform_id) values(?, (select id from platforms where name = ?)) ` ,
readerUrl ,
platform ,
) ;
2023-11-19 20:51:29 +09:00
} ,
async delete ( id : number ) {
await db . run ( ` delete from books where id = ? ` , id ) ;
2023-11-19 02:25:32 +09:00
} ,
2023-11-19 22:04:19 +09:00
async get ( id : number ) : Promise < Book | undefined > {
const book : Book | undefined = await db . get (
` select books.id, platforms.name as platform, books.reader_url as readerUrl from books left join platforms on books.platform_id = platforms.id where books.id = ? ` ,
id ,
) ;
return book ;
} ,
2023-11-19 02:25:32 +09:00
async getBooks ( ) : Promise < Array < Book > > {
const books : Array < Book > = await db . all (
` select books.id, platforms.name as platform, books.reader_url as readerUrl from books left join platforms on books.platform_id = platforms.id ` ,
) ;
return books ;
} ,
} ;
}