Skip to content

Commit fd702e9

Browse files
authored
Merge pull request #354 from getsentry/feat/simple-flag
Add flow to create simple boolean flag
2 parents f94e01b + 19d9940 commit fd702e9

File tree

10 files changed

+337
-151
lines changed

10 files changed

+337
-151
lines changed

browser/flagr-ui/src/components/Flags.vue

Lines changed: 76 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,26 @@
1111
<div v-if="loaded">
1212
<el-row>
1313
<el-col>
14-
<el-input
15-
placeholder="Specific new flag description"
16-
v-model="newFlag.description">
14+
<el-input placeholder="Specific new flag description" v-model="newFlag.description">
1715
<template slot="prepend">
18-
<span class="el-icon-plus"/>
16+
<span class="el-icon-plus" />
1917
</template>
2018
<template slot="append">
21-
<el-button
19+
<el-dropdown
20+
split-button
2221
type="primary"
2322
:disabled="!newFlag.description"
24-
@click.prevent="createFlag">
23+
@command="onCommandDropdown"
24+
@click.prevent="createFlag"
25+
>
2526
Create New Flag
26-
</el-button>
27+
<el-dropdown-menu slot="dropdown">
28+
<el-dropdown-item
29+
command="simple_boolean_flag"
30+
:disabled="!newFlag.description"
31+
>Create Simple Boolean Flag</el-dropdown-item>
32+
</el-dropdown-menu>
33+
</el-dropdown>
2734
</template>
2835
</el-input>
2936
</el-col>
@@ -34,54 +41,41 @@
3441
placeholder="Search a flag"
3542
prefix-icon="el-icon-search"
3643
v-model="searchTerm"
37-
v-focus>
38-
</el-input>
44+
v-focus
45+
></el-input>
3946
</el-row>
4047

4148
<el-table
4249
:data="filteredFlags"
4350
:stripe="true"
4451
:highlight-current-row="false"
45-
:default-sort="{prop: 'id', order: 'descending'}"
52+
:default-sort="{ prop: 'id', order: 'descending' }"
4653
v-on:row-click="goToFlag"
47-
style="width: 100%">
48-
<el-table-column
49-
prop="id"
50-
align="center"
51-
label="Flag ID"
52-
sortable
53-
fixed
54-
width="100">
55-
</el-table-column>
56-
<el-table-column
57-
prop="description"
58-
label="Description"
59-
min-width="380">
60-
</el-table-column>
61-
<el-table-column
62-
prop="updatedBy"
63-
label="Last Updated By"
64-
sortable
65-
width="200">
66-
</el-table-column>
54+
style="width: 100%"
55+
>
56+
<el-table-column prop="id" align="center" label="Flag ID" sortable fixed width="100"></el-table-column>
57+
<el-table-column prop="description" label="Description" min-width="380"></el-table-column>
58+
<el-table-column prop="updatedBy" label="Last Updated By" sortable width="200"></el-table-column>
6759
<el-table-column
6860
prop="updatedAt"
6961
label="Updated At (UTC)"
7062
:formatter="datetimeFormatter"
7163
sortable
72-
width="200">
73-
</el-table-column>
64+
width="200"
65+
></el-table-column>
7466
<el-table-column
7567
prop="enabled"
7668
label="Enabled"
7769
sortable
7870
align="center"
7971
fixed="right"
80-
width="100">
72+
width="100"
73+
>
8174
<template slot-scope="scope">
8275
<el-tag
8376
:type="scope.row.enabled ? 'primary' : 'danger'"
84-
disable-transitions>{{scope.row.enabled ? 'on' : 'off'}}</el-tag>
77+
disable-transitions
78+
>{{ scope.row.enabled ? "on" : "off" }}</el-tag>
8579
</template>
8680
</el-table-column>
8781
</el-table>
@@ -92,94 +86,96 @@
9286
</template>
9387

