From a7951ca29cad9916628c5c74152838212c257032 Mon Sep 17 00:00:00 2001 From: Sebastian Rindom Date: Mon, 29 Jun 2020 10:47:56 +0200 Subject: [PATCH] Create default store --- packages/medusa/src/loaders/index.js | 4 ++++ packages/medusa/src/loaders/store.js | 7 +++++++ packages/medusa/src/services/store.js | 13 +++++++++++++ 3 files changed, 24 insertions(+) create mode 100644 packages/medusa/src/loaders/store.js diff --git a/packages/medusa/src/loaders/index.js b/packages/medusa/src/loaders/index.js index d8e6e894b3..419bf74ba2 100644 --- a/packages/medusa/src/loaders/index.js +++ b/packages/medusa/src/loaders/index.js @@ -6,6 +6,7 @@ import modelsLoader from "./models" import servicesLoader from "./services" import passportLoader from "./passport" import pluginsLoader from "./plugins" +import storeLoader from "./store" import Logger from "./logger" export default async ({ directory: rootDirectory, expressApp }) => { @@ -57,6 +58,9 @@ export default async ({ directory: rootDirectory, expressApp }) => { await apiLoader({ container, rootDirectory, app: expressApp }) Logger.info("API initialized") + await storeLoader({ container }) + Logger.info("Store initialized") + return { container, dbConnection, app: expressApp } } diff --git a/packages/medusa/src/loaders/store.js b/packages/medusa/src/loaders/store.js new file mode 100644 index 0000000000..86a4993905 --- /dev/null +++ b/packages/medusa/src/loaders/store.js @@ -0,0 +1,7 @@ +/** + * Registers all services in the services directory + */ +export default ({ container }) => { + const storeService = container.resolve("storeService") + return storeService.create() +} diff --git a/packages/medusa/src/services/store.js b/packages/medusa/src/services/store.js index a43457bb0c..d8b5b00b1c 100644 --- a/packages/medusa/src/services/store.js +++ b/packages/medusa/src/services/store.js @@ -39,6 +39,19 @@ class StoreService extends BaseService { return value } + /** + * Creates a store if it doesn't already exist. + * @return {Promise} the store. + */ + async create() { + const store = await this.retrieve() + if (!store) { + return this.storeModel_.create({}) + } + + return store + } + /** * Retrieve the store settings. There is always a maximum of one store. * @return {Promise} the customer document.