feat: Init. v2 implementation in admin (#6715)

This commit is contained in:
Oli Juhl
2024-03-20 14:28:28 +01:00
committed by GitHub
parent c658bd0233
commit 8155e2cfad
52 changed files with 1951 additions and 23 deletions

View File

@@ -0,0 +1,49 @@
import { ModuleRegistrationName } from "@medusajs/modules-sdk"
import { CreateStoreDTO, IStoreModuleService } from "@medusajs/types"
import { StepResponse, createStep } from "@medusajs/workflows-sdk"
import { createStoresWorkflow } from "../../store"
type CreateDefaultStoreStepInput = {
store: CreateStoreDTO
}
export const createDefaultStoreStepId = "create-default-store"
export const createDefaultStoreStep = createStep(
createDefaultStoreStepId,
async (data: CreateDefaultStoreStepInput, { container }) => {
const storeService = container.resolve(ModuleRegistrationName.STORE)
let shouldDelete = false
let [store] = await storeService.list({}, { take: 1 })
if (!store) {
store = await createStoresWorkflow(container).run({
input: {
stores: [
{
// TODO: Revisit for a more sophisticated approach
...data.store,
supported_currency_codes: ["usd"],
default_currency_code: "usd",
},
],
},
})
shouldDelete = true
}
return new StepResponse(store, { storeId: store.id, shouldDelete })
},
async (data, { container }) => {
if (!data || !data.shouldDelete) {
return
}
const service = container.resolve<IStoreModuleService>(
ModuleRegistrationName.STORE
)
await service.delete(data.storeId)
}
)

View File

@@ -0,0 +1 @@
export * from "./create-default-store"