@@ -219,6 +219,28 @@ func StartWebServer(database *sqlx.DB, port string) {
219
219
// description: Returns a string that the specified filter is not in the DB.
220
220
e .GET ("/filter/:id/cases" , getFilterCases )
221
221
222
+ // swagger:operation GET /filter/{id}/categories filter getFilterCategoriesOfFilter
223
+ // ---
224
+ // summary: Gets all filter categories of a specific filter.
225
+ // produces:
226
+ // - application/json
227
+ // parameters:
228
+ // - name: id
229
+ // in: path
230
+ // description: ID of the filter.
231
+ // type: integer
232
+ // required: true
233
+ // responses:
234
+ // 200:
235
+ // description: Returns the filter categories.
236
+ // schema:
237
+ // type: array
238
+ // items:
239
+ // $ref: '#/definitions/FilterCategory'
240
+ // 404:
241
+ // description: Returns a string that there are no filter categories for the specified filter.
242
+ e .GET ("/filter/:id/categories" , getFilterCategoriesOfFilter )
243
+
222
244
// swagger:operation Post /filter/import filter importFilter
223
245
// ---
224
246
// summary: Imports filter from a file.
@@ -602,6 +624,31 @@ func getFilterCases(c echo.Context) error {
602
624
return c .JSON (http .StatusOK , cases )
603
625
}
604
626
627
+ func getFilterCategoriesOfFilter (c echo.Context ) error {
628
+ var filterCategories []alertmanager.FilterCategory
629
+ sb := sqlbuilder .MySQL .NewSelectBuilder ()
630
+ sb .Select ("*" ).From ("filter_categories" ).Where (sb .Equal ("filter_id" , c .Param ("id" )))
631
+ sql , args := sb .Build ()
632
+ query , err := sqlbuilder .MySQL .Interpolate (sql , args )
633
+ if err != nil {
634
+ log .Error ().
635
+ AnErr ("Error" , err ).
636
+ Msg ("Could not build sql query" )
637
+ return err
638
+ }
639
+ err = db .Select (& filterCategories , query )
640
+ if err != nil {
641
+ log .Error ().
642
+ AnErr ("Error" , err ).
643
+ Msg ("Could not search db" )
644
+ return err
645
+ }
646
+ if filterCategories == nil {
647
+ return c .String (http .StatusNotFound , "No filter categories found!\n " )
648
+ }
649
+ return c .JSON (http .StatusOK , filterCategories )
650
+ }
651
+
605
652
func importFilter (c echo.Context ) error {
606
653
requestFile , err := c .FormFile ("filterConfig" )
607
654
if err != nil {
0 commit comments