fmt.Println("Starting api server...")
router := gin.Default()
- router.GET("/getModel", GetModel)
+ router.GET("/getModelInfo", GetModelInfo)
router.POST("/createModel", CreateModel)
router.Run(os.Getenv("MMES_URL"))
fmt.Println("Started api server...")
})
}
+/*
+This API retrieves model info for given model name
+input :
+
+ Model name : string
+*/
+func GetModelInfo(cont *gin.Context) {
+ fmt.Println("Fetching model")
+ bodyBytes, _ := io.ReadAll(cont.Request.Body)
+ //TODO Error checking of request is not in json, i.e. etra ',' at EOF
+ jsonMap := make(map[string]interface{})
+ json.Unmarshal(bodyBytes, &jsonMap)
+ model_name := jsonMap["model-name"].(string)
+ fmt.Println("The request model name: ", model_name)
+
+ s3_manager := core.NewS3Manager()
+ model_info := s3_manager.GetBucketObject(model_name+"_info.json", model_name)
+ cont.JSON(http.StatusOK, gin.H{
+ "code": http.StatusOK,
+ "message": string(model_info),
+ })
+
+}
+
func GetModel(cont *gin.Context) {
fmt.Println("Fetching model")
- //s3_manager.GetBucketObject(modelInfo.ModelName+"_info.json", modelInfo.ModelName)
- cont.IndentedJSON(http.StatusOK, "Model stored ")
+ cont.IndentedJSON(http.StatusOK, " ")
}
func UpdateModel() {
func NewS3Manager() *S3Manager {
endpoint := os.Getenv("S3_URL")
accessKey := os.Getenv("S3_ACCESS_KEY")
- secretAccessKey := os.Getenv("S3_SECRETE_KEY")
+ secretAccessKey := os.Getenv("S3_SECRET_KEY")
config := aws.Config{
Endpoint: aws.String(endpoint),
println("Bucket created : ", bucketName)
}
-func (s3manager *S3Manager) GetBucketObject(objectName string, bucketName string) {
+func (s3manager *S3Manager) GetBucketObject(objectName string, bucketName string) []byte {
+ var response []byte
getInputs := &s3.GetObjectInput{
Bucket: aws.String(bucketName),
Key: aws.String(objectName),
if err != nil {
fmt.Println("Error, can't get fetch object..")
- return
+ return response
} else {
fmt.Println("Successfully retrieved object...")
}
-
- outputFile, error := os.Create(bucketName + ".json")
- if error != nil {
- fmt.Println("Could not create local file ")
- return
- }
- defer outputFile.Close()
- _, wrerr := io.Copy(outputFile, result.Body)
-
- if wrerr != nil {
- fmt.Println("Failed to write bucket object in to a localfile")
- } else {
- fmt.Println("Successfully, written bucket object to localfile")
- }
-
+ //TODO : Error handling
+ response, err = io.ReadAll(result.Body)
+ return response
}
func (s3manager *S3Manager) DeleteBucket(client *s3.S3, objectName string, bucketName string) {