You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by ab...@apache.org on 2024/03/29 09:44:41 UTC
(incubator-devlake) 18/40: feat: add project exist check (#7228)
This is an automated email from the ASF dual-hosted git repository.
abeizn pushed a commit to branch release-v1.0
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
commit d0edd10753d89e67d04404d48e0f7a959082e2c0
Author: abeizn <zi...@merico.dev>
AuthorDate: Wed Mar 27 18:14:09 2024 +0800
feat: add project exist check (#7228)
* feat: add project exist check
* fix: swagger doc
---
backend/core/models/project.go | 4 ++++
backend/server/api/project/project.go | 31 +++++++++++++++++++++++++++----
backend/server/api/router.go | 3 ++-
3 files changed, 33 insertions(+), 5 deletions(-)
diff --git a/backend/core/models/project.go b/backend/core/models/project.go
index 4da6afc67..0c7723891 100644
--- a/backend/core/models/project.go
+++ b/backend/core/models/project.go
@@ -71,6 +71,10 @@ type ApiOutputProject struct {
LastPipeline *Pipeline `json:"lastPipeline,omitempty" mapstructure:"lastPipeline"`
}
+type ApiProjectCheck struct {
+ Exist bool `json:"exist" mapstructure:"exist"`
+}
+
type Store struct {
StoreKey string `gorm:"primaryKey;type:varchar(255)"`
StoreValue json.RawMessage `gorm:"type:json;serializer:json"`
diff --git a/backend/server/api/project/project.go b/backend/server/api/project/project.go
index 24cd57b2f..3305974ac 100644
--- a/backend/server/api/project/project.go
+++ b/backend/server/api/project/project.go
@@ -33,17 +33,17 @@ type PaginatedProjects struct {
Count int64 `json:"count"`
}
-// @Summary Create and run a new project
-// @Description Create and run a new project
+// @Summary Get a project
+// @Description Get a project
// @Tags framework/projects
// @Accept application/json
// @Param projectName path string true "project name"
// @Success 200 {object} models.ApiOutputProject
// @Failure 400 {string} errcode.Error "Bad Request"
// @Failure 500 {string} errcode.Error "Internal Error"
-// @Router /projects/:projectName [get]
+// @Router /projects/{projectName} [get]
func GetProject(c *gin.Context) {
- projectName := c.Param("projectName")[1:]
+ projectName := c.Param("projectName")
projectOutput, err := services.GetProject(projectName)
if err != nil {
@@ -53,6 +53,29 @@ func GetProject(c *gin.Context) {
shared.ApiOutputSuccess(c, projectOutput, http.StatusOK)
}
+// @Summary Get project exist check
+// @Description Get project exist check
+// @Tags framework/projects
+// @Accept application/json
+// @Param projectName path string true "project name"
+// @Success 200 {object} models.ApiOutputProject
+// @Failure 400 {string} errcode.Error "Bad Request"
+// @Failure 500 {string} errcode.Error "Internal Error"
+// @Router /projects/{projectName}/check [get]
+func GetProjectCheck(c *gin.Context) {
+ projectName := c.Param("projectName")
+
+ projectOutputCheck := &models.ApiProjectCheck{}
+ _, err := services.GetProject(projectName)
+ if err != nil {
+ projectOutputCheck.Exist = false
+ } else {
+ projectOutputCheck.Exist = true
+ }
+
+ shared.ApiOutputSuccess(c, projectOutputCheck, http.StatusOK) // //shared.ApiOutputSuccess(c, projectOutputCheck, http.StatusOK)
+}
+
// @Summary Get list of projects
// @Description GET /projects?page=1&pageSize=10
// @Tags framework/projects
diff --git a/backend/server/api/router.go b/backend/server/api/router.go
index 9577b2494..3698aef25 100644
--- a/backend/server/api/router.go
+++ b/backend/server/api/router.go
@@ -70,7 +70,8 @@ func RegisterRouter(r *gin.Engine, basicRes context.BasicRes) {
r.GET("/plugins", plugininfo.GetPluginMetas)
// project api
- r.GET("/projects/*projectName", project.GetProject)
+ r.GET("/projects/:projectName", project.GetProject)
+ r.GET("/projects/:projectName/check", project.GetProjectCheck)
r.PATCH("/projects/*projectName", project.PatchProject)
r.DELETE("/projects/*projectName", project.DeleteProject)
r.POST("/projects", project.PostProject)