Skip to content
3 changes: 2 additions & 1 deletion TypeExtensionManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import utils from './utils'
import CONSTANTS from './constants'
import { runConfig } from './utility/customerUtility';

let {initModules, writeUserData, getBasicKey, processCustomer} = utils
let {initModules, writeUserData, getBasicKey, processCustomer, processPlatformModule} = utils
let {CMD_ARGUMENTS:{DOC_ARG, TYPE_ARG, HELP_ARG}, STARTUP_LOG, MESSAGES:{HELP:{HELP_TEXT}}} = CONSTANTS

const main = async () => {
Expand All @@ -34,6 +34,7 @@ const main = async () => {
runConfig(essentials, configType, rulesetType)
}
await processCustomer(essentials)
await processPlatformModule(essentials)
process.exit()
})
}
Expand Down
68 changes: 59 additions & 9 deletions constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,16 @@ const fields = {
AUTHORIZATION: `Authorization`,
OBJECT_FIELDS: `OBJECT_FIELDS`,
EVENT: `Event`,
MODULE_NAME: `moduleName`,
IS_SAMPLE_REQUIRED: `isSampleRequired`,
MODULE_PATH: `modulePath`,
ADD_PLATFORM_FILE: `addPlatformFile`,
FILE: `file`,
RANK: `rank`,
PLATFORM_FILE: `platformFile`,
IS_CONFIG: `isConfig`,
PMM_SAFE_FILE_REQUIRED: `pmmSafeFileRequired`,
PLATFORM_EVENT: `platformEvent`,
HTTP_HEADER:{
headers:{
Authorization: ``,
Expand Down Expand Up @@ -65,6 +72,33 @@ const CMD_ARGUMENTS = {
HELP_ARG: `--h`
}

const PLATFORM = {
FOLDERS:{
$TYPE_EXTENSION_D1: `$TypeExtensionD1`,
CUSTOM_OBJECT_MODULE: `CustomObjectModule`,
PLATFORM_LOCALIZATION: `PlatformLocalization`,
TYPE_EXTENSION_SCRIPT: `typeExtensionScript`
},
FILES:{
METADATA_PROPERTIES: `metadata`,
DEFAULT_RANK: 10,
RANK: 10,
PLATFORM_MODULE: `PlatformModule`,
FILE_NAME: ``,
set SET_RANK (rank) {
this.RANK = `${rank}`
},
get GET_RANK () {
return this.RANK
},
set SET_FILE_NAME (name) {
this.FILE_NAME = `${name}__Rank-${this.GET_RANK}`
},
get GET_FILE_NAME () {
return this.FILE_NAME
}
}
}

const GENERAL = {
ENCODING_UTF8: `utf8`,
Expand All @@ -74,13 +108,15 @@ const GENERAL = {
JIRA_BUG_HEADER: `GTBUG-`,
JIRA_DEFAULT_TEXT: `CHANGEME`,
DATE_FORMAT: `MM/DD/YYYY`,
FULL_DATE_FORMAT: `YYYY-MM-DD HH:mm:ss.SSS`,
WHO: `¯\\_(ツ)_/¯`,
DESCRIPTION: `UPDATE THE DESCRIPTION`,
DESCRIPTION: `New`,
AFFIRM: [`YES`, `Y`],
NEGATIVE: [`NO`, `N`],
GET: `get`,
POST: `post`,
SEED: `seed`
SEED: `seed`,
BUNDLE: `Bundle`
}

const GENERAL_GTNEXUS_OBJECTS = {
Expand All @@ -100,7 +136,8 @@ const GTNEXUS = {
OQL: `oql`,
QUERY: `query`,
VERSION:{
LATEST: `3.1`
LATEST: `3.1`,
FULL_VERSION: `310`
},
},
get SUPQ_URL() {
Expand All @@ -117,9 +154,12 @@ const FILES = {
JS: `.js`,
SPEC: `.spec.js`,
_JSON: `.json`,
INI: `.ini`
INI: `.ini`,
XML: `.xml`,
PROPERTIES: `.properties`
},
RESOURCES: `resources`,
TYPE_EXTENSION_MODULE: `TypeExtensionModule`

}

Expand Down Expand Up @@ -270,17 +310,25 @@ const EVENTS = {
VALIDATIONS: `Validations`,
VLD: `Vld`,
VLDS: `Vlds`,
WARNING: `Warning`,
WARNINGS: `Warnings`,
WRN: `Wrn`,
WRNS: `Wrns`,
POPULATE: `Populate`,
VALIDATE: `Validate`
VALIDATE: `Validate`,
WARN: `Warn`
}

const RULE_SET = {
RULE_SET: `RuleSet`,
RULE_SET: `TypeExtension`,
get POP_RULE_SET() {
return EVENTS.POPULATIONS + this.RULE_SET
},
get VLD_RULE_SET() {
return EVENTS.VALIDATIONS + this.RULE_SET
},
get WRN_RULE_SET() {
return EVENTS.WARNINGS + this.RULE_SET
}
}

Expand All @@ -299,7 +347,7 @@ const OPTIONS = {
const QUESTIONS = {
QUESTION_CUSTOMER_NAME: `Enter Customer Name: `,
QUESTION_DOCUMENT_TYPE: `Document Type - \n1.${DOCTYPES.PO.SHORT_FORM}\n2.${DOCTYPES.INV.SHORT_FORM}\n3.${DOCTYPES.PP.SHORT_FORM}\n4.${DOCTYPES.PL.SHORT_FORM}\n5.Custom Document Name\nOPTION: `,
QUESTION_RULESET_TYPE: `Type of ruleset:\n1.${EVENTS.POPULATION}\n2.${EVENTS.VALIDATION}\nOPTION: `,
QUESTION_RULESET_TYPE: `Type of ruleset:\n1.${EVENTS.POPULATION}\n2.${EVENTS.VALIDATION}\n3.${EVENTS.WARNING}\nOPTION: `,
QUESTION_JIRA_NUMBER: `Add your JIRA#: `,
QUESTION_SAMPLE_DATA_REQUEST: `Would you like me to fetch some sample data for you?[Y|N]: `,
QUESTION_SAMPLE_DATA: `Provide your SampleRef#: `,
Expand All @@ -324,7 +372,8 @@ const MESSAGES = {
NOT_MUCH_INFO: `I do not have much info to create your file`,
DATA_ALREADY_PRESENT: `Looks like you already have some code in there`,
DID_NOT_FETCH_DATA: `Okay! I did not setup any sample data for you`,
PICKED_ENV: `Okay so you picked `
PICKED_ENV: `Okay so you picked `,
DOCUMENT_NOT_EXISTING: `Looks like the document isn't existing`
},
HELP:{
HELP_TEXT: `HELP INFO:\n|-> npm start --- Runs the tool\n|-> npm start doc <DOCUMENT_TYPE> type <RULESET_TYPE>\n\t|-> doc: Specifies your are providing a document type as your next argument\n\t|-> type: Specifies you are providing a ruleset type as your next argument\n|-> MORE INFO: https://wiki.gtnexus.info/display/PSO/Type+Extension+Manager`
Expand Down Expand Up @@ -370,5 +419,6 @@ export default{
OPTIONS,
fields,
CMD_ARGUMENTS,
STARTUP_LOG
STARTUP_LOG,
PLATFORM
}
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"test": "exit 0",
"start": "babel-node TypeExtensionManager.js --presets es2015,stage-2"
},
"dependencies": {
Expand All @@ -15,7 +15,8 @@
"node-cmd": "^3.0.0",
"shelljs": "^0.8.3",
"slash": "^3.0.0",
"upath": "^1.2.0"
"upath": "^1.2.0",
"xml-js": "^1.6.11"
},
"devDependencies": {
"babel-cli": "^6.26.0",
Expand Down
4 changes: 2 additions & 2 deletions utility/customerUtility/documentType.js
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@ let settingDocumentType = (documentType, essentials) => {

case PL.SHORT_FORM.toLowerCase():
case PL.FULL_FORM.toLowerCase():
case PL.PACKING_PLAN.toLowerCase():
case PL.PACKING_PLAN_MANIFEST.toLowerCase():
case PL.PACKING_MANIFEST.toLowerCase():
case PL.PACKING_LIST.toLowerCase():
case FOUR:
docType = PL.FULL_FORM
shortForm = PL.SHORT_FORM
Expand Down
66 changes: 57 additions & 9 deletions utility/customerUtility/fetchDocument.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import needle from 'needle';
import CONSTANTS from '../../constants';
import moment from "moment";
import {setupSampleData} from "./index";
const {
fields: {
CUSTOMER,
Expand All @@ -8,6 +10,9 @@ const {
ENVIRONMENT,
QUERY_URL,
FETCH_URL,
UID: OBJECT_UID,
DOCUMENT_TYPE,
SAMPLE_REF_NUMBER,
},
GENERAL: {
GET,
Expand All @@ -21,22 +26,65 @@ const {
META_DATA,
UID
},
MESSAGES:{
INFO:{
DOCUMENT_NOT_EXISTING
}
},
rl
} = CONSTANTS

export default (queriedObject, essential, options, poNumber) => {
if (!poNumber) {
return new Promise((resolve, reject) => {
if (essential[CUSTOMER][QUERY_URL] && essential[CUSTOMER][FETCH_URL] && queriedObject) {
if (queriedObject && queriedObject[RESULT] && queriedObject[RESULT].length > 0) {
let objectUid = queriedObject[RESULT][0][DOCTYPES[`${essential[CUSTOMER][DOC_SHORT_FORM]}`][OBJECT_FIELDS][Object.keys(DOCTYPES[`${essential[CUSTOMER][DOC_SHORT_FORM]}`][OBJECT_FIELDS])]]
needle(GET, `${essential[CUSTOMER][FETCH_URL]}${objectUid}`, options)
.then((result) => {
let fetchedObject = result.body
resolve(fetchedObject)
})
.catch((err) => {
reject(err)
})
try{
//item => `${item[`${DOCTYPES[essential[CUSTOMER][DOC_SHORT_FORM]][OBJECT_UID]}`]} BUYER:${item['party']['Buyer'][0]['name']}\t\t\t\tCREATED_TIMESTAMP: ${moment(item['__metadata']['createTimestamp']).format("MM-DD-YYYY")}`
let objectUidsList = [...new Set(queriedObject[RESULT].map((item) => {
return {
UID: `${item[`${DOCTYPES[essential[CUSTOMER][DOC_SHORT_FORM]][OBJECT_UID]}`]}`,
BUYER: `${item['party']['Buyer'][0]['name']}`,
CREATED_TIMESTAMP: `${moment(item['__metadata']['createTimestamp']).format("MM-DD-YYYY")}`
}
}))]
let objectUid = null
if(objectUidsList.length > 1){
let i = 0;
console.log(`-----------------------------------------------------------------------------------------------------------`)
console.log(`|S#| |CREATED_ON| \t\t\t\t|OBJECT_UID| \t\t\t\t\t|BUYER_ORG|`)
console.log(`-----------------------------------------------------------------------------------------------------------`)
for(i; i < objectUidsList.length; i++){
console.log(`[${i+1}] ${objectUidsList[i].CREATED_TIMESTAMP} \t\t\t\t${objectUidsList[i].UID} \t\t\t\t\t${objectUidsList[i].BUYER}`)
}
rl.question(`Looks like there are too many ${essential[CUSTOMER][DOCUMENT_TYPE]}'s with the same ${DOCTYPES[essential[CUSTOMER][DOC_SHORT_FORM]].SHORT_FORM}:#${essential[CUSTOMER][SAMPLE_REF_NUMBER]}. Please choose a UID:\n`, (uidOption) => {
objectUid = objectUidsList[uidOption-1]
needle(GET, `${essential[CUSTOMER][FETCH_URL]}${objectUid}`, options)
.then((result) => {
let fetchedObject = result.body
resolve(fetchedObject)
})
.catch((err) => {
reject(err)
})
})
}else{
objectUid = queriedObject[RESULT][0][DOCTYPES[`${essential[CUSTOMER][DOC_SHORT_FORM]}`][OBJECT_FIELDS][Object.keys(DOCTYPES[`${essential[CUSTOMER][DOC_SHORT_FORM]}`][OBJECT_FIELDS])]]
needle(GET, `${essential[CUSTOMER][FETCH_URL]}${objectUid}`, options)
.then((result) => {
let fetchedObject = result.body
resolve(fetchedObject)
})
.catch((err) => {
reject(err)
})
}
}catch (e) {

}
}else{
console.log(`\n***INFO: ${DOCUMENT_NOT_EXISTING} ${essential[CUSTOMER][DOCUMENT_TYPE]}#:${essential[CUSTOMER][SAMPLE_REF_NUMBER]}***\n`)
setupSampleData(essential).then(()=> resolve())
}
}
})
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import CONSTANTS from '../../constants'
import cmd from 'node-cmd'
import {createFile, createFolder, writeToFile} from '../fileUtility'
import {createFile, createFolder, writeJSONToFile} from '../fileUtility'
const {
rl,
QUESTIONS:{QUESTION_RULESET_TYPE},
Expand Down
4 changes: 2 additions & 2 deletions utility/customerUtility/queryDocument.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import needle from 'needle'
import fs from 'fs'
import cliProgress from 'cli-progress'
import CONSTANTS from '../../constants'
import {createFile, createFolder, writeToFile} from '../fileUtility'
import {createFile, createFolder, writeJSONToFile} from '../fileUtility'
import {fetchDocument} from './'

const {
Expand All @@ -28,7 +28,7 @@ export default (essential, options, poNumber) => {
needle(GET, essential[CUSTOMER][QUERY_URL], options)
.then((result) => {
let quriedObject = result.body
resolve(quriedObject)
resolve(quriedObject)
})
.catch((err) =>{
reject(err)
Expand Down
Loading