Browse Source

chore(server): Default to a subset of countries when populating db

Michael Bromley 7 years ago
parent
commit
330c8fa67b
2 changed files with 11 additions and 3 deletions
  1. 9 2
      server/mock-data/mock-data.service.ts
  2. 2 1
      server/mock-data/populate.ts

+ 9 - 2
server/mock-data/mock-data.service.ts

@@ -83,12 +83,19 @@ export class MockDataService {
         return channels;
     }
 
-    async populateCountries(): Promise<Zone.Fragment[]> {
+    async populateCountries(all = false): Promise<Zone.Fragment[]> {
         const countriesFile = await fs.readFile(
             path.join(__dirname, 'data-sources', 'countries.json'),
             'utf8',
         );
-        const countries: any[] = JSON.parse(countriesFile);
+        const limitedCountries = ['GB', 'DE', 'FR', 'AT', 'US', 'CN', 'JP', 'AU', 'ZA'];
+        const countries: any[] = JSON.parse(countriesFile).filter(c => {
+            if (all) {
+                return true;
+            } else {
+                return limitedCountries.includes(c['alpha-2']);
+            }
+        });
         const zones: { [zoneName: string]: string[] } = {};
         for (const country of countries) {
             const result = await this.client.query<CreateCountry.Mutation, CreateCountry.Variables>(

+ 2 - 1
server/mock-data/populate.ts

@@ -14,6 +14,7 @@ export interface PopulateOptions {
     logging?: boolean;
     productCount: number;
     customerCount: number;
+    allCountries?: boolean;
     channels?: string[];
 }
 
@@ -42,7 +43,7 @@ export async function populate(
     if (options.channels) {
         await mockDataService.populateChannels(options.channels);
     }
-    const zones = await mockDataService.populateCountries();
+    const zones = await mockDataService.populateCountries(options.allCountries);
     await mockDataService.setChannelDefaultZones(zones);
     await mockDataService.populateShippingMethods();
     const assets = await mockDataService.populateAssets();