-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathld_test.js
executable file
·123 lines (90 loc) · 3.45 KB
/
ld_test.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
123
//import launch darkly and initialise ldclient
var LaunchDarkly = require('ldclient-node');
var http = require('http');
var log = function(n,e) { console.log(n + '->' + e); }
var config = {logger : {
error: log,
info : log,
warn : log,
verbose : log,
debug : log,
silly : log
},
stream : true
};
var client = LaunchDarkly.init("sdk-1565df04-39b9-4e01-a3c8-45a8f8460d24",config);
var user = {
"firstName": "Bob",
"lastName": "Loblaw",
"key": "[email protected]",
"custom": {
"groups": "beta_testers"
}
};
console.log(new Date().getTime() + " Waiting for LD client...");
client.once('ready', function() {
console.log("LD client is ready.");
client.variation("save-button", user, false, function(err, showFeature) {
console.log(err);
if (showFeature) {
// application code to show the feature
console.log("Showing your feature to " + user.key );
} else {
// the code to run if the feature is off
console.log("Not showing your feature to " + user.key);
}
// client.flush(function() {
// client.close();
// });
});
});
//client.emit('ready');
function isFeatureEnabled(version){
if(version == 'v0'){
return { create : false, save : false, delete : false };
}
if(version == 'v1'){
return { create : true, save : false, delete : false };
}
if(version == 'v2'){
return { create : true, save : true, delete : false };
}
if(version == 'v3'){
return { create : true, save : true, delete : true };
}
throw 'Version not supported';
}
http.createServer(function(request, response){
//console.log(new Date().getTime() + " Waiting for LD client...");
//console.log(new Date().getTime() + " LD client ready..");
response.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
//var version = bufferFile("/version.txt");
//var features = JSON.parse(bufferFile("/features.json"));
//if(features.is_version_toggle == true)
//{
// features = isFeatureEnabled(version);
//}
//ldFeature('name');
var html = '<!DOCTYPE html><html><head><meta http-equiv="refresh" content="1500">' + components + '<title>Feature Toggles</title></head><body>';
html += '<div class="container-fluid"><h1>Welcome to toggle app ' + version +'.0</h1><div class="form-group col-md-4">';
//console.log(new Date().getTime() + ' ' + version + ': ' + JSON.stringify(features));
html += '<div class="alert alert-' + features.mode + '" role="alert">Messages will appear here !</div>';
html += '<div class="list-group"><button type="button" class="list-group-item">Cras justo odio</button><button type="button" class="list-group-item">Dapibus ac facilisis in</button><button type="button" class="list-group-item">Morbi leo risus</button><button type="button" class="list-group-item">Porta ac consectetur ac</button><button type="button" class="list-group-item">Vestibulum at eros</button></div>';
html += '<div class="btn-group">'
html += '<button class="btn btn-primary">Edit</button>';
if(features.create == true)
{
html += '<button class="btn btn-success">Create</button>';
}
if(features.save == true){
html += '<button class="btn btn-warning">Save</button>';
}
if(features.delete == true){
html += '<button class="btn btn-danger">Delete</button>';
}
html += '</div>'
html += '</div></div></body></html>';
response.end(html, 'utf-8');
//console.log("EOF");
}).listen(1337,'0.0.0.0');
console.log('Server running!');