UNPKG

create-electron-foundation

Version:

An interactive CLI to bootstrap a modern, type-safe, and scalable Electron application.

86 lines (76 loc) 2.35 kB
import { db } from '../dbConnect' import { resources } from '../schema' import { response } from '../../utils/response' import { eq } from 'drizzle-orm' import { nanoid } from 'nanoid' import type { NewDBResource } from '../../types' export class resourceServices { static async getDBResourceList() { try { const list = await db.select().from(resources) return response.ok({ data: list || [] }) } catch (error) { return response.error({ msg: `Error getting resource list: ${error.message}`, }) } } static async getDBResourceById(id: string) { try { const numericId = parseInt(id, 10) if (isNaN(numericId)) { return response.error({ msg: 'Invalid resource ID' }) } const info = await db .select() .from(resources) .where(eq(resources.id, numericId)) if (!info || info.length === 0) { return response.error({ msg: 'Resource does not exist' }) } return response.ok({ data: info[0] }) } catch (error) { return response.error({ msg: `Error getting resource: ${error.message}` }) } } static async insertDBResource(data: NewDBResource) { try { const insertData = { ...data, id: nanoid(10), } const result = db.transaction(() => { return db.insert(resources).values(insertData).run() }) if (!result || !result.lastInsertRowid) { return response.error({ msg: 'Resource insert failed' }) } return response.ok({ data: { id: result.lastInsertRowid } }) } catch (error) { return response.error({ msg: `Error inserting resource: ${error.message}`, }) } } static async deleteDBResourceById(id: string) { try { const numericId = parseInt(id, 10) if (isNaN(numericId)) { return response.error({ msg: 'Invalid resource ID' }) } const result = db.transaction(() => { return db.delete(resources).where(eq(resources.id, id)).run() }) if (!result || result.changes === 0) { return response.error({ msg: 'Resource deletion failed - no rows affected', }) } return response.ok() } catch (error) { return response.error({ msg: `Error deleting resource: ${error.message}`, }) } } }