Documentation ¶
Index ¶
- Constants
- func NewAdminHandler(adminUsecase usecaseInterface.AdminUseCase) interfaces.AdminHandler
- func NewAuthHandler(authUsecase usecaseInterface.AuthUseCase, config config.Config) interfaces.AuthHandler
- func NewBrandHandler(brandUseCase usecaseInterface.BrandUseCase) interfaces.BrandHandler
- func NewCartHandler(cartUseCase usecaseInterface.CartUseCase) interfaces.CartHandler
- func NewCouponHandler(couponUseCase usecase.CouponUseCase) interfaces.CouponHandler
- func NewOfferHandler(offerUseCase usecaseInterface.OfferUseCase) interfaces.OfferHandler
- func NewOrderHandler(orderUseCase usecaseInterface.OrderUseCase) interfaces.OrderHandler
- func NewPaymentHandler(paymentUseCase interfaces.PaymentUseCase) handlerInterface.PaymentHandler
- func NewProductHandler(productUsecase usecaseInterface.ProductUseCase) interfaces.ProductHandler
- func NewStockHandler(stockUseCase usecaseInterface.StockUseCase) interfaces.StockHandler
- func NewUserHandler(userUsecase usecaseInterface.UserUseCase) interfaces.UserHandler
- type AuthHandler
- func (c *AuthHandler) AdminLogin(ctx *gin.Context)
- func (c *AuthHandler) AdminRenewAccessToken() gin.HandlerFunc
- func (c *AuthHandler) UserGoogleAuthCallBack(ctx *gin.Context)
- func (c *AuthHandler) UserGoogleAuthInitialize(ctx *gin.Context)
- func (c *AuthHandler) UserGoogleAuthLoginPage(ctx *gin.Context)
- func (c *AuthHandler) UserLogin(ctx *gin.Context)
- func (u *AuthHandler) UserLoginOtpSend(ctx *gin.Context)
- func (c *AuthHandler) UserLoginOtpVerify(ctx *gin.Context)
- func (c *AuthHandler) UserRenewAccessToken() gin.HandlerFunc
- func (c *AuthHandler) UserSignUp(ctx *gin.Context)
- func (c *AuthHandler) UserSignUpVerify(ctx *gin.Context)
- type CouponHandler
- type OrderHandler
- func (c *OrderHandler) CancelOrder(ctx *gin.Context)
- func (c *OrderHandler) GetAllOrderItemsAdmin() func(ctx *gin.Context)
- func (c *OrderHandler) GetAllOrderItemsUser() func(ctx *gin.Context)
- func (c *OrderHandler) GetAllOrderReturns(ctx *gin.Context)
- func (c *OrderHandler) GetAllOrderStatuses(ctx *gin.Context)
- func (c *OrderHandler) GetAllPendingReturns(ctx *gin.Context)
- func (c *OrderHandler) GetAllShopOrders(ctx *gin.Context)
- func (c *OrderHandler) GetUserOrder(ctx *gin.Context)
- func (c *OrderHandler) GetUserWallet(ctx *gin.Context)
- func (c *OrderHandler) GetUserWalletTransactions(ctx *gin.Context)
- func (c *OrderHandler) SaveOrder(ctx *gin.Context)
- func (c OrderHandler) SubmitReturnRequest(ctx *gin.Context)
- func (c *OrderHandler) UpdateOrderStatus(ctx *gin.Context)
- func (c *OrderHandler) UpdateReturnRequest(ctx *gin.Context)
- type ProductHandler
- func (p *ProductHandler) GetAllCategories(ctx *gin.Context)
- func (p *ProductHandler) GetAllProductItemsAdmin() func(ctx *gin.Context)
- func (p *ProductHandler) GetAllProductItemsUser() func(ctx *gin.Context)
- func (p *ProductHandler) GetAllProductsAdmin() func(ctx *gin.Context)
- func (p *ProductHandler) GetAllProductsUser() func(ctx *gin.Context)
- func (c *ProductHandler) GetAllVariations(ctx *gin.Context)
- func (p *ProductHandler) SaveCategory(ctx *gin.Context)
- func (p *ProductHandler) SaveProduct(ctx *gin.Context)
- func (p *ProductHandler) SaveProductItem(ctx *gin.Context)
- func (p *ProductHandler) SaveSubCategory(ctx *gin.Context)
- func (p *ProductHandler) SaveVariation(ctx *gin.Context)
- func (p *ProductHandler) SaveVariationOption(ctx *gin.Context)
- func (c *ProductHandler) UpdateProduct(ctx *gin.Context)
- type UserHandler
- func (c *UserHandler) CheckOutCart(ctx *gin.Context)
- func (u *UserHandler) GetAllAddresses(ctx *gin.Context)
- func (u *UserHandler) GetProfile(ctx *gin.Context)
- func (u *UserHandler) GetWishList(ctx *gin.Context)
- func (u *UserHandler) RemoveFromWishList(ctx *gin.Context)
- func (u *UserHandler) SaveAddress(ctx *gin.Context)
- func (u *UserHandler) SaveToWishList(ctx *gin.Context)
- func (u *UserHandler) UpdateAddress(ctx *gin.Context)
- func (u *UserHandler) UpdateProfile(ctx *gin.Context)
Constants ¶
const ( BindJsonFailMessage = "Failed to bind json inputs from request" BindQueryFailMessage = "Failed to bind query inputs from request" BindParamFailMessage = "Failed to bind param input from url" BindFormValueMessage = "Failed to bind form values from request" )
Variables ¶
This section is empty.
Functions ¶
func NewAdminHandler ¶
func NewAdminHandler(adminUsecase usecaseInterface.AdminUseCase) interfaces.AdminHandler
func NewAuthHandler ¶
func NewAuthHandler(authUsecase usecaseInterface.AuthUseCase, config config.Config) interfaces.AuthHandler
func NewBrandHandler ¶
func NewBrandHandler(brandUseCase usecaseInterface.BrandUseCase) interfaces.BrandHandler
func NewCartHandler ¶
func NewCartHandler(cartUseCase usecaseInterface.CartUseCase) interfaces.CartHandler
func NewCouponHandler ¶
func NewCouponHandler(couponUseCase usecase.CouponUseCase) interfaces.CouponHandler
func NewOfferHandler ¶
func NewOfferHandler(offerUseCase usecaseInterface.OfferUseCase) interfaces.OfferHandler
func NewOrderHandler ¶
func NewOrderHandler(orderUseCase usecaseInterface.OrderUseCase) interfaces.OrderHandler
func NewPaymentHandler ¶
func NewPaymentHandler(paymentUseCase interfaces.PaymentUseCase) handlerInterface.PaymentHandler
func NewProductHandler ¶
func NewProductHandler(productUsecase usecaseInterface.ProductUseCase) interfaces.ProductHandler
func NewStockHandler ¶
func NewStockHandler(stockUseCase usecaseInterface.StockUseCase) interfaces.StockHandler
func NewUserHandler ¶
func NewUserHandler(userUsecase usecaseInterface.UserUseCase) interfaces.UserHandler
Types ¶
type AuthHandler ¶
type AuthHandler struct {
// contains filtered or unexported fields
}
func (*AuthHandler) AdminLogin ¶
func (c *AuthHandler) AdminLogin(ctx *gin.Context)
AdminLogin godoc
@Summary Login with password (Admin) @Description API for admin to login with password @Id AdminLogin @Tags Admin Authentication @Param input body request.Login{} true "Login credentials" @Router /admin/auth/sign-in [post] @Success 200 {object} response.Response{data=response.TokenResponse} "Successfully logged in" @Failure 400 {object} response.Response{} "Invalid input" @Failure 401 {object} response.Response{} "Wrong password" @Failure 404 {object} response.Response{} "Admin not exist with this details" @Failure 500 {object} response.Response{} "Failed to login"
func (*AuthHandler) AdminRenewAccessToken ¶
func (c *AuthHandler) AdminRenewAccessToken() gin.HandlerFunc
AdminRenewAccessToken godoc
@Summary Renew Access Token (Admin) @Description API for admin to renew access token using refresh token @Security ApiKeyAuth @Id AdminRenewAccessToken @Tags Admin Authentication @Param input body request.RefreshToken{} true "Refresh token" @Router /admin/auth/renew-access-token [post] @Success 200 {object} response.Response{} "Successfully generated access token using refresh token" @Failure 400 {object} response.Response{} "Invalid input" @Failure 401 {object} response.Response{} "Invalid refresh token" @Failure 404 {object} response.Response{} "No session found for the given refresh token" @Failure 410 {object} response.Response{} "Refresh token expired" @Failure 403 {object} response.Response{} "Refresh token blocked" @Failure 500 {object} response.Response{} "Failed generate access token"
func (*AuthHandler) UserGoogleAuthCallBack ¶
func (c *AuthHandler) UserGoogleAuthCallBack(ctx *gin.Context)
UserGoogleAuthCallBack godoc
@Summary Google auth callback (User) @Description API for google to callback after authentication @Id UserGoogleAuthCallBack @Tags User Authentication @Router /auth/google-auth/callback [post] @Success 200 {object} response.Response{} "Successfully logged in with google" @Failure 500 {object} response.Response{} "Failed Login with google"
func (*AuthHandler) UserGoogleAuthInitialize ¶
func (c *AuthHandler) UserGoogleAuthInitialize(ctx *gin.Context)
UserGoogleAuthInitialize godoc
@Summary Initialize google auth (User) @Description API for user to initialize google auth @Id UserGoogleAuthInitialize @Tags User Authentication @Router /auth/google-auth/initialize [get]
func (*AuthHandler) UserGoogleAuthLoginPage ¶
func (c *AuthHandler) UserGoogleAuthLoginPage(ctx *gin.Context)
UserGoogleAuthLoginPage godoc
@Summary To load google login page (User) @Description API for user to load google login page @Id UserGoogleAuthLoginPage @Tags User Authentication @Router /auth/google-auth [get] @Success 200 {object} response.Response{} "Successfully google login page loaded"
func (*AuthHandler) UserLogin ¶
func (c *AuthHandler) UserLogin(ctx *gin.Context)
UserLogin godoc
@Summary Login with password (User) @Description API for user to login with email | phone | user_name with password @Id UserLogin @Tags User Authentication @Param inputs body request.Login{} true "Login Details" @Router /auth/sign-in [post] @Success 200 {object} response.Response{data=response.TokenResponse} "Successfully logged in" @Failure 400 {object} response.Response{} "Invalid inputs" @Failure 403 {object} response.Response{} "User blocked by admin" @Failure 401 {object} response.Response{} "User not exist with given login credentials" @Failure 500 {object} response.Response{} "Failed to login"
func (*AuthHandler) UserLoginOtpSend ¶
func (u *AuthHandler) UserLoginOtpSend(ctx *gin.Context)
UserLoginOtpSend godoc
@Summary Login with Otp send (User) @Description API for user to send otp for login enter email | phone | user_name : otp will send to user registered number @Id UserLoginOtpSend @Tags User Authentication @Param inputs body request.OTPLogin{} true "Login credentials" @Router /auth/sign-in/otp/send [post] @Success 200 {object} response.Response{response.OTPResponse{}} "Successfully otp send to user's registered number" @Failure 400 {object} response.Response{} "Invalid Otp" @Failure 403 {object} response.Response{} "User blocked by admin" @Failure 401 {object} response.Response{} "User not exist with given login credentials" @Failure 500 {object} response.Response{} "Failed to send otp"
func (*AuthHandler) UserLoginOtpVerify ¶
func (c *AuthHandler) UserLoginOtpVerify(ctx *gin.Context)
UserLoginOtpVerify godoc
@summary Login with Otp verify (User) @description API for user to verify otp @id UserLoginOtpVerify @tags User Authentication @param inputs body request.OTPVerify{} true "Otp Verify Details" @Router /auth/sign-in/otp/verify [post] @Success 200 {object} response.Response{data=response.TokenResponse} "Successfully user logged in" @Failure 400 {object} response.Response{} "Invalid inputs" @Failure 401 {object} response.Response{} "Otp not matched" @Failure 410 {object} response.Response{} "Otp Expired" @Failure 500 {object} response.Response{} "Failed to verify otp
func (*AuthHandler) UserRenewAccessToken ¶
func (c *AuthHandler) UserRenewAccessToken() gin.HandlerFunc
UserRenewAccessToken godoc
@Summary Renew Access Token (User) @Description API for user to renew access token using refresh token @Security ApiKeyAuth @Id UserRenewAccessToken @Tags User Authentication @Param input body request.RefreshToken{} true "Refresh token" @Router /auth/renew-access-token [post] @Success 200 {object} response.Response{} "Successfully generated access token using refresh token" @Failure 400 {object} response.Response{} "Invalid input" @Failure 401 {object} response.Response{} "Invalid refresh token" @Failure 404 {object} response.Response{} "No session found for the given refresh token" @Failure 410 {object} response.Response{} "Refresh token expired" @Failure 403 {object} response.Response{} "Refresh token blocked" @Failure 500 {object} response.Response{} "Failed generate access token"
func (*AuthHandler) UserSignUp ¶
func (c *AuthHandler) UserSignUp(ctx *gin.Context)
UserSignUp godoc
@Summary Signup (User) @Description API for user to register a new account @Id UserSignUp @Tags User Authentication @Param input body request.UserSignUp{} true "Input Fields" @Router /auth/sign-up [post] @Success 200 {object} response.Response{data=response.OTPResponse} "Successfully account created and otp send to registered number" @Failure 400 {object} response.Response{} "Invalid input" @Failure 409 {object} response.Response{} "A verified user already exist with given user credentials" @Failure 500 {object} response.Response{} "Failed to signup"
func (*AuthHandler) UserSignUpVerify ¶
func (c *AuthHandler) UserSignUpVerify(ctx *gin.Context)
UserSignUpVerify godoc
@summary UserSingUp verify OTP (User) @description API for user to verify otp on sign up @id UserSignUpVerify @tags User Authentication @param inputs body request.OTPVerify{} true "Otp Verify Details" @Router /auth/sign-up/verify [post] @Success 200 {object} response.Response{data=response.TokenResponse} "Successfully otp verified for user sign up" @Failure 400 {object} response.Response{} "Invalid inputs" @Failure 401 {object} response.Response{} "Otp not matched" @Failure 410 {object} response.Response{} "Otp Expired" @Failure 500 {object} response.Response{} "Failed to verify otp"
type CouponHandler ¶
type CouponHandler struct {
// contains filtered or unexported fields
}
func (*CouponHandler) ApplyCouponToCart ¶
func (c *CouponHandler) ApplyCouponToCart(ctx *gin.Context)
ApplyCouponToCart godoc
@Summary Apply coupon @Description API for user to apply a coupon on cart @Security BearerAuth @Tags User Cart @Id ApplyCouponToCart @Param inputs body request.ApplyCoupon{} true "Input Field" @Router /carts/apply-coupon [patch] @Success 200 {object} response.Response{} "Successfully coupon applied to user cart" @Failure 400 {object} response.Response{} "invalid input"
func (*CouponHandler) GetAllCouponsAdmin ¶
func (c *CouponHandler) GetAllCouponsAdmin(ctx *gin.Context)
GetAllCouponsAdmin godoc
@Summary Get all coupons (Admin) @Description API for admin to get all coupons @Security BearerAuth @Tags Admin Coupon @Id GetAllCouponsAdmin @Param page_number query int false "Page Number" @Param count query int false "Count" @Router /admin/coupons [get] @Success 200 {object} response.Response{} "successfully go all the coupons @Failure 500 {object} response.Response{} "failed to get all coupons"
func (*CouponHandler) GetAllCouponsForUser ¶
func (c *CouponHandler) GetAllCouponsForUser(ctx *gin.Context)
GetAllCouponsForUser godoc
@Summary Get all user coupons (User) @Description API for user to get all coupons @Security BearerAuth @tags User Profile @id GetAllCouponsForUser @Param page_number query int false "Page Number" @Param count query int false "Count Of Order" @Router /account/coupons [get] @Success 200 {object} response.Response{} ""Successfully found all coupons for user" @Failure 500 {object} response.Response{} "Failed to find all user"
func (*CouponHandler) SaveCoupon ¶
func (c *CouponHandler) SaveCoupon(ctx *gin.Context)
SaveCoupon godoc
@Summary Add coupons (Admin) @Description API for admin to add a new coupon @Security BearerAuth @Tags Admin Coupon @Id SaveCoupon @Param inputs body request.Coupon{} true "Input Fields" @Router /admin/coupons [post] @Success 200 {object} response.Response{} "successfully coupon added" @Failure 400 {object} response.Response{} "invalid input"
func (*CouponHandler) UpdateCoupon ¶
func (c *CouponHandler) UpdateCoupon(ctx *gin.Context)
UpdateCoupon godoc
@Summary Update Coupon (Admin) @Description API for admin update coupon details @Security BearerAuth @Tags Admin Coupon @Id UpdateCoupon @Param inputs body request.EditCoupon{} true "Input Field" @Router /admin/coupons [put] @Success 200 {object} response.Response{} "Successfully updated the coupon" @Failure 400 {object} response.Response{} "invalid input"
type OrderHandler ¶
type OrderHandler struct {
// contains filtered or unexported fields
}
func (*OrderHandler) CancelOrder ¶
func (c *OrderHandler) CancelOrder(ctx *gin.Context)
CancelOrder godoc
@Summary Cancel order (User) @Security BearerAuth @Description Api for user to cancel a order @Id CancelOrder @Tags User Orders @Param shop_order_id path int true "Shop Order ID" @Router /orders/{shop_order_id}/cancel [post] @Success 200 {object} response.Response{} "Successfully order cancelled" @Failure 400 {object} response.Response{} "Invalid inputs" @Failure 500 {object} response.Response{} "Failed to cancel order"
func (*OrderHandler) GetAllOrderItemsAdmin ¶
func (c *OrderHandler) GetAllOrderItemsAdmin() func(ctx *gin.Context)
GetAllOrderItemsAdmin godoc
@Summary Get all order items (Admin) @Security BearerAuth @Description API for user to get all order items of a specific order @Id GetAllOrderItemsAdmin @Tags Admin Orders @Param shop_order_id path int true "Shop Order ID" @Param page_number query int false "Page Number" @Param count query int false "Count" @Router /admin/orders/{shop_order_id}/items [get] @Success 200 {object} response.Response{} "Successfully found order items" @Success 204 {object} response.Response{} "No order items found" @Failure 500 {object} response.Response{} "Failed to find order items"
func (*OrderHandler) GetAllOrderItemsUser ¶
func (c *OrderHandler) GetAllOrderItemsUser() func(ctx *gin.Context)
GetAllOrderItemsUser godoc
@Summary Get all order items (User) @Security BearerAuth @Description API for user to get all order items of a specific order @Id GetAllOrderItemsUser @Tags User Orders @Param shop_order_id path int true "Shop Order ID" @Param page_number query int false "Page Number" @Param count query int false "Count Of Order" @Router /orders/{shop_order_id}/items [get] @Success 200 {object} response.Response{} "Successfully found order items" @Failure 500 {object} response.Response{} "Failed to find order items"
func (*OrderHandler) GetAllOrderReturns ¶
func (c *OrderHandler) GetAllOrderReturns(ctx *gin.Context)
GetAllOrderReturns godoc
@Summary Get all order returns (Admin) @Security BearerAuth @Description API for admin to get all order returns @Id GetAllOrderReturns @Tags Admin Orders @Param page_number query int false "Page Number" @Param count query int false "Count Of Order" @Router /admin/orders/returns [get] @Success 200 {object} response.Response{} "Successfully found all order returns" @Failure 500 {object} response.Response{} "Failed to find all order returns"
func (*OrderHandler) GetAllOrderStatuses ¶
func (c *OrderHandler) GetAllOrderStatuses(ctx *gin.Context)
GetAllOrderStatuses godoc
@Summary Get all order statuses (Admin) @Security BearerAuth @Description API for admin to get all available order statuses @Id GetAllOrderStatuses @Tags Admin Orders @Router /admin/orders/statuses [get] @Success 200 {object} response.Response{} "Successfully retrieved all order statuses" @Success 204 {object} response.Response{} "No order statuses found" @Failure 500 {object} response.Response{} "Failed to find all order statuses"
func (*OrderHandler) GetAllPendingReturns ¶
func (c *OrderHandler) GetAllPendingReturns(ctx *gin.Context)
GetAllPendingReturns godoc
@Summary Get all pending returns (Admin) @Security BearerAuth @Description API for admin to get all pending returns @Id GetAllPendingReturns @Tags Admin Orders @Param page_number query int false "Page Number" @Param count query int false "Count Of Order" @Router /admin/orders/returns/pending [get] @Success 200 {object} response.Response{} "Successfully found all pending orders return requests" @Failure 500 {object} response.Response{} "Failed to find all pending order return requests"
func (*OrderHandler) GetAllShopOrders ¶
func (c *OrderHandler) GetAllShopOrders(ctx *gin.Context)
GetAllShopOrders godoc
@Summary Get all orders (Admin) @Security BearerAuth @Description API for admin to get all orders @Id GetAllShopOrders @Tags Admin Orders @Param page_number query int false "Page Number" @Param count query int false "Count" @Router /admin/orders/all [get] @Success 200 {object} response.Response{} "Successfully retrieved all shop orders" @Success 204 {object} response.Response{} "No shop order found" @Failure 500 {object} response.Response{} "Failed to find all shop orders"
func (*OrderHandler) GetUserOrder ¶
func (c *OrderHandler) GetUserOrder(ctx *gin.Context)
GetUserOrder godoc
@summary Get user orders (User) @Security BearerAuth @description API to get order for user user orders @id GetUserOrder @tags User Orders @Param page_number query int false "Page Number" @Param count query int false "Count Of Order" @Router /orders [get] @Success 200 {object} response.Response{} "Successfully retrieved all user orders" @Success 204 {object} response.Response{} "No shop orders for user" @Failure 500 {object} response.Response{} "Failed to retrieve all user orders"
func (*OrderHandler) GetUserWallet ¶
func (c *OrderHandler) GetUserWallet(ctx *gin.Context)
GetUserWallet godoc
@Summary Get user wallet (User) @Security BearerAuth @Description API for user to get user wallet @Id GetUserWallet @Tags User Profile @Router /account/wallet [get] @Success 200 {object} response.Response{} "Successfully retrieve user wallet" @Failure 500 {object} response.Response{} "Failed to retrieve user wallet"
func (*OrderHandler) GetUserWalletTransactions ¶
func (c *OrderHandler) GetUserWalletTransactions(ctx *gin.Context)
GetUserWalletTransactions godoc
@Summary Get user wallet (User) @Security BearerAuth @Description API for user to get user wallet transaction @Id GetUserWalletTransactions @Tags User Profile @Router /account/wallet/transactions [get] @Success 200 {object} response.Response{} "Successfully retrieved user wallet transactions" @Success 204 {object} response.Response{} "No wallet transaction for user" @Failure 500 {object} response.Response{} "Failed to retrieve user wallet transactions"
func (*OrderHandler) SaveOrder ¶
func (c *OrderHandler) SaveOrder(ctx *gin.Context)
SaveOrder godoc
@Summary Save Order (User) @Security BearerAuth @Description API for user save an order @Tags User Orders @Id SaveOrder @Param address_id formData string true "Address ID" @Router /carts/place-order [post] @Success 200 {object} response.Response{} "successfully order placed" @Success 204 {object} response.Response{} "Cart is empty" @Failure 400 {object} response.Response{} "invalid input" @Failure 409 {object} response.Response{} "Can't place order out of stock product on cart" @Failure 500 {object} response.Response{} "Failed to save order"
func (OrderHandler) SubmitReturnRequest ¶
func (c OrderHandler) SubmitReturnRequest(ctx *gin.Context)
SubmitReturnRequest godoc
@Summary Return request (User) @Security BearerAuth @Description API for user to request a return for delivered order @Id SubmitReturnRequest @Tags User Orders @Param input body request.Return true "Input Fields" @Router /orders/return [post] @Success 200 {object} response.Response{} "Successfully return request submitted for order" @Failure 400 {object} response.Response{} "invalid input"
func (*OrderHandler) UpdateOrderStatus ¶
func (c *OrderHandler) UpdateOrderStatus(ctx *gin.Context)
UpdateOrderStatus godoc
@Summary Change order status (Admin) @Security BearerAuth @Description API for admin to change order status @Id UpdateOrderStatus @Tags Admin Orders @Param input body request.UpdateOrder{} true "input field" @Router /admin/orders/ [put] @Success 200 {object} response.Response{} "Successfully order status updated" @Failure 400 {object} response.Response{} "invalid input"
func (*OrderHandler) UpdateReturnRequest ¶
func (c *OrderHandler) UpdateReturnRequest(ctx *gin.Context)
UpdateReturnRequest godoc
@summary Change return request status (Admin) @Security BearerAuth @description API for admin to change status of return requested orders @id UpdateReturnRequest @tags Admin Orders @Param input body request.UpdateOrderReturn{} true "Input Fields" @Router /admin/orders/returns/pending [put] @Success 200 {object} response.Response{} "successfully order_response updated" @Failure 500 {object} response.Response{} "invalid input"
type ProductHandler ¶
type ProductHandler struct {
// contains filtered or unexported fields
}
func (*ProductHandler) GetAllCategories ¶
func (p *ProductHandler) GetAllCategories(ctx *gin.Context)
GetAllCategories godoc
@Summary Get all categories (Admin) @Security BearerAuth @Description API for admin to get all categories and their subcategories @Tags Admin Category @ID GetAllCategories @Accept json @Produce json @Param page_number query int false "Page number" @Param count query int false "Count" @Router /admin/categories [get] @Success 200 {object} response.Response{} "Successfully retrieved all categories" @Failure 500 {object} response.Response{} "Failed to retrieve categories"
func (*ProductHandler) GetAllProductItemsAdmin ¶
func (p *ProductHandler) GetAllProductItemsAdmin() func(ctx *gin.Context)
GetAllProductItemsAdmin godoc
@Summary Get all product items (Admin) @Security BearerAuth @Description API for admin to get all product items for a specific product @ID GetAllProductItemsAdmin @Tags Admin Products @Accept json @Produce json @Param product_id path int true "Product ID" @Router /admin/products/{product_id}/items [get] @Success 200 {object} response.Response{} "Successfully get all product items" @Failure 400 {object} response.Response{} "Invalid input" @Failure 400 {object} response.Response{} "Failed to get all product items"
func (*ProductHandler) GetAllProductItemsUser ¶
func (p *ProductHandler) GetAllProductItemsUser() func(ctx *gin.Context)
GetAllProductItemsUser godoc
@Summary Get all product items (User) @Security BearerAuth @Description API for user to get all product items for a specific product @ID GetAllProductItemsUser @Tags User Products @Accept json @Produce json @Param product_id path int true "Product ID" @Router /products/{product_id}/items [get] @Success 200 {object} response.Response{} "Successfully get all product items" @Failure 400 {object} response.Response{} "Invalid input" @Failure 400 {object} response.Response{} "Failed to get all product items"
func (*ProductHandler) GetAllProductsAdmin ¶
func (p *ProductHandler) GetAllProductsAdmin() func(ctx *gin.Context)
GetAllProductsAdmin godoc
@Summary Get all products (Admin) @Security BearerAuth @Description API for admin to get all products @ID GetAllProductsAdmin @Tags Admin Products @Param page_number query int false "Page Number" @Param count query int false "Count" @Router /admin/products [get] @Success 200 {object} response.Response{} "Successfully found all products" @Failure 500 {object} response.Response{} "Failed to Get all products"
func (*ProductHandler) GetAllProductsUser ¶
func (p *ProductHandler) GetAllProductsUser() func(ctx *gin.Context)
GetAllProductsUser godoc
@Summary Get all products (User) @Security BearerAuth @Description API for user to get all products @ID GetAllProductsUser @Tags User Products @Param page_number query int false "Page Number" @Param count query int false "Count" @Router /products [get] @Success 200 {object} response.Response{} "Successfully found all products" @Failure 500 {object} response.Response{} "Failed to get all products"
func (*ProductHandler) GetAllVariations ¶
func (c *ProductHandler) GetAllVariations(ctx *gin.Context)
GetAllVariations godoc
@Summary Get all variations (Admin) @Security BearerAuth @Description API for admin to get all variation and its values of a category @Tags Admin Category @ID GetAllVariations @Accept json @Produce json @Param category_id path int true "Category ID" @Router /admin/categories/{category_id}/variations [get] @Success 200 {object} response.Response{} "Successfully retrieved all variations and its values" @Failure 400 {object} response.Response{} "Invalid input" @Failure 500 {object} response.Response{} "Failed to Get variations and its values"
func (*ProductHandler) SaveCategory ¶
func (p *ProductHandler) SaveCategory(ctx *gin.Context)
SaveCategory godoc
@Summary Add a new category (Admin) @Security BearerAuth @Description API for Admin to save new category @Tags Admin Category @ID SaveCategory @Accept json @Produce json @Param input body request.Category{} true "Category details" @Router /admin/categories [post] @Success 201 {object} response.Response{} "Successfully added category" @Failure 400 {object} response.Response{} "Invalid input" @Failure 409 {object} response.Response{} "Category already exist" @Failure 409 {object} response.Response{} "Failed to save category"
func (*ProductHandler) SaveProduct ¶
func (p *ProductHandler) SaveProduct(ctx *gin.Context)
SaveProduct godoc
@Summary Add a new product (Admin) @Security BearerAuth @Description API for admin to add a new product @ID SaveProduct @Tags Admin Products @Produce json @Param name formData string true "Product Name" @Param description formData string true "Product Description" @Param category_id formData int true "Category Id" @Param brand_id formData int true "Brand Id" @Param price formData int true "Product Price" @Param image formData file true "Product Description" @Success 200 {object} response.Response{} "successfully product added" @Router /admin/products [post] @Failure 400 {object} response.Response{} "invalid input" @Failure 409 {object} response.Response{} "Product name already exist"
func (*ProductHandler) SaveProductItem ¶
func (p *ProductHandler) SaveProductItem(ctx *gin.Context)
SaveProductItem godoc
@Summary Add a product item (Admin) @Security BearerAuth @Description API for admin to add a product item for a specific product(should select at least one variation option from each variations) @ID SaveProductItem @Tags Admin Products @Accept json @Produce json @Param product_id path int true "Product ID" @Param price formData int true "Price" @Param qty_in_stock formData int true "Quantity In Stock" @Param variation_option_ids formData []int true "Variation Option IDs" @Param images formData file true "Images" @Router /admin/products/{product_id}/items [post] @Success 200 {object} response.Response{} "Successfully product item added" @Failure 400 {object} response.Response{} "invalid input" @Failure 409 {object} response.Response{} "Product have already this configured product items exist"
func (*ProductHandler) SaveSubCategory ¶
func (p *ProductHandler) SaveSubCategory(ctx *gin.Context)
SaveSubCategory godoc
@Summary Add a new subcategory (Admin) @Security BearerAuth @Description API for admin to add a new sub category for a existing category @Tags Admin Category @ID SaveSubCategory @Accept json @Produce json @Param input body request.SubCategory{} true "Subcategory details" @Router /admin/categories/sub-categories [post] @Success 201 {object} response.Response{} "Successfully added subcategory" @Failure 400 {object} response.Response{} "Invalid input" @Failure 409 {object} response.Response{} "Sub category already exist" @Failure 500 {object} response.Response{} "Failed to add subcategory"
func (*ProductHandler) SaveVariation ¶
func (p *ProductHandler) SaveVariation(ctx *gin.Context)
SaveVariation godoc
@Summary Add new variations (Admin) @Security BearerAuth @Description API for admin to add new variations for a category @Tags Admin Category @ID SaveVariation @Accept json @Produce json @Param category_id path int true "Category ID" @Param input body request.Variation{} true "Variation details" @Router /admin/categories/{category_id}/variations [post] @Success 201 {object} response.Response{} "Successfully added variations" @Failure 400 {object} response.Response{} "Invalid input" @Failure 500 {object} response.Response{} "Failed to add variation"
func (*ProductHandler) SaveVariationOption ¶
func (p *ProductHandler) SaveVariationOption(ctx *gin.Context)
SaveVariationOption godoc
@Summary Add new variation options (Admin) @Security BearerAuth @Description API for admin to add variation options for a variation @Tags Admin Category @ID SaveVariationOption @Accept json @Produce json @Param category_id path int true "Category ID" @Param variation_id path int true "Variation ID" @Param input body request.VariationOption{} true "Variation option details" @Router /admin/categories/{category_id}/variations/{variation_id}/options [post] @Success 201 {object} response.Response{} "Successfully added variation options" @Failure 400 {object} response.Response{} "Invalid input" @Failure 500 {object} response.Response{} "Failed to add variation options"
func (*ProductHandler) UpdateProduct ¶
func (c *ProductHandler) UpdateProduct(ctx *gin.Context)
UpdateProduct godoc
@Summary Update a product (Admin) @Security BearerAuth @Description API for admin to update a product @ID UpdateProduct @Tags Admin Products @Accept json @Produce json @Param input body request.UpdateProduct{} true "Product update input" @Router /admin/products [put] @Success 200 {object} response.Response{} "successfully product updated" @Failure 400 {object} response.Response{} "invalid input" @Failure 409 {object} response.Response{} "Failed to update product" @Failure 500 {object} response.Response{} "Product name already exist for another product"
type UserHandler ¶
type UserHandler struct {
// contains filtered or unexported fields
}
func (*UserHandler) CheckOutCart ¶
func (c *UserHandler) CheckOutCart(ctx *gin.Context)
// CheckOutCart godoc // @summary api for cart checkout // @description user can checkout user cart items // @Security BearerAuth // @id CheckOutCart // @tags User Cart // @Router /carts/checkout [get] // @Success 200 {object} response.Response{} "successfully got checkout data" // @Failure 401 {object} res.Response{} "cart is empty so user can't call this api" // @Failure 500 {object} res.Response{} "failed to get checkout items"
func (*UserHandler) GetAllAddresses ¶
func (u *UserHandler) GetAllAddresses(ctx *gin.Context)
GetAllAddresses godoc
@Summary Get all addresses (User) @Security BearerAuth @Description API for user to get all user addresses @Id GetAllAddresses @Tags User Profile @Router /account/address [get] @Success 200 {object} response.Response{} "successfully retrieved all user addresses" @Failure 500 {object} response.Response{} "failed to show user addresses"
func (*UserHandler) GetProfile ¶
func (u *UserHandler) GetProfile(ctx *gin.Context)
GetProfile godoc
@Summary Get User Profile (User) @Security BearerAuth @Description API for user to get all user details @Id GetProfile @Tags User Profile @Router /account [get] @Success 200 "Successfully retrieved user details" @Failure 500 {object} response.Response{} "Failed to retrieve user details"
func (*UserHandler) GetWishList ¶
func (u *UserHandler) GetWishList(ctx *gin.Context)
GetWishList godoc
@Summary Get whish list product items (User) @Security BearerAuth @Descriptions API for user to get product items in the wish list @Id GetWishList @Tags User Profile @Router /account/wishlist [get] @Success 200 "Successfully retrieved all product items in th wish list" @Failure 500 "Failed to retrieve product items from the wish list"
func (*UserHandler) RemoveFromWishList ¶
func (u *UserHandler) RemoveFromWishList(ctx *gin.Context)
RemoveFromWishList godoc
@Summary Remove from whish list (User) @Security BearerAuth @Descriptions API for user to remove a product item from whish list @Id RemoveFromWishList @Tags User Profile @Param product_item_id path int true "Product Item ID" @Router /account/wishlist/{product_item_id} [delete] @Success 200 {object} response.Response{} "successfully removed product item from wishlist" @Failure 400 {object} response.Response{} "invalid input"
func (*UserHandler) SaveAddress ¶
func (u *UserHandler) SaveAddress(ctx *gin.Context)
SaveAddress godoc
@Summary Add a new address (User) @Security BearerAuth @Description API for user to add a new address @Id SaveAddress @Tags User Profile @Param inputs body request.Address{} true "Address input" @Router /account/address [post] @Success 200 {object} response.Response{} "Successfully address added" @Failure 400 {object} response.Response{} "invalid input" @Failure 500 {object} response.Response{} "Failed to save address"
func (*UserHandler) SaveToWishList ¶
func (u *UserHandler) SaveToWishList(ctx *gin.Context)
SaveToWishList godoc
@Summary Add to whish list (User) @Security BearerAuth @Descriptions API for user to add product item to wish list @Id SaveToWishList @Tags User Profile @Param product_item_id path int true "Product Item ID" @Router /account/wishlist/{product_item_id} [post] @Success 200 {object} response.Response{} "Successfully product items added to whish list" @Failure 400 {object} response.Response{} "invalid input" @Failure 409 {object} response.Response{} "Product item already exist on wish list" @Failure 500 {object} response.Response{} "Failed to add product item to wishlist"
func (*UserHandler) UpdateAddress ¶
func (u *UserHandler) UpdateAddress(ctx *gin.Context)
UpdateAddress godoc
@Summary Update address (User) @Security BearerAuth @Description API for user to update user address @Id UpdateAddress @Tags User Profile @Param input body request.EditAddress{} true "Address input" @Router /account/address [put] @Success 200 {object} response.Response{} "successfully addresses updated" @Failure 400 {object} response.Response{} "can't update the address"
func (*UserHandler) UpdateProfile ¶
func (u *UserHandler) UpdateProfile(ctx *gin.Context)
UpdateProfile godoc
@Summary Edit profile (User) @Security BearerAuth @Description API for user to edit user details @Id UpdateProfile @Tags User Profile @Param input body request.EditUser{} true "User details input" @Router /account [put] @Success 200 {object} response.Response{} "Successfully profile updated" @Failure 400 {object} response.Response{} "Invalid inputs" @Failure 500 {object} response.Response{} "Failed to update profile"