From 3451f1712300bad8a293e79d31c2ff058300d499 Mon Sep 17 00:00:00 2001 From: Mathis Date: Mon, 15 Jul 2024 12:25:58 +0200 Subject: [PATCH] docs(stocks): implement CRUD operations for product stocks This update introduces several features within the stock service and controller, including creating new stock for a product, altering existing product stock, retrieving current stock, and managing product stocks with pagination. --- src/stocks/stocks.controller.ts | 8 +++++++- src/stocks/stocks.service.ts | 35 ++++++++++++++++++++++++++++++++- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/src/stocks/stocks.controller.ts b/src/stocks/stocks.controller.ts index 0d9a51e..86349bd 100644 --- a/src/stocks/stocks.controller.ts +++ b/src/stocks/stocks.controller.ts @@ -2,5 +2,11 @@ import { Controller } from '@nestjs/common'; @Controller('stocks') export class StocksController { - //TODO CRUD by admin + //POST new stock of a product (via id) [admin] + + //PATCH existing stock of a product (via id) [admin] + + //GET current stock of a product [user] + + //GET product with more or less stock (10 each) } diff --git a/src/stocks/stocks.service.ts b/src/stocks/stocks.service.ts index d8fb3ea..dcb5aa2 100644 --- a/src/stocks/stocks.service.ts +++ b/src/stocks/stocks.service.ts @@ -2,5 +2,38 @@ import { Injectable } from '@nestjs/common'; @Injectable() export class StocksService { - //CRUD on products stocks + //create a new stock for a product + async createStock(productId: string, quantity: number) { + // implementation here + } + + //alter an existing stock of a product (via product id) + async alterStock(productId: string, newQuantity: number) { + // implementation here + } + + //get the current stock of a product (via product id) + async getCurrentStock(productId: string) { + // implementation here + } + + //get products with more or less stock (10 each) + async getProductsRankedByStock(quantity: number, asc: boolean) { + // implementation here + } + + //get all product's stocks with pagination + async getAllStocks(page: number, limit: number) { + // implementation here + } + + //decrement stock of a product (via product id and quantity to decrement) + async decrementStock(productId: string, quantityToDrop: number) { + // implementation here + } + + //increment stock of a product (via product id and quantity to increment) + async incrementStock(productId: string, quantity: number) { + // implementation here + } }