Skip to content

Commit 1836c2b

Browse files
committed
Revert "feat: remove unused endpoints"
This reverts (part of) commit c38cfad.
1 parent 30fb6b4 commit 1836c2b

File tree

3 files changed

+60
-0
lines changed

3 files changed

+60
-0
lines changed

controllers/cohortdefinition.go

+19
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package controllers
22

33
import (
44
"net/http"
5+
"strconv"
56

67
"github.com/gin-gonic/gin"
78
"github.com/uc-cdis/cohort-middleware/models"
@@ -16,6 +17,24 @@ func NewCohortDefinitionController(cohortDefinitionModel models.CohortDefinition
1617
return CohortDefinitionController{cohortDefinitionModel: cohortDefinitionModel}
1718
}
1819

20+
func (u CohortDefinitionController) RetriveById(c *gin.Context) {
21+
cohortDefinitionId := c.Param("id")
22+
23+
if cohortDefinitionId != "" {
24+
cohortDefinitionId, _ := strconv.Atoi(cohortDefinitionId)
25+
cohortDefinition, err := u.cohortDefinitionModel.GetCohortDefinitionById(cohortDefinitionId)
26+
if err != nil {
27+
c.JSON(http.StatusInternalServerError, gin.H{"message": "Error retrieving cohortDefinition", "error": err.Error()})
28+
c.Abort()
29+
return
30+
}
31+
c.JSON(http.StatusOK, gin.H{"cohort_definition": cohortDefinition})
32+
return
33+
}
34+
c.JSON(http.StatusBadRequest, gin.H{"message": "bad request"})
35+
c.Abort()
36+
}
37+
1938
func (u CohortDefinitionController) RetriveStatsBySourceIdAndTeamProject(c *gin.Context) {
2039
// This method returns ALL cohortdefinition entries with cohort size statistics (for a given source)
2140
sourceId, err1 := utils.ParseNumericArg(c, "sourceid")

server/router.go

+2
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ func NewRouter() *gin.Engine {
2929
authorized.GET("/sources", source.RetriveAll)
3030

3131
cohortdefinitions := controllers.NewCohortDefinitionController(*new(models.CohortDefinition))
32+
authorized.GET("/cohortdefinition/by-id/:id", cohortdefinitions.RetriveById)
33+
3234
authorized.GET("/cohortdefinition-stats/by-source-id/:sourceid/by-team-project", cohortdefinitions.RetriveStatsBySourceIdAndTeamProject)
3335

3436
// concept endpoints:

tests/controllers_tests/controllers_test.go

+39
Original file line numberDiff line numberDiff line change
@@ -483,6 +483,45 @@ func TestRetriveStatsBySourceIdAndTeamProject(t *testing.T) {
483483
}
484484
}
485485

486+
func TestRetriveByIdWrongParam(t *testing.T) {
487+
setUp(t)
488+
requestContext := new(gin.Context)
489+
requestContext.Params = append(requestContext.Params, gin.Param{Key: "Abc", Value: "def"})
490+
requestContext.Writer = new(tests.CustomResponseWriter)
491+
cohortDefinitionController.RetriveById(requestContext)
492+
// Params above are wrong, so request should abort:
493+
if !requestContext.IsAborted() {
494+
t.Errorf("Expected aborted request")
495+
}
496+
}
497+
498+
func TestRetriveById(t *testing.T) {
499+
setUp(t)
500+
requestContext := new(gin.Context)
501+
requestContext.Params = append(requestContext.Params, gin.Param{Key: "id", Value: "1"})
502+
requestContext.Writer = new(tests.CustomResponseWriter)
503+
cohortDefinitionController.RetriveById(requestContext)
504+
result := requestContext.Writer.(*tests.CustomResponseWriter)
505+
log.Printf("result: %s", result)
506+
// expect result with dummy data:
507+
if !strings.Contains(result.CustomResponseWriterOut, "test 1") {
508+
t.Errorf("Expected data in result")
509+
}
510+
}
511+
512+
func TestRetriveByIdModelError(t *testing.T) {
513+
setUp(t)
514+
requestContext := new(gin.Context)
515+
requestContext.Params = append(requestContext.Params, gin.Param{Key: "id", Value: "1"})
516+
requestContext.Writer = new(tests.CustomResponseWriter)
517+
// set flag to let mock model layer return error instead of mock data:
518+
dummyModelReturnError = true
519+
cohortDefinitionController.RetriveById(requestContext)
520+
if !requestContext.IsAborted() {
521+
t.Errorf("Expected aborted request")
522+
}
523+
}
524+
486525
func TestRetrieveBreakdownStatsBySourceIdAndCohortId(t *testing.T) {
487526
setUp(t)
488527
requestContext := new(gin.Context)

0 commit comments

Comments
 (0)