X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=lib%2Fagent%2Fapiv1-projects.go;h=57848969f7543f4bac319f235908a10fb188b647;hb=4d843d2bde236ec23810d0904dfb8aebbc53a37b;hp=89218ab6be771672d802afe47ce99c29fb41cb52;hpb=be13167b869161b6e19dc3e94835245cdc7911e5;p=src%2Fxds%2Fxds-agent.git diff --git a/lib/agent/apiv1-projects.go b/lib/agent/apiv1-projects.go index 89218ab..5784896 100644 --- a/lib/agent/apiv1-projects.go +++ b/lib/agent/apiv1-projects.go @@ -15,7 +15,12 @@ func (s *APIService) getProjects(c *gin.Context) { // getProject returns a specific project configuration func (s *APIService) getProject(c *gin.Context) { - prj := s.projects.Get(c.Param("id")) + id, err := s.projects.ResolveID(c.Param("id")) + if err != nil { + common.APIError(c, err.Error()) + return + } + prj := s.projects.Get(id) if prj == nil { common.APIError(c, "Invalid id") return @@ -34,7 +39,7 @@ func (s *APIService) addProject(c *gin.Context) { s.Log.Debugln("Add project config: ", cfgArg) - newFld, err := s.projects.Add(cfgArg) + newFld, err := s.projects.Add(cfgArg, s.sessions.GetID(c)) if err != nil { common.APIError(c, err.Error()) return @@ -45,29 +50,61 @@ func (s *APIService) addProject(c *gin.Context) { // syncProject force synchronization of project files func (s *APIService) syncProject(c *gin.Context) { - id := c.Param("id") + id, err := s.projects.ResolveID(c.Param("id")) + if err != nil { + common.APIError(c, err.Error()) + return + } s.Log.Debugln("Sync project id: ", id) - err := s.projects.ForceSync(id) + err = s.projects.ForceSync(id) if err != nil { common.APIError(c, err.Error()) return } - c.JSON(http.StatusOK, "") + c.JSON(http.StatusOK, nil) } // delProject deletes project from server config func (s *APIService) delProject(c *gin.Context) { - id := c.Param("id") + id, err := s.projects.ResolveID(c.Param("id")) + if err != nil { + common.APIError(c, err.Error()) + return + } s.Log.Debugln("Delete project id ", id) - delEntry, err := s.projects.Delete(id) + delEntry, err := s.projects.Delete(id, s.sessions.GetID(c)) if err != nil { common.APIError(c, err.Error()) return } c.JSON(http.StatusOK, delEntry) } + +// updateProject Update some field of a specific project +func (s *APIService) updateProject(c *gin.Context) { + id, err := s.projects.ResolveID(c.Param("id")) + if err != nil { + common.APIError(c, err.Error()) + return + } + + var cfgArg apiv1.ProjectConfig + if c.BindJSON(&cfgArg) != nil { + common.APIError(c, "Invalid arguments") + return + } + + s.Log.Debugln("Update project id ", id) + + upPrj, err := s.projects.Update(id, cfgArg, s.sessions.GetID(c)) + if err != nil { + common.APIError(c, err.Error()) + return + } + c.JSON(http.StatusOK, upPrj) +}