diff options
author | Brandon Millman <brandon.millman@gmail.com> | 2018-02-28 03:51:05 +0800 |
---|---|---|
committer | Brandon Millman <brandon.millman@gmail.com> | 2018-02-28 03:51:05 +0800 |
commit | 9c8501a84e92faf3ef015ae8ab4d1da9354f9a9d (patch) | |
tree | 8ad8e3af292e7af68cab2f20e852dee6982682c0 /packages/sra-report/src/postman_environment_factory.ts | |
parent | bb157eefc622148d7ab3f49b3b94df274deccedb (diff) | |
download | dexon-sol-tools-9c8501a84e92faf3ef015ae8ab4d1da9354f9a9d.tar dexon-sol-tools-9c8501a84e92faf3ef015ae8ab4d1da9354f9a9d.tar.gz dexon-sol-tools-9c8501a84e92faf3ef015ae8ab4d1da9354f9a9d.tar.bz2 dexon-sol-tools-9c8501a84e92faf3ef015ae8ab4d1da9354f9a9d.tar.lz dexon-sol-tools-9c8501a84e92faf3ef015ae8ab4d1da9354f9a9d.tar.xz dexon-sol-tools-9c8501a84e92faf3ef015ae8ab4d1da9354f9a9d.tar.zst dexon-sol-tools-9c8501a84e92faf3ef015ae8ab4d1da9354f9a9d.zip |
Refactor environment factory and promisify newman
Diffstat (limited to 'packages/sra-report/src/postman_environment_factory.ts')
-rw-r--r-- | packages/sra-report/src/postman_environment_factory.ts | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/packages/sra-report/src/postman_environment_factory.ts b/packages/sra-report/src/postman_environment_factory.ts new file mode 100644 index 000000000..697578a2d --- /dev/null +++ b/packages/sra-report/src/postman_environment_factory.ts @@ -0,0 +1,71 @@ +import { Schema, schemas as schemasByName } from '@0xproject/json-schemas'; +import * as _ from 'lodash'; + +import * as kovanTokensEnvironmentJSON from '../postman_configs/environments/kovan_tokens.postman_environment.json'; +import * as mainnetTokensEnvironmentJSON from '../postman_configs/environments/mainnet_tokens.postman_environment.json'; + +interface EnvironmentValue { + key: string; + value: string; + enabled: boolean; + type: string; +} + +export const postmanEnvironmentFactory = { + createGlobalEnvironment(url: string) { + const urlEnvironmentValue = { + key: 'url', + value: url, + enabled: true, + type: 'text', + }; + const schemas: Schema[] = _.values(schemasByName); + const schemaEnvironmentValues = _.compact( + _.map(schemas, (schema: Schema) => { + if (_.isUndefined(schema.id)) { + return undefined; + } else { + return { + key: convertSchemaIdToKey(schema.id), + value: JSON.stringify(schema), + enabled: true, + type: 'text', + }; + } + }), + ); + const schemaKeys = _.map(schemaEnvironmentValues, (environmentValue: EnvironmentValue) => { + return environmentValue.key; + }); + const schemaKeysEnvironmentValue = { + key: 'schemaKeys', + value: JSON.stringify(schemaKeys), + enabled: true, + type: 'text', + }; + const environmentValues = _.concat(schemaEnvironmentValues, urlEnvironmentValue, schemaKeysEnvironmentValue); + const environment = { + values: environmentValues, + }; + return environment; + }, + createNetworkEnvironment(networkId: number) { + switch (networkId) { + case 1: + return mainnetTokensEnvironmentJSON; + case 42: + return kovanTokensEnvironmentJSON; + default: + return {}; + } + }, +}; + +function convertSchemaIdToKey(schemaId: string) { + let result = schemaId; + if (_.startsWith(result, '/')) { + result = result.substr(1); + } + result = `${result}Schema`; + return result; +} |