From cfe028b8487f6bb17bc5fd90316f23a48f091bc9 Mon Sep 17 00:00:00 2001 From: rajdeep11 Date: Wed, 9 Oct 2024 11:26:50 +0530 Subject: [PATCH] get model info by id Change-Id: I6f80ca928c507a4c71dbb29e5c881f37cfb984e2 Signed-off-by: rajdeep11 --- apis/mmes_apis.go | 26 ++++++++++++++++++++++++++ db/iDB.go | 1 + db/modelInfoRepository.go | 9 +++++++++ routers/router.go | 1 + 4 files changed, 37 insertions(+) diff --git a/apis/mmes_apis.go b/apis/mmes_apis.go index afbe154..482811e 100644 --- a/apis/mmes_apis.go +++ b/apis/mmes_apis.go @@ -205,6 +205,32 @@ func (m *MmeApiHandler) GetModelInfo(cont *gin.Context) { } } +func (m *MmeApiHandler) GetModelInfoById(cont *gin.Context) { + logging.INFO("Get model info by id ...") + id := cont.Param("id") + modelInfo, err := m.iDB.GetModelInfoById(id) + if err != nil { + logging.ERROR("error:", err) + cont.JSON(http.StatusInternalServerError, gin.H{ + "code": http.StatusInternalServerError, + "message": err.Error(), + }) + return + } + if modelInfo.Id == ""{ + statusCode := http.StatusNotFound + errMessage := fmt.Sprintf("Record not found with id: %s", id) + logging.ERROR("Record not found, send status code: ", statusCode) + cont.JSON(statusCode, gin.H{ + "code": statusCode, + "message": errMessage, + }) + return + } + cont.JSON(http.StatusOK, modelInfo) + return +} + /* Provides the model details by param model name */ diff --git a/db/iDB.go b/db/iDB.go index 969c634..0d1be63 100644 --- a/db/iDB.go +++ b/db/iDB.go @@ -27,6 +27,7 @@ type IDB interface { GetAll() ([]models.ModelInfo, error) GetModelInfoByName(modelName string)([]models.ModelInfo, error) GetModelInfoByNameAndVer(modelName string, modelVersion string)(*models.ModelInfo, error) + GetModelInfoById(id string)(*models.ModelInfo, error) Update(modelInfo models.ModelInfo) error Delete(id string) error } diff --git a/db/modelInfoRepository.go b/db/modelInfoRepository.go index e277253..c72b5b1 100644 --- a/db/modelInfoRepository.go +++ b/db/modelInfoRepository.go @@ -81,4 +81,13 @@ func (repo *ModelInfoRepository) GetModelInfoByNameAndVer(modelName string, mode return nil, result.Error } return &modelInfo, nil +} +func (repo *ModelInfoRepository) GetModelInfoById(id string)(*models.ModelInfo, error){ + logging.INFO("id is:", id) + var modelInfo models.ModelInfo + result := repo.db.Where("id = ?", id).Find(&modelInfo) + if result.Error != nil { + return nil, result.Error + } + return &modelInfo, nil } \ No newline at end of file diff --git a/routers/router.go b/routers/router.go index 365268b..3cd3235 100644 --- a/routers/router.go +++ b/routers/router.go @@ -30,6 +30,7 @@ func InitRouter(handler *apis.MmeApiHandler) *gin.Engine { r.POST("/registerModel", handler.RegisterModel) r.GET("/getModelInfo", handler.GetModelInfo) r.PUT("/modelInfo/:id", handler.UpdateModel) + r.GET("/modelInfo/:id", handler.GetModelInfoById) r.DELETE("/modelInfo/:id", handler.DeleteModel) r.GET("/getModelInfo/:modelName", handler.GetModelInfoByName) r.POST("/uploadModel/:modelName", handler.UploadModel) -- 2.16.6