feat: Init. v2 implementation in admin (#6715)
This commit is contained in:
2
packages/core-flows/src/defaults/index.ts
Normal file
2
packages/core-flows/src/defaults/index.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
export * from "./steps"
|
||||
export * from "./workflows"
|
||||
@@ -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)
|
||||
}
|
||||
)
|
||||
1
packages/core-flows/src/defaults/steps/index.ts
Normal file
1
packages/core-flows/src/defaults/steps/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export * from "./create-default-store"
|
||||
@@ -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
|
||||
}
|
||||
)
|
||||
1
packages/core-flows/src/defaults/workflows/index.ts
Normal file
1
packages/core-flows/src/defaults/workflows/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export * from "./create-defaults"
|
||||
Reference in New Issue
Block a user