Skip to content

Commit 58d7e81

Browse files
committed
added getFilterCategoriesOfFilter
1 parent d24af9a commit 58d7e81

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

cve-alert-restapi/request-handler/requestHandler.go

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,28 @@ func StartWebServer(database *sqlx.DB, port string) {
219219
// description: Returns a string that the specified filter is not in the DB.
220220
e.GET("/filter/:id/cases", getFilterCases)
221221

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+
222244
// swagger:operation Post /filter/import filter importFilter
223245
// ---
224246
// summary: Imports filter from a file.
@@ -602,6 +624,31 @@ func getFilterCases(c echo.Context) error {
602624
return c.JSON(http.StatusOK, cases)
603625
}
604626

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+
605652
func importFilter(c echo.Context) error {
606653
requestFile, err := c.FormFile("filterConfig")
607654
if err != nil {

0 commit comments

Comments
 (0)