Feat: Client admin products (#930)

* add exports in product

* add product resource

* fix failling tests

* import reflect metadata

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
This commit is contained in:
Philip KorsholmandOliver Windall Juhl authored and GitHub committed 2021-12-17 12:30:04 +01:00
1 parent 59e268b919
commit e0be2da15e
8 files changed
+172 -15

No files matched your search

+1
View File
@@ -27,6 +27,7 @@ export * from "./routes/admin/notes"
export * from "./routes/admin/notifications"
export * from "./routes/admin/shipping-profiles"
export * from "./routes/admin/store"
export * from "./routes/admin/products"
export * from "./routes/admin/users"
export * from "./routes/admin/orders"
export * from "./routes/admin/variants"
@@ -52,7 +52,7 @@ export default async (req, res) => {
res.json({ product })
}
class AdminPostProductsProductOptionsReq {
export class AdminPostProductsProductOptionsReq {
@IsString()
title: string
}
@@ -12,16 +12,13 @@ import {
ValidateNested,
} from "class-validator"
import { EntityManager } from "typeorm"
import {
defaultAdminProductFields,
defaultAdminProductRelations,
ProductStatus,
} from "."
import { defaultAdminProductFields, defaultAdminProductRelations } from "."
import {
ProductService,
ProductVariantService,
ShippingProfileService,
} from "../../../../services"
import { ProductStatus } from "../../../../types/product"
import { XorConstraint } from "../../../../types/validators/xor"
import { validator } from "../../../../utils/validator"
@@ -1,7 +1,8 @@
import { Router } from "express"
import { Product } from "../../../.."
import { Product, ProductTag, ProductType } from "../../../.."
import { DeleteResponse, PaginatedResponse } from "../../../../types/common"
import middlewares from "../../../middlewares"
import "reflect-metadata"
const route = Router()
@@ -128,13 +129,6 @@ export const allowedAdminProductRelations = [
"collection",
]
export enum ProductStatus {
DRAFT = "draft",
PROPOSED = "proposed",
PUBLISHED = "published",
REJECTED = "rejected",
}
export type AdminProductsDeleteOptionRes = {
option_id: string
object: "option"
@@ -159,6 +153,30 @@ export type AdminProductsListRes = PaginatedResponse & {
products: Product[]
}
export type AdminProductsListTypesRes = {
types: ProductType[]
}
export type AdminProductsListTagsRes = {
types: ProductTag[]
}
export type AdminProductsRes = {
product: Product
}
export * from "./add-option"
export * from "./create-product"
export * from "./create-variant"
export * from "./delete-option"
export * from "./delete-product"
export * from "./delete-variant"
export * from "./get-product"
export * from "./get-variants"
export * from "./list-products"
export * from "./list-tag-usage-count"
export * from "./list-types"
export * from "./set-metadata"
export * from "./update-option"
export * from "./update-product"
export * from "./update-variant"
@@ -167,7 +167,7 @@ class ProductVariantPricesReq {
sale_amount?: number
}
class AdminPostProductsProductVariantsVariantReq {
export class AdminPostProductsProductVariantsVariantReq {
@IsString()
@IsOptional()
title?: string
+6
View File
@@ -0,0 +1,6 @@
export enum ProductStatus {
DRAFT = "draft",
PROPOSED = "proposed",
PUBLISHED = "published",
REJECTED = "rejected",
}