Skip to content

Commit 0e720c8

Browse files
committed
feat(api): toggleFeatureFlag method
1 parent cd5e32a commit 0e720c8

File tree

4 files changed

+38
-1
lines changed

4 files changed

+38
-1
lines changed

index.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,31 @@ log.info(`command line args: ${args}`);
4545
result = await ldUtils.getFeatureFlag(projectKey, featureFlagKey, environmentKeyQuery);
4646
break;
4747

48+
case 'toggleFeatureFlag':
49+
projectKey = args[1];
50+
featureFlagKey = args[2];
51+
environmentKeyQuery = args[3];
52+
if (!projectKey || projectKey.trim() === '') {
53+
result = 'please supply a projectKey as second parameter'
54+
break;
55+
}
56+
if (!featureFlagKey || featureFlagKey.trim() === '') {
57+
result = 'please supply a featureFlagKey as third parameter'
58+
break;
59+
}
60+
if (!environmentKeyQuery || environmentKeyQuery.trim() === '') {
61+
result = 'please supply a environmentKeyQuery as fourth parameter'
62+
break;
63+
}
64+
let enabled = args[4];
65+
if (enabled === undefined || !['true', 'false'].includes(enabled)) {
66+
result = 'please supply either \'true\' or \'false\' as fifth parameter';
67+
break;
68+
}
69+
enabled = enabled === 'true';
70+
result = await ldUtils.toggleFeatureFlag(projectKey, featureFlagKey, environmentKeyQuery, enabled);
71+
break;
72+
4873
default:
4974
result = 'please supply a mode parameter: getFeatureFlags, getFeatureFlag';
5075

src/LaunchDarklyApiClient.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ export class LaunchDarklyApiClient {
2020
// hack - fix incorrect qs mapping..
2121
req.url = req.url.replace('environmentKeyQuery', 'env');
2222

23+
log.debug(req);
24+
2325
return req;
2426
}
2527
});

src/LaunchDarklyLogger.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import { default as bunyan } from 'bunyan';
22
import { default as bformat } from 'bunyan-format';
33

4+
let level = process.env.LAUNCHDARKLY_API_LOGLEVEL || 'info';
5+
46
let LOG = bunyan.createLogger({
7+
level: level,
58
name: 'ldu',
69
streams: [
710
{

src/LaunchDarklyUtils.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@ export class LaunchDarklyUtils {
2020
featureFlagKey: featureFlagKey,
2121
environmentKeyQuery: environmentKeyQuery
2222
});
23-
// todo environmentKeyQuery is not transformed correctly to 'env` querystring
23+
}
24+
25+
async toggleFeatureFlag(projectKey, featureFlagKey, environmentKeyQuery, value) {
26+
return this.apiClient.apis.flags.patchFeatureFlag({
27+
projectKey: projectKey,
28+
featureFlagKey: featureFlagKey,
29+
patchDelta: [{ op: 'replace', path: `/environments/${environmentKeyQuery}/on`, value: value }]
30+
});
2431
}
2532
}

0 commit comments

Comments
 (0)