From 7011e44662b525a8645d6533720358c8fdc98409 Mon Sep 17 00:00:00 2001 From: Joe Arndt Date: Wed, 10 Dec 2025 16:31:28 -0600 Subject: [PATCH] modeling out expense entities and dtos --- bruno/Common Cents/Expenses/Expenses.bru | 11 +++++++ bruno/Common Cents/Expenses/folder.bru | 3 ++ bruno/Common Cents/Healthcheck.bru | 2 +- .../expenses/create-expense.dto.ts | 1 - src/controllers/expenses/expense.dto.ts | 19 +++++++++++ src/controllers/expenses/expense.entities.ts | 32 +++++++++++++++++++ src/controllers/expenses/expense.entity.ts | 1 - .../expenses/expenses.controller.ts | 5 ++- .../expenses/update-expense.dto.ts | 4 --- src/services/expenses.service.ts | 19 ++++++++--- 10 files changed, 83 insertions(+), 14 deletions(-) create mode 100644 bruno/Common Cents/Expenses/Expenses.bru create mode 100644 bruno/Common Cents/Expenses/folder.bru delete mode 100644 src/controllers/expenses/create-expense.dto.ts create mode 100644 src/controllers/expenses/expense.dto.ts create mode 100644 src/controllers/expenses/expense.entities.ts delete mode 100644 src/controllers/expenses/expense.entity.ts delete mode 100644 src/controllers/expenses/update-expense.dto.ts diff --git a/bruno/Common Cents/Expenses/Expenses.bru b/bruno/Common Cents/Expenses/Expenses.bru new file mode 100644 index 0000000..8defe6b --- /dev/null +++ b/bruno/Common Cents/Expenses/Expenses.bru @@ -0,0 +1,11 @@ +meta { + name: Expenses + type: http + seq: 1 +} + +get { + url: {{localBaseUrl}}/health + body: none + auth: inherit +} diff --git a/bruno/Common Cents/Expenses/folder.bru b/bruno/Common Cents/Expenses/folder.bru new file mode 100644 index 0000000..a577d38 --- /dev/null +++ b/bruno/Common Cents/Expenses/folder.bru @@ -0,0 +1,3 @@ +meta { + name: Expenses +} diff --git a/bruno/Common Cents/Healthcheck.bru b/bruno/Common Cents/Healthcheck.bru index 146c337..d769a80 100644 --- a/bruno/Common Cents/Healthcheck.bru +++ b/bruno/Common Cents/Healthcheck.bru @@ -1,7 +1,7 @@ meta { name: Healthcheck type: http - seq: 2 + seq: 1 } get { diff --git a/src/controllers/expenses/create-expense.dto.ts b/src/controllers/expenses/create-expense.dto.ts deleted file mode 100644 index b4f26aa..0000000 --- a/src/controllers/expenses/create-expense.dto.ts +++ /dev/null @@ -1 +0,0 @@ -export class CreateExpenseDto {} diff --git a/src/controllers/expenses/expense.dto.ts b/src/controllers/expenses/expense.dto.ts new file mode 100644 index 0000000..5a1382c --- /dev/null +++ b/src/controllers/expenses/expense.dto.ts @@ -0,0 +1,19 @@ +import { PartialType } from '@nestjs/mapped-types'; + +export class CreateExpenseDto { + year: string; + month: string; + day: string; + cents: number; + category: string; + subcategory?: string[]; + merchant?: string; + tags?: string[]; + description?: string; +} + +export class UpdateExpenseDto extends PartialType(CreateExpenseDto) { } + +export class GetExpenseDto extends CreateExpenseDto{ + id: number; +} diff --git a/src/controllers/expenses/expense.entities.ts b/src/controllers/expenses/expense.entities.ts new file mode 100644 index 0000000..1fd939a --- /dev/null +++ b/src/controllers/expenses/expense.entities.ts @@ -0,0 +1,32 @@ +export class Expense { + id: number; + year: string; + month: string; + day: string; + cents: number; + category: Category; + subcategory?: SubCategory[]; + merchant?: Merchant; + tags?: Tag[]; + description?: string; +} + +export class Category { + id: number; + category: string; +} + +export class SubCategory { + id: number; + subcategory: string; +} + +export class Merchant { + id: number; + merchant: string; +} + +export class Tag { + id: number; + tag: string; +} diff --git a/src/controllers/expenses/expense.entity.ts b/src/controllers/expenses/expense.entity.ts deleted file mode 100644 index 24e65cc..0000000 --- a/src/controllers/expenses/expense.entity.ts +++ /dev/null @@ -1 +0,0 @@ -export class Expense {} diff --git a/src/controllers/expenses/expenses.controller.ts b/src/controllers/expenses/expenses.controller.ts index cf5e0e7..f8ee77b 100644 --- a/src/controllers/expenses/expenses.controller.ts +++ b/src/controllers/expenses/expenses.controller.ts @@ -1,7 +1,6 @@ import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common'; import { ExpensesService } from '../../services/expenses.service'; -import { CreateExpenseDto } from './create-expense.dto'; -import { UpdateExpenseDto } from './update-expense.dto'; +import { CreateExpenseDto, GetExpenseDto, UpdateExpenseDto } from './expense.dto'; @Controller('expenses') export class ExpensesController { @@ -13,7 +12,7 @@ export class ExpensesController { } @Get() - findAll() { + findAll(): GetExpenseDto[] { return this.expensesService.findAll(); } diff --git a/src/controllers/expenses/update-expense.dto.ts b/src/controllers/expenses/update-expense.dto.ts deleted file mode 100644 index c50ce9a..0000000 --- a/src/controllers/expenses/update-expense.dto.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { PartialType } from '@nestjs/mapped-types'; -import { CreateExpenseDto } from './create-expense.dto'; - -export class UpdateExpenseDto extends PartialType(CreateExpenseDto) {} diff --git a/src/services/expenses.service.ts b/src/services/expenses.service.ts index eab4fb5..04da033 100644 --- a/src/services/expenses.service.ts +++ b/src/services/expenses.service.ts @@ -1,15 +1,26 @@ import { Injectable } from '@nestjs/common'; -import { CreateExpenseDto } from '../controllers/expenses/create-expense.dto'; -import { UpdateExpenseDto } from '../controllers/expenses/update-expense.dto'; +import { Expense } from '../controllers/expenses/expense.entities'; +import {CreateExpenseDto, GetExpenseDto, UpdateExpenseDto} from '../controllers/expenses/expense.dto'; @Injectable() export class ExpensesService { + private fakeTempData: GetExpenseDto[] = [ + { + id: 123, + year: '2025', + month: '12', + day: '10', + cents: 987, + category: 'Automotive' + } + ]; + create(createExpenseDto: CreateExpenseDto) { return 'This action adds a new expense'; } - findAll() { - return `This action returns all expenses`; + findAll(): GetExpenseDto[] { + return this.fakeTempData; } findOne(id: number) {