9488
<script>
95-
import Axios from 'axios'
89+
import Axios from "axios";
9690
97-
import constants from '@/constants'
98-
import Spinner from '@/components/Spinner'
99-
import helpers from '@/helpers/helpers'
91+
import constants from "@/constants";
92+
import Spinner from "@/components/Spinner";
93+
import helpers from "@/helpers/helpers";
10094
101-
const {
102-
handleErr
103-
} = helpers
95+
const { handleErr } = helpers;
10496
105-
const {
106-
API_URL
107-
} = constants
97+
const { API_URL } = constants;
10898
10999
export default {
110-
name: 'flags',
100+
name: "flags",
111101
components: {
112102
spinner: Spinner
113103
},
114-
data () {
104+
data() {
115105
return {
116106
loaded: false,
117107
flags: [],
118-
searchTerm: '',
108+
searchTerm: "",
119109
newFlag: {
120-
description: ''
110+
description: ""
121111
}
122-
}
112+
};
123113
},
124-
created () {
125-
Axios.get(`${API_URL}/flags`)
126-
.then(response => {
127-
let flags = response.data
128-
this.loaded = true
129-
flags.reverse()
130-
this.flags = flags
131-
}, handleErr.bind(this))
114+
created() {
115+
Axios.get(`${API_URL}/flags`).then(response => {
116+
let flags = response.data;
117+
this.loaded = true;
118+
flags.reverse();
119+
this.flags = flags;
120+
}, handleErr.bind(this));
132121
},
133122
computed: {
134123
filteredFlags: function() {
135124
if (this.searchTerm) {
136125
return this.flags.filter(
137-
({ id, description}) =>
126+
({ id, description }) =>
138127
id.toString().includes(this.searchTerm) ||
139128
description.toLowerCase().includes(this.searchTerm.toLowerCase())
140-
)
129+
);
141130
}
142-
return this.flags
131+
return this.flags;
143132
}
144133
},
145134
methods: {
146-
flagEnabledFormatter (row, col, val) {
147-
return val ? 'on' : 'off'
135+
flagEnabledFormatter(row, col, val) {
136+
return val ? "on" : "off";
148137
},
149-
datetimeFormatter (row, col, val) {
150-
return val.split('.')[0]
138+
datetimeFormatter(row, col, val) {
139+
return val.split(".")[0];
151140
},
152-
goToFlag (row) {
153-
this.$router.push({name: 'flag', params: {flagId: row.id}})
141+
goToFlag(row) {
142+
this.$router.push({ name: "flag", params: { flagId: row.id } });
154143
},
155-
createFlag () {
144+
onCommandDropdown(command) {
145+
if (command === "simple_boolean_flag") {
146+
this.createFlag({ template: command });
147+
}
148+
},
149+
createFlag(params) {
156150
if (!this.newFlag.description) {
157-
return
151+
return;
158152
}
153+
Axios.post(`${API_URL}/flags`, {
154+
...this.newFlag,
155+
...(params || {})
156+
}).then(response => {
157+
let flag = response.data;
158+
this.newFlag.description = "";
159+
this.$message.success("flag created");
159160
160-
Axios.post(`${API_URL}/flags`, this.newFlag)
161-
.then(response => {
162-
let flag = response.data
163-
this.newFlag.description = ''
164-
this.$message.success('flag created')
165-
166-
flag._new = true
167-
this.flags.unshift(flag)
168-
}, handleErr.bind(this))
161+
flag._new = true;
162+
this.flags.unshift(flag);
163+
}, handleErr.bind(this));
169164
}
170165
}
171-
}
166+
};
172167
</script>
173168

174169
<style lang="less">
175-
176170
.flags-container {
177171
.el-table {
178172
margin-top: 2em;
179173
}
180174
.el-table__row {
181175
cursor: pointer;
182176
}
177+
.el-button-group .el-button--primary:first-child {
178+
border-right-color: #dcdfe6;
179+
}
183180
}
184-
185181
</style>

docs/api_docs/bundle.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -863,6 +863,9 @@ definitions:
863863
key:
864864
description: unique key representation of the flag
865865
type: string
866+
template:
867+
description: template for flag creation
868+
type: string
866869
putFlagRequest:
867870
type: object
868871
properties:

go.sum

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,21 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF
2121
github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
2222
github.com/asaskevich/govalidator v0.0.0-20180315120708-ccb8e960c48f h1:y2hSFdXeA1y5z5f0vfNO0Dg5qVY036qzlz3Pds0B92o=
2323
github.com/asaskevich/govalidator v0.0.0-20180315120708-ccb8e960c48f/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
24+
github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7 h1:irR1cO6eek3n5uquIVaRAsQmZnlsfPuHNz31cXo4eyk=
2425
github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM=
2526
github.com/avast/retry-go v2.2.0+incompatible h1:m+w7mVLWa/oKqX2xYqiEKQQkeGH8DDEXB/XnjS54Wyw=
2627
github.com/avast/retry-go v2.2.0+incompatible/go.mod h1:XtSnn+n/sHqQIpZ10K1qAevBhOOCWBLXXy3hyiqqBrY=
2728
github.com/aws/aws-sdk-go v1.15.32 h1:tb099RWtGbsXqOWDNKISRyufkdRWOYlXhE4XN0Jm3Bg=
2829
github.com/aws/aws-sdk-go v1.15.32/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0=
2930
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 h1:xJ4a3vCFaGF/jqvzLMYoU8P317H5OQ+Via4RmuPwCS0=
3031
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
32+
github.com/brandur/simplebox v0.0.0-20150921201729-84e9865bb03a h1:EMG9wk3iGM7WBAohiKenvpfyh1L5jv3snIMj3ffAMY8=
3133
github.com/brandur/simplebox v0.0.0-20150921201729-84e9865bb03a/go.mod h1:8hDWkKEpFQwZcugC69PxsoNQMh+0/A3FzLCppp/yJZM=
3234
github.com/bsm/ratelimit v2.0.0+incompatible h1:cV5yEqApIEkLumVjN65y/PlVrzJfCfz+b7BUQrNvCxA=
3335
github.com/bsm/ratelimit v2.0.0+incompatible/go.mod h1:CKXgBlwczX35ERUvw2g6Nl+CT0QNd5m+xh3fpzjgbzo=
3436
github.com/caarlos0/env v3.3.0+incompatible h1:jCfY0ilpzC2FFViyZyDKCxKybDESTwaR+ebh8zm6AOE=
3537
github.com/caarlos0/env v3.3.0+incompatible/go.mod h1:tdCsowwCzMLdkqRYDlHpZCp2UooDD3MspDBjZ2AD02Y=
38+
github.com/certifi/gocertifi v0.0.0-20180118203423-deb3ae2ef261 h1:6/yVvBsKeAw05IUj4AzvrxaCnDjN4nUqKjW9+w5wixg=
3639
github.com/certifi/gocertifi v0.0.0-20180118203423-deb3ae2ef261/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4=
3740
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
3841
github.com/codegangsta/negroni v1.0.0 h1:+aYywywx4bnKXWvoWtRfJ91vC59NbEhEY03sZjQhbVY=
@@ -47,12 +50,15 @@ github.com/denisenkom/go-mssqldb v0.0.0-20190418034912-35416408c946/go.mod h1:zA
4750
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
4851
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
4952
github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
53+
github.com/eapache/go-resiliency v1.1.0 h1:1NtRmCAqadE2FN4ZcN6g90TP3uk8cg9rn9eNK2197aU=
5054
github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
5155
github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw=
5256
github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
57+
github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc=
5358
github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
5459
github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5 h1:Yzb9+7DPaBjB8zlTR87/ElzFsnQfuHnVUVqpZZIcV5Y=
5560
github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0=
61+
github.com/evalphobia/logrus_sentry v0.4.6 h1:825MLGu+SW5H8hMXGeBI7TwX7vgJLd9hz0Eth1Mnp3o=
5662
github.com/evalphobia/logrus_sentry v0.4.6/go.mod h1:pKcp+vriitUqu9KiWj/VRFbRfFNUwz95/UkgG8a6MNc=
5763
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
5864
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
@@ -85,11 +91,13 @@ github.com/go-openapi/swag v0.0.0-20180908172849-dd0dad036e67 h1:HSEYUsQFq79SfgU
8591
github.com/go-openapi/swag v0.0.0-20180908172849-dd0dad036e67/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=
8692
github.com/go-openapi/validate v0.0.0-20180825180342-e0648ff40507 h1:WSEFLFs9bAbxJqnRnZYSYgkQtNjtCjq+/2ai5yR7/QA=
8793
github.com/go-openapi/validate v0.0.0-20180825180342-e0648ff40507/go.mod h1:ve8xoSHgqBUifiKgaVbxLmOE0ckvH0oXfsJcnm6SIz0=
94+
github.com/go-sql-driver/mysql v1.4.0 h1:7LxgVwFb2hIQtMm87NdgAVfXjnt4OePseqT1tKx+opk=
8895
github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
8996
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
9097
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
9198
github.com/gogo/protobuf v1.2.0 h1:xU6/SpYbvkNYiptHJYEDRseDLvYE7wSqhYYNy0QSUzI=
9299
github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
100+
github.com/gohttp/pprof v0.0.0-20141119085724-c9d246cbb3ba h1:OckY4Dk1WhEEEz4zYYMsXG5f6necMtGAyAs19vcpRXk=
93101
github.com/gohttp/pprof v0.0.0-20141119085724-c9d246cbb3ba/go.mod h1:V97TX7IXWIioKfmy0IKnnBzsC1jRXP2VicslN9O8IIQ=
94102
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
95103
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
@@ -98,6 +106,7 @@ github.com/golang/mock v1.2.0 h1:28o5sBqPkBsMGnC6b4MvE2TzSr5/AT4c/1fLqVGIwlk=
98106
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
99107
github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM=
100108
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
109+
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db h1:woRePGFeVFfLKN/pOkfl+p/TAqKOfFu+7KPlMVpok/w=
101110
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
102111
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
103112
github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ=
@@ -123,6 +132,7 @@ github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGAR
123132
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
124133
github.com/jinzhu/gorm v0.0.0-20180909231100-123d4f50ef8a h1:Z+fo5W6ecb0uvnWoEtzYoQKB8e9NFHT/19aB9ihFsLM=
125134
github.com/jinzhu/gorm v0.0.0-20180909231100-123d4f50ef8a/go.mod h1:Vla75njaFJ8clLU1W44h34PjIkijhjHIYnZxMqCdxqo=
135+
github.com/jinzhu/inflection v0.0.0-20180308033659-04140366298a h1:eeaG9XMUvRBYXJi4pg1ZKM7nxc5AfXfojeLLW7O5J3k=
126136
github.com/jinzhu/inflection v0.0.0-20180308033659-04140366298a/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
127137
github.com/jinzhu/now v1.0.0 h1:6WV8LvwPpDhKjo5U9O6b4+xdG/jTXNPwlDme/MTo8Ns=
128138
github.com/jinzhu/now v1.0.0/go.mod h1:oHTiXerJ20+SfYcrdlBO7rzZRJWGwSTQ0iUY2jI6Gfc=
@@ -148,9 +158,11 @@ github.com/lib/pq v1.0.0 h1:X5PMW56eZitiTeO7tKzZxFCSpbFZJtkMMooicw2us9A=
148158
github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
149159
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic=
150160
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
161+
github.com/mattn/go-sqlite3 v1.9.0 h1:pDRiWfl+++eC2FEFRy6jXmQlvp4Yh3z1MJKg4UeYM/4=
151162
github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
152163
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
153164
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
165+
github.com/meatballhat/negroni-logrus v0.0.0-20170801195057-31067281800f h1:V6GHkMOIsnpGDasS1iYiNxEYTY8TmyjQXEF8PqYkKQ8=
154166
github.com/meatballhat/negroni-logrus v0.0.0-20170801195057-31067281800f/go.mod h1:Ylx55XGW4gjY7McWT0pgqU0aQquIOChDnYkOVbSuF/c=
155167
github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=
156168
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
@@ -207,13 +219,16 @@ github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:s
207219
github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8=
208220
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
209221
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
222+
github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A=
210223
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
211224
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
212225
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
213226
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
214227
github.com/tinylib/msgp v1.1.0 h1:9fQd+ICuRIu/ue4vxJZu6/LzxN0HwMds2nq/0cFvxHU=
215228
github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
229+
github.com/urfave/negroni v0.3.0 h1:PaXOb61mWeZJxc1Ji2xJjpVg9QfPo0rrB+lHyBxGNSU=
216230
github.com/urfave/negroni v0.3.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4=
231+
github.com/yadvendar/negroni-newrelic-go-agent v0.0.0-20160803090806-3dc58758cb67 h1:BpDBAgffGUtOwUnYuFVOnl9PuDXW0X7bVw7NX/UdA4w=
217232
github.com/yadvendar/negroni-newrelic-go-agent v0.0.0-20160803090806-3dc58758cb67/go.mod h1:eRmB4tpcIoEUfMNyiXTbnZtzfODhBhZB3BIWGDD+vLs=
218233
github.com/zhouzhuojie/conditions v0.0.0-20190705160302-784df330cb87 h1:5pQTfWe/n9OvmwOamjhkePoT3dtJv0If1CXl3zkhSZg=
219234
github.com/zhouzhuojie/conditions v0.0.0-20190705160302-784df330cb87/go.mod h1:Izhy98HD3MkfwGPz+p9ZV2JuqrpbHjaQbUq9iZHh+ZY=

pkg/handler/crud.go

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -114,37 +114,6 @@ func (c *crud) FindFlags(params flag.FindFlagsParams) middleware.Responder {
114114
return resp
115115
}
116116

117-
func (c *crud) CreateFlag(params flag.CreateFlagParams) middleware.Responder {
118-
f := &entity.Flag{}
119-
if params.Body != nil {
120-
f.Description = util.SafeString(params.Body.Description)
121-
f.CreatedBy = getSubjectFromRequest(params.HTTPRequest)
122-
123-
key, err := entity.CreateFlagKey(params.Body.Key)
124-
if err != nil {
125-
return flag.NewCreateFlagDefault(400).WithPayload(
126-
ErrorMessage("cannot create flag. %s", err))
127-
}
128-
f.Key = key
129-
}
130-
err := getDB().Create(f).Error
131-
if err != nil {
132-
return flag.NewCreateFlagDefault(500).WithPayload(
133-
ErrorMessage("cannot create flag. %s", err))
134-
}
135-
136-
resp := flag.NewCreateFlagOK()
137-
payload, err := e2rMapFlag(f)
138-
if err != nil {
139-
return flag.NewCreateFlagDefault(500).WithPayload(
140-
ErrorMessage("cannot map flag. %s", err))
141-
}
142-
resp.SetPayload(payload)
143-
144-
entity.SaveFlagSnapshot(getDB(), f.ID, getSubjectFromRequest(params.HTTPRequest))
145-
return resp
146-
}
147-
148117
func (c *crud) GetFlag(params flag.GetFlagParams) middleware.Responder {
149118
f := &entity.Flag{}
150119
result := entity.PreloadSegmentsVariants(getDB()).First(f, params.FlagID)

0 commit comments

Comments
 (0)