Skip to content

Commit

Permalink
feat: add POST-endpoint to filter on IDs
Browse files Browse the repository at this point in the history
  • Loading branch information
NilsOveTen committed Apr 3, 2024
1 parent 8ec7035 commit 7452aaf
Show file tree
Hide file tree
Showing 21 changed files with 552 additions and 17 deletions.
6 changes: 6 additions & 0 deletions config/router/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,27 @@ func InitializeRoutes(e *gin.Engine) {
e.GET(env.PathValues.Ready, handlers.ReadyHandler())

e.GET(env.PathValues.Concepts, handlers.GetConcepts())
e.POST(env.PathValues.Concepts, handlers.FilterConcepts())
e.GET(env.PathValues.Concept, handlers.GetConcept())

e.GET(env.PathValues.DataServices, handlers.GetDataServices())
e.POST(env.PathValues.DataServices, handlers.FilterDataServices())
e.GET(env.PathValues.DataService, handlers.GetDataService())

e.GET(env.PathValues.Datasets, handlers.GetDatasets())
e.POST(env.PathValues.Datasets, handlers.FilterDatasets())
e.GET(env.PathValues.Dataset, handlers.GetDataset())

e.GET(env.PathValues.Events, handlers.GetEvents())
e.POST(env.PathValues.Events, handlers.FilterEvents())
e.GET(env.PathValues.Event, handlers.GetEvent())

e.GET(env.PathValues.InformationModels, handlers.GetInformationModels())
e.POST(env.PathValues.InformationModels, handlers.FilterInformationModels())
e.GET(env.PathValues.InformationModel, handlers.GetInformationModel())

e.GET(env.PathValues.Services, handlers.GetServices())
e.POST(env.PathValues.Services, handlers.FilterServices())
e.GET(env.PathValues.Service, handlers.GetService())
}

Expand Down
21 changes: 20 additions & 1 deletion handlers/concept_handlers.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package handlers

import (
"github.com/Informasjonsforvaltning/fdk-resource-service/model"
"net/http"

"github.com/Informasjonsforvaltning/fdk-resource-service/service"
Expand All @@ -10,7 +11,7 @@ import (
func GetConcepts() func(c *gin.Context) {
conceptService := service.InitConceptService()
return func(c *gin.Context) {
concepts, status := conceptService.GetConcepts(c.Request.Context())
concepts, status := conceptService.GetConcepts(c.Request.Context(), nil)
if status == http.StatusOK {
c.JSON(status, concepts)
} else {
Expand All @@ -19,6 +20,24 @@ func GetConcepts() func(c *gin.Context) {
}
}

func FilterConcepts() func(c *gin.Context) {
conceptService := service.InitConceptService()
return func(c *gin.Context) {
var filters model.Filters
err := c.BindJSON(&filters)
if err != nil {
c.Status(http.StatusBadRequest)
} else {
concepts, status := conceptService.GetConcepts(c.Request.Context(), &filters)
if status == http.StatusOK {
c.JSON(status, concepts)
} else {
c.Status(status)
}
}
}
}

func GetConcept() func(c *gin.Context) {
conceptService := service.InitConceptService()
return func(c *gin.Context) {
Expand Down
21 changes: 20 additions & 1 deletion handlers/data_service_handlers.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package handlers

import (
"github.com/Informasjonsforvaltning/fdk-resource-service/model"
"net/http"

"github.com/gin-gonic/gin"
Expand All @@ -11,7 +12,7 @@ import (
func GetDataServices() func(c *gin.Context) {
dataServiceService := service.InitDataServiceService()
return func(c *gin.Context) {
dataServices, status := dataServiceService.GetDataServices(c.Request.Context())
dataServices, status := dataServiceService.GetDataServices(c.Request.Context(), nil)
if status == http.StatusOK {
c.JSON(status, dataServices)
} else {
Expand All @@ -20,6 +21,24 @@ func GetDataServices() func(c *gin.Context) {
}
}

func FilterDataServices() func(c *gin.Context) {
dataServiceService := service.InitDataServiceService()
return func(c *gin.Context) {
var filters model.Filters
err := c.BindJSON(&filters)
if err != nil {
c.Status(http.StatusBadRequest)
} else {
dataServices, status := dataServiceService.GetDataServices(c.Request.Context(), &filters)
if status == http.StatusOK {
c.JSON(status, dataServices)
} else {
c.Status(status)
}
}
}
}

func GetDataService() func(c *gin.Context) {
dataServiceService := service.InitDataServiceService()
return func(c *gin.Context) {
Expand Down
21 changes: 20 additions & 1 deletion handlers/dataset_handlers.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package handlers

import (
"github.com/Informasjonsforvaltning/fdk-resource-service/model"
"net/http"

"github.com/Informasjonsforvaltning/fdk-resource-service/service"
Expand All @@ -10,7 +11,7 @@ import (
func GetDatasets() func(c *gin.Context) {
datasetService := service.InitDatasetService()
return func(c *gin.Context) {
datasets, status := datasetService.GetDatasets(c.Request.Context())
datasets, status := datasetService.GetDatasets(c.Request.Context(), nil)
if status == http.StatusOK {
c.JSON(status, datasets)
} else {
Expand All @@ -19,6 +20,24 @@ func GetDatasets() func(c *gin.Context) {
}
}

func FilterDatasets() func(c *gin.Context) {
datasetService := service.InitDatasetService()
return func(c *gin.Context) {
var filters model.Filters
err := c.BindJSON(&filters)
if err != nil {
c.Status(http.StatusBadRequest)
} else {
datasets, status := datasetService.GetDatasets(c.Request.Context(), &filters)
if status == http.StatusOK {
c.JSON(status, datasets)
} else {
c.Status(status)
}
}
}
}

func GetDataset() func(c *gin.Context) {
datasetService := service.InitDatasetService()
return func(c *gin.Context) {
Expand Down
21 changes: 20 additions & 1 deletion handlers/event_handlers.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package handlers

import (
"github.com/Informasjonsforvaltning/fdk-resource-service/model"
"net/http"

"github.com/Informasjonsforvaltning/fdk-resource-service/service"
Expand All @@ -10,7 +11,7 @@ import (
func GetEvents() func(c *gin.Context) {
eventService := service.InitEventService()
return func(c *gin.Context) {
events, status := eventService.GetEvents(c.Request.Context())
events, status := eventService.GetEvents(c.Request.Context(), nil)
if status == http.StatusOK {
c.JSON(status, events)
} else {
Expand All @@ -19,6 +20,24 @@ func GetEvents() func(c *gin.Context) {
}
}

func FilterEvents() func(c *gin.Context) {
eventService := service.InitEventService()
return func(c *gin.Context) {
var filters model.Filters
err := c.BindJSON(&filters)
if err != nil {
c.Status(http.StatusBadRequest)
} else {
events, status := eventService.GetEvents(c.Request.Context(), &filters)
if status == http.StatusOK {
c.JSON(status, events)
} else {
c.Status(status)
}
}
}
}

func GetEvent() func(c *gin.Context) {
eventService := service.InitEventService()
return func(c *gin.Context) {
Expand Down
21 changes: 20 additions & 1 deletion handlers/information_model_handlers.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package handlers

import (
"github.com/Informasjonsforvaltning/fdk-resource-service/model"
"net/http"

"github.com/Informasjonsforvaltning/fdk-resource-service/service"
Expand All @@ -10,7 +11,7 @@ import (
func GetInformationModels() func(c *gin.Context) {
informationModelService := service.InitInformationModelService()
return func(c *gin.Context) {
informationModels, status := informationModelService.GetInformationModels(c.Request.Context())
informationModels, status := informationModelService.GetInformationModels(c.Request.Context(), nil)
if status == http.StatusOK {
c.JSON(status, informationModels)
} else {
Expand All @@ -19,6 +20,24 @@ func GetInformationModels() func(c *gin.Context) {
}
}

func FilterInformationModels() func(c *gin.Context) {
informationModelService := service.InitInformationModelService()
return func(c *gin.Context) {
var filters model.Filters
err := c.BindJSON(&filters)
if err != nil {
c.Status(http.StatusBadRequest)
} else {
informationModels, status := informationModelService.GetInformationModels(c.Request.Context(), &filters)
if status == http.StatusOK {
c.JSON(status, informationModels)
} else {
c.Status(status)
}
}
}
}

func GetInformationModel() func(c *gin.Context) {
informationModelService := service.InitInformationModelService()
return func(c *gin.Context) {
Expand Down
21 changes: 20 additions & 1 deletion handlers/service_handlers.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package handlers

import (
"github.com/Informasjonsforvaltning/fdk-resource-service/model"
"net/http"

"github.com/Informasjonsforvaltning/fdk-resource-service/service"
Expand All @@ -10,7 +11,7 @@ import (
func GetServices() func(c *gin.Context) {
serviceService := service.InitServiceService()
return func(c *gin.Context) {
services, status := serviceService.GetServices(c.Request.Context())
services, status := serviceService.GetServices(c.Request.Context(), nil)
if status == http.StatusOK {
c.JSON(status, services)
} else {
Expand All @@ -19,6 +20,24 @@ func GetServices() func(c *gin.Context) {
}
}

func FilterServices() func(c *gin.Context) {
serviceService := service.InitServiceService()
return func(c *gin.Context) {
var filters model.Filters
err := c.BindJSON(&filters)
if err != nil {
c.Status(http.StatusBadRequest)
} else {
services, status := serviceService.GetServices(c.Request.Context(), &filters)
if status == http.StatusOK {
c.JSON(status, services)
} else {
c.Status(status)
}
}
}
}

func GetService() func(c *gin.Context) {
serviceService := service.InitServiceService()
return func(c *gin.Context) {
Expand Down
5 changes: 5 additions & 0 deletions model/filters.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package model

type Filters struct {
IDs []string `json:"ids"`
}
Loading

0 comments on commit 7452aaf

Please sign in to comment.