-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
122 lines (104 loc) · 2.96 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#!/usr/bin/env node
const program = require('commander');
const { prompt } = require('inquirer');
const assert = require('assert');
const mongoose = require('mongoose'); // An Object-Document Mapper for Node.js
console.log(process.env.MONGODB_URL);
const db = mongoose.connect(process.env.MONGODB_URL, {
useMongoClient: true,
autoIndex: false, // Don't build indexes
autoReconnect: true,
reconnectTries: Number.MAX_VALUE, // Never stop trying to reconnect
poolSize: 10, // Maintain up to 10 socket connections
// If not connected, return errors immediately rather than waiting for reconnect
bufferMaxEntries: 0
},
function(err) {
if(err) console.log('MongoDB: connection error -> ' + err);
});
mongoose.Promise = global.Promise;
// Convert value to to lowercase
function toLower(v) {
return v.toLowerCase();
}
var code_details = mongoose.Schema({
code: { type: String, set: toLower },
code_desc: { type: String, set: toLower },
});
var category_details = mongoose.Schema({
categoryDesc : { type: String, set: toLower },
categoryCode : { type: String, set: toLower },
});
// Define a contact Schema
const codesSchema = mongoose.Schema({
is_category: { type: Boolean},
code_details : code_details,
category_details: category_details,
modified_date: { type: Date},
created_date: { type: Date},
created_by: { type: String},
updated_by: { type: String},
query: { type: String},
});
// Define model as an interface with the database
const Codes = mongoose.model('codes', codesSchema);
const addCodes = (codes) => {
console.log("here");
Codes.create(codes, (err) => {
assert.equal(null, err);
console.info('New codes added');
mongoose.connection.close();
});
};
const questionsCodes = [
{
type : 'input',
name : 'code_details.code_desc',
message : 'Enter Code Desc ..'
},
{
type : 'input',
name : 'code_details.code',
message : 'Enter Code ..'
}
];
program
.version('0.0.1')
.description('Block5d App CLI');
program
.command('addCodes')
.alias('ac')
.description('Add a Codes')
.action(() => {
prompt(questionsCodes).then((answers) =>
addCodes(answers));
});
program
.command('getCodes <name>')
.alias('rc')
.description('Get Codes')
.action(value => getCodes(value));
program
.command('updateCodes <_id>')
.alias('uc')
.description('Update Codes')
.action(_id => {
prompt(questionsCodes).then((answers) =>
updateCodes(_id, answers));
});
program
.command('deleteCodes <_id>')
.alias('dc')
.description('Delete codes')
.action(_id => deleteCodes(_id));
program
.command('getCodesList')
.alias('lc')
.description('List codes')
.action(() => getCodesList());
// Assert that a VALID command is provided
if (!process.argv.slice(2).length || !/[arudl]/.test(process.argv.slice(2))) {
program.outputHelp();
process.exit();
}
program.parse(process.argv)