MCPcopy Index your code
hub / github.com/CovenantSQL/CovenantSQL / preRegisterProjectUser

Function preRegisterProjectUser

cmd/cql-proxy/api/project.go:270–313  ·  view source on GitHub ↗
(c *gin.Context)

Source from the content-addressed store, hash-verified

268}
269
270func 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
315func queryProjectUser(c *gin.Context) {
316 r := struct {

Callers

nothing calls this directly

Calls 6

PreRegisterUserFunction · 0.92
abortWithErrorFunction · 0.85
getProjectDBFunction · 0.85
responseWithDataFunction · 0.85
ErrorMethod · 0.80
ContainsMethod · 0.80

Tested by

no test coverage detected