From 81e0eeed739b473ab1f87195b377e3a73106c13c Mon Sep 17 00:00:00 2001 From: abhinandpn Date: Mon, 27 Nov 2023 03:24:21 +0530 Subject: [PATCH] Merge changes from main branch --- .../handler/interfaces/productinterfaces.go | 16 +++++++- product-services/pkg/api/handler/product.go | 21 ++++++++++ .../interfaces/productinterfaces.go | 13 ++++++- product-services/pkg/repositories/product.go | 38 ++++++++++++++++++- .../usecase/interfaces/productinterfaces.go | 19 ++++++++-- product-services/pkg/usecase/product.go | 38 +++++++++++++++++++ 6 files changed, 139 insertions(+), 6 deletions(-) diff --git a/product-services/pkg/api/handler/interfaces/productinterfaces.go b/product-services/pkg/api/handler/interfaces/productinterfaces.go index ef990cd..178ddfe 100644 --- a/product-services/pkg/api/handler/interfaces/productinterfaces.go +++ b/product-services/pkg/api/handler/interfaces/productinterfaces.go @@ -1,5 +1,19 @@ package interfaces +import "github.com/gin-gonic/gin" + type ProductHandler interface { - // + + // Product + AddProduct(ctx *gin.Context) + UpdateProduct(ctx *gin.Context) + DeteleProduct(ctx *gin.Context) + ListFullProducts(ctx *gin.Context) + GetProductById(ctx *gin.Context) + + // Category + // Sub-Category + // Brand + // Sorting + // Searching } diff --git a/product-services/pkg/api/handler/product.go b/product-services/pkg/api/handler/product.go index ebf9ba9..cce249b 100644 --- a/product-services/pkg/api/handler/product.go +++ b/product-services/pkg/api/handler/product.go @@ -2,6 +2,7 @@ package handler import ( handlerinterfaces "github.com/abhinandpn/MicroServices-GoLang/product-services/pkg/api/handler/interfaces" + "github.com/gin-gonic/gin" services "github.com/abhinandpn/MicroServices-GoLang/product-services/pkg/usecase/interfaces" ) @@ -13,3 +14,23 @@ type ProductHandler struct { func NewProductHandler(productUsecase services.ProductUseCase) handlerinterfaces.ProductHandler { return &ProductHandler{ProductUseCase: productUsecase} } + +func (P *ProductHandler) AddProduct(ctx *gin.Context) { + +} + +func (P *ProductHandler) UpdateProduct(ctx *gin.Context) { + +} + +func (P *ProductHandler) DeteleProduct(ctx *gin.Context) { + +} + +func (P *ProductHandler) ListFullProducts(ctx *gin.Context) { + +} + +func (P *ProductHandler) GetProductById(ctx *gin.Context) { + +} diff --git a/product-services/pkg/repositories/interfaces/productinterfaces.go b/product-services/pkg/repositories/interfaces/productinterfaces.go index 7597908..5c970a6 100644 --- a/product-services/pkg/repositories/interfaces/productinterfaces.go +++ b/product-services/pkg/repositories/interfaces/productinterfaces.go @@ -1,5 +1,16 @@ package interfaces type ProductRepositorie interface { - // + + // Product + AddProduct() + UpdateProduct() + DeleteProduct() + + // Filtering + GetFullProducts() + GetProductById() + GetProductByName() + GetProductByCategory() + GetProductByBrand() } diff --git a/product-services/pkg/repositories/product.go b/product-services/pkg/repositories/product.go index 0ce0dd0..4c6d12c 100644 --- a/product-services/pkg/repositories/product.go +++ b/product-services/pkg/repositories/product.go @@ -10,5 +10,41 @@ type ProductDatabase struct { } func NewProductRepository(DB *gorm.DB) interfaces.ProductRepositorie { - return ProductDatabase{DB: DB} + return &ProductDatabase{DB: DB} +} + +// Product Basic + +func (P *ProductDatabase) AddProduct() { + +} + +func (P *ProductDatabase) UpdateProduct() { + +} + +func (P *ProductDatabase) DeleteProduct() { + +} + +// Product filtering + +func (P *ProductDatabase) GetFullProducts() { + +} + +func (P *ProductDatabase) GetProductById() { + +} + +func (P *ProductDatabase) GetProductByName() { + +} + +func (P *ProductDatabase) GetProductByCategory() { + +} + +func (P *ProductDatabase) GetProductByBrand() { + } diff --git a/product-services/pkg/usecase/interfaces/productinterfaces.go b/product-services/pkg/usecase/interfaces/productinterfaces.go index 4287ae4..09deb83 100644 --- a/product-services/pkg/usecase/interfaces/productinterfaces.go +++ b/product-services/pkg/usecase/interfaces/productinterfaces.go @@ -1,5 +1,18 @@ package interfaces -type ProductUseCase interface{ - -} \ No newline at end of file +type ProductUseCase interface { + + // Product + CreateProduct() + UpdateProduct() + DeletProduct() + + // Listing + ViewFullProducts() + ViewProductById() + ViewProductByName() + ViewProductsByCategory() + ViewProductsBySUbCategory() + ViewProductsByBrands() + +} diff --git a/product-services/pkg/usecase/product.go b/product-services/pkg/usecase/product.go index 7d7bb83..54ac252 100644 --- a/product-services/pkg/usecase/product.go +++ b/product-services/pkg/usecase/product.go @@ -12,3 +12,41 @@ type ProductUseCase struct { func NewProductUsecase(productRepo interfaces.ProductRepositorie) services.ProductUseCase { return &ProductUseCase{ProductRepo: productRepo} } + +// Product Basic +func (P *ProductUseCase) CreateProduct() { + +} + +func (P *ProductUseCase) UpdateProduct() { + +} + +func (P *ProductUseCase) DeletProduct() { + +} + +// Product Listing +func (P *ProductUseCase) ViewFullProducts() { + +} + +func (P *ProductUseCase) ViewProductById() { + +} + +func (P *ProductUseCase) ViewProductByName() { + +} + +func (P *ProductUseCase) ViewProductsByCategory() { + +} + +func (P *ProductUseCase) ViewProductsBySUbCategory() { + +} + +func (P *ProductUseCase) ViewProductsByBrands() { + +}