* feat(product, pricing, utils): Transaction issues and reference issues * fixes decorators * cleanup * fix product module upsert * fix missing active manager * increase timeout * revert package.json * WIP * try another node version based on findings with memory issues with jest introduced after 16.11 but fixed in 21 * re add bail * fix variant options * chore: bulk create pricing * chore: workflow bulk * Create big-chefs-dream.md * fix missing update for upserty * Add integration tests for product options upsert * rm unnecessary return * fix product prices workflow issue * cleanup * fix flag * fix model --------- Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com> Co-authored-by: Carlos R. L. Rodrigues <rodrigolr@gmail.com> Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>
110 lines
3.4 KiB
TypeScript
110 lines
3.4 KiB
TypeScript
import { Context, DAL, FindConfig, PricingTypes } from "@medusajs/types"
|
|
import {
|
|
InjectManager,
|
|
InjectTransactionManager,
|
|
MedusaContext,
|
|
ModulesSdkUtils,
|
|
retrieveEntity,
|
|
} from "@medusajs/utils"
|
|
import { PriceSetMoneyAmountRules } from "@models"
|
|
|
|
type InjectedDependencies = {
|
|
priceSetMoneyAmountRulesRepository: DAL.RepositoryService
|
|
}
|
|
|
|
export default class PriceSetMoneyAmountRulesService<
|
|
TEntity extends PriceSetMoneyAmountRules = PriceSetMoneyAmountRules
|
|
> {
|
|
protected readonly priceSetMoneyAmountRulesRepository_: DAL.RepositoryService
|
|
|
|
constructor({ priceSetMoneyAmountRulesRepository }: InjectedDependencies) {
|
|
this.priceSetMoneyAmountRulesRepository_ =
|
|
priceSetMoneyAmountRulesRepository
|
|
}
|
|
|
|
@InjectManager("priceSetMoneyAmountRulesRepository_")
|
|
async retrieve(
|
|
priceSetMoneyAmountRulesId: string,
|
|
config: FindConfig<PricingTypes.PriceSetMoneyAmountRulesDTO> = {},
|
|
@MedusaContext() sharedContext: Context = {}
|
|
): Promise<TEntity> {
|
|
return (await retrieveEntity<
|
|
PriceSetMoneyAmountRules,
|
|
PricingTypes.PriceSetMoneyAmountRulesDTO
|
|
>({
|
|
id: priceSetMoneyAmountRulesId,
|
|
identifierColumn: "id",
|
|
entityName: PriceSetMoneyAmountRules.name,
|
|
repository: this.priceSetMoneyAmountRulesRepository_,
|
|
config,
|
|
sharedContext,
|
|
})) as TEntity
|
|
}
|
|
|
|
@InjectManager("priceSetMoneyAmountRulesRepository_")
|
|
async list(
|
|
filters: PricingTypes.FilterablePriceSetMoneyAmountRulesProps = {},
|
|
config: FindConfig<PricingTypes.PriceSetMoneyAmountRulesDTO> = {},
|
|
@MedusaContext() sharedContext: Context = {}
|
|
): Promise<TEntity[]> {
|
|
return (await this.priceSetMoneyAmountRulesRepository_.find(
|
|
this.buildQueryForList(filters, config),
|
|
sharedContext
|
|
)) as TEntity[]
|
|
}
|
|
|
|
@InjectManager("priceSetMoneyAmountRulesRepository_")
|
|
async listAndCount(
|
|
filters: PricingTypes.FilterablePriceSetMoneyAmountRulesProps = {},
|
|
config: FindConfig<PricingTypes.PriceSetMoneyAmountRulesDTO> = {},
|
|
@MedusaContext() sharedContext: Context = {}
|
|
): Promise<[TEntity[], number]> {
|
|
return (await this.priceSetMoneyAmountRulesRepository_.findAndCount(
|
|
this.buildQueryForList(filters, config),
|
|
sharedContext
|
|
)) as [TEntity[], number]
|
|
}
|
|
|
|
private buildQueryForList(
|
|
filters: PricingTypes.FilterablePriceSetMoneyAmountRulesProps = {},
|
|
config: FindConfig<PricingTypes.PriceSetMoneyAmountRulesDTO> = {}
|
|
) {
|
|
const queryOptions = ModulesSdkUtils.buildQuery<PriceSetMoneyAmountRules>(
|
|
filters,
|
|
config
|
|
)
|
|
|
|
return queryOptions
|
|
}
|
|
|
|
@InjectTransactionManager("priceSetMoneyAmountRulesRepository_")
|
|
async create(
|
|
data: PricingTypes.CreatePriceSetMoneyAmountRulesDTO[],
|
|
@MedusaContext() sharedContext: Context = {}
|
|
): Promise<TEntity[]> {
|
|
return (await this.priceSetMoneyAmountRulesRepository_.create(
|
|
data,
|
|
sharedContext
|
|
)) as TEntity[]
|
|
}
|
|
|
|
@InjectTransactionManager("priceSetMoneyAmountRulesRepository_")
|
|
async update(
|
|
data: PricingTypes.UpdatePriceSetMoneyAmountRulesDTO[],
|
|
@MedusaContext() sharedContext: Context = {}
|
|
): Promise<TEntity[]> {
|
|
return (await this.priceSetMoneyAmountRulesRepository_.update(
|
|
data,
|
|
sharedContext
|
|
)) as TEntity[]
|
|
}
|
|
|
|
@InjectTransactionManager("priceSetMoneyAmountRulesRepository_")
|
|
async delete(
|
|
ids: string[],
|
|
@MedusaContext() sharedContext: Context = {}
|
|
): Promise<void> {
|
|
await this.priceSetMoneyAmountRulesRepository_.delete(ids, sharedContext)
|
|
}
|
|
}
|