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,2 @@
export * from "./steps"
export * from "./workflows"

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"

View File

@@ -0,0 +1,23 @@
import { createWorkflow } from "@medusajs/workflows-sdk"
import { createDefaultSalesChannelStep } from "../../sales-channel"
import { createDefaultStoreStep } from "../steps/create-default-store"
export const createDefaultsWorkflowID = "create-defaults"
export const createDefaultsWorkflow = createWorkflow(
createDefaultsWorkflowID,
(input) => {
const salesChannel = createDefaultSalesChannelStep({
data: {
name: "Default Sales Channel",
description: "Created by Medusa",
},
})
const store = createDefaultStoreStep({
store: {
default_sales_channel_id: salesChannel.id,
},
})
return store
}
)

View File

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