func (c Auth) Signup() revel.Result { var credentials models.Credentials json_data, err := ioutil.ReadAll(c.Request.Body) if err != nil { c.Response.Status = http.StatusUnauthorized return c.RenderJson(AuthError{ Error: 1, Flash: "Error while reading request body.", ErrorDetails: err.Error(), }) } if err := json.Unmarshal([]byte(json_data), &credentials); err != nil { c.Response.Status = http.StatusUnauthorized return c.RenderJson(AuthError{ Error: 1, Flash: "Invalid JSON format in the request body.", ErrorDetails: err.Error(), }) } credentials.Validate(c.Validation) if c.Validation.HasErrors() { c.Response.Status = http.StatusUnauthorized return c.RenderJson(AuthError{ Error: 1, Flash: "Invalid credentials.", ErrorDetails: err.Error(), }) } revel.INFO.Println(credentials) _, err = Accounts.Create(&credentials) if err != nil { c.Response.Status = http.StatusUnauthorized return c.RenderJson(AuthError{ Error: 1, Flash: "API error while creating new account. " + err.Error(), ErrorDetails: err.Error(), }) } // TODO:([email protected]): send activation email return c.RenderJson(SignUpResponse{ Error: 0, Flash: fmt.Sprintf("New account was successfully created. Activation email sent to %s.", credentials.Email), }) }