Compare commits
	
		
			No commits in common. 'be0f01bc1a5d9991804318804ec072a18902998a' and 'e18858fd60b6005a2325d09f4f28a4971f9d4467' have entirely different histories. 
		
	
	
		
			be0f01bc1a
			...
			e18858fd60
		
	
		
	
				 5 changed files with 0 additions and 97 deletions
			
			
		| @ -1,14 +0,0 @@ | ||||
| import { Table, Model, Column, BelongsTo, ForeignKey } from "sequelize-typescript"; | ||||
| import { User } from "../../users/entities/user.entity"; | ||||
| import { Product } from "../../products/entities/product.entity"; | ||||
| 
 | ||||
| @Table | ||||
| export class Invoice extends Model<Invoice> { | ||||
|   @ForeignKey(() => User) | ||||
|   @Column | ||||
|   userId: number; | ||||
|   @BelongsTo(() => User) | ||||
|   user: User; | ||||
|   @Column | ||||
|   totalAmount: number; | ||||
| } | ||||
| @ -1,17 +0,0 @@ | ||||
| import { Controller, Get, Post, Body, Patch, Param, Delete } from "@nestjs/common"; | ||||
| import { InvoiceService } from "./invoice.service"; | ||||
| import { Invoice } from "./entities/invoice.entity"; | ||||
| 
 | ||||
| @Controller("invoice") | ||||
| export class InvoiceController { | ||||
|   constructor(private readonly invoiceService: InvoiceService) {} | ||||
|   @Post("create") | ||||
|   async createInvoice(@Body() body: { userId: number; totalAmount: number }): Promise<Invoice> { | ||||
|     const { userId, totalAmount } = body; | ||||
|     return this.invoiceService.createInvoice(userId, totalAmount); | ||||
|   } | ||||
|   @Get(":userId") | ||||
|   async getInvoices(@Param("userId") userId: number): Promise<any> { | ||||
|     return this.invoiceService.getInvoicesByUser(userId); | ||||
|   } | ||||
| } | ||||
| @ -1,12 +0,0 @@ | ||||
| import { Module } from '@nestjs/common'; | ||||
| import { InvoiceService } from './invoice.service'; | ||||
| import { InvoiceController } from './invoice.controller'; | ||||
| import { SequelizeModule } from '@nestjs/sequelize'; | ||||
| import { Invoice } from './entities/invoice.entity'; | ||||
| 
 | ||||
| @Module({ | ||||
|   imports : [SequelizeModule.forFeature([Invoice])], | ||||
|   controllers: [InvoiceController], | ||||
|   providers: [InvoiceService], | ||||
| }) | ||||
| export class InvoiceModule {} | ||||
| @ -1,52 +0,0 @@ | ||||
| import { HttpException, HttpStatus, Injectable } from "@nestjs/common"; | ||||
| import { InjectModel } from "@nestjs/sequelize"; | ||||
| import { Invoice } from "./entities/invoice.entity"; | ||||
| import { where } from "sequelize"; | ||||
| 
 | ||||
| @Injectable() | ||||
| export class InvoiceService { | ||||
|   constructor(@InjectModel(Invoice) private readonly invoiceModel: typeof Invoice) {} | ||||
| 
 | ||||
|   async createInvoice(userId: number, totalAmount: number): Promise<Invoice> { | ||||
|     try { | ||||
|       if (!userId) { | ||||
|         throw new HttpException("User id not found!", HttpStatus.BAD_REQUEST); | ||||
|       } | ||||
| 
 | ||||
|       const newInvoice = await this.invoiceModel.create({ userId, totalAmount }); | ||||
|       return newInvoice; | ||||
|     } catch (error) { | ||||
|    
 | ||||
|       if (error instanceof HttpException) { | ||||
|         throw error; | ||||
|       } | ||||
| 
 | ||||
|       throw new HttpException("An error occurred while creating the invoice.", HttpStatus.INTERNAL_SERVER_ERROR); | ||||
|     } | ||||
|   } | ||||
|   async getInvoicesByUser(userId: number): Promise<Invoice[]> { | ||||
|     try { | ||||
|       if (!userId) { | ||||
|         throw new HttpException('User ID is required.', HttpStatus.BAD_REQUEST); | ||||
|       } | ||||
| 
 | ||||
|       const invoices = await this.invoiceModel.findAll({ | ||||
|         where: { userId }, | ||||
|       }); | ||||
| 
 | ||||
|       if (!invoices || invoices.length === 0) { | ||||
|         throw new HttpException('No invoices found for this user.', HttpStatus.NOT_FOUND); | ||||
|       } | ||||
| 
 | ||||
|       return invoices; | ||||
|     } catch (error) { | ||||
|       if (error instanceof HttpException) { | ||||
|         throw error; | ||||
|       } | ||||
|       throw new HttpException( | ||||
|         'An error occurred while retrieving invoices.', | ||||
|         HttpStatus.INTERNAL_SERVER_ERROR, | ||||
|       ); | ||||
|     } | ||||
|   } | ||||
| } | ||||
					Loading…
					
					
				
		Reference in new issue