(c *gin.Context)
| 268 | } |
| 269 | |
| 270 | func preRegisterProjectUser(c *gin.Context) { |
| 271 | r := struct { |
| 272 | DB proto.DatabaseID `json:"db" json:"project" form:"db" form:"project" uri:"db" uri:"project" binding:"required,len=64"` |
| 273 | Name string `json:"name" form:"name"` |
| 274 | Email string `json:"email" form:"email" binding:"required,email"` |
| 275 | Provider string `json:"provider" form:"provider" binding:"required"` |
| 276 | }{} |
| 277 | |
| 278 | _ = c.ShouldBindUri(&r) |
| 279 | |
| 280 | if err := c.ShouldBind(&r); err != nil { |
| 281 | abortWithError(c, http.StatusBadRequest, err) |
| 282 | return |
| 283 | } |
| 284 | |
| 285 | _, projectDB, err := getProjectDB(c, r.DB) |
| 286 | if err != nil { |
| 287 | _ = c.Error(err) |
| 288 | abortWithError(c, http.StatusForbidden, ErrLoadProjectDatabaseFailed) |
| 289 | return |
| 290 | } |
| 291 | |
| 292 | var u *model.ProjectUser |
| 293 | u, err = model.PreRegisterUser(projectDB, r.Provider, r.Name, r.Email) |
| 294 | if err != nil { |
| 295 | _ = c.Error(err) |
| 296 | |
| 297 | if strings.Contains(err.Error(), "constraint failed") { |
| 298 | err = ErrPreRegisterUserAlreadyExists |
| 299 | } else { |
| 300 | err = ErrPreRegisterUserFailed |
| 301 | } |
| 302 | |
| 303 | abortWithError(c, http.StatusInternalServerError, err) |
| 304 | return |
| 305 | } |
| 306 | |
| 307 | responseWithData(c, http.StatusOK, gin.H{ |
| 308 | "name": u.Name, |
| 309 | "email": u.Email, |
| 310 | "provider": u.Provider, |
| 311 | "project": r.DB, |
| 312 | }) |
| 313 | } |
| 314 | |
| 315 | func queryProjectUser(c *gin.Context) { |
| 316 | r := struct { |
nothing calls this directly
no test coverage detected