本文整理汇总了Golang中github.com/gotk/ctx.BadRequest函数的典型用法代码示例。如果您正苦于以下问题:Golang BadRequest函数的具体用法?Golang BadRequest怎么用?Golang BadRequest使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了BadRequest函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: POST
func (lc *Collection) POST(c *ctx.Context, rw http.ResponseWriter, req *http.Request) error {
db := c.Vars["db"].(*pg.Session)
// decode request data
var form = &struct {
Name string `json:"name"`
StaticURL string `json:"staticURL"`
StaticPath string `json:"staticPath"`
}{}
err := json.NewDecoder(req.Body).Decode(form)
if err != nil {
log.Errorf("Could not parse request data: %s", err)
return ctx.BadRequest(rw, c.T("location.api.could_not_parse_request_data"))
}
// create new location
loc := &Model{
Name: form.Name,
StaticURL: form.StaticURL,
StaticPath: form.StaticPath,
}
err = db.Create(loc)
if err != nil {
log.Errorf("Could not create location %s: %v", form.Name, err)
return ctx.BadRequest(rw, c.T("location.api.could_not_create_location"))
}
return ctx.Created(rw, loc)
}
示例2: POST
func (r *Begin) POST(c *ctx.Context, rw http.ResponseWriter, req *http.Request) error {
db := c.Vars["db"].(*pg.Session)
// decode request data
var form struct {
Email string `json:"email"`
}
err := json.NewDecoder(req.Body).Decode(&form)
if err != nil {
return ctx.BadRequest(rw, c.T("reset.begin.could_not_query"))
}
// validate email address
if ok := regexp.MustCompile(cfg.Email.Regex).MatchString(form.Email); !ok {
return ctx.BadRequest(rw, c.T("reset.begin.invalid_email_address"))
}
// get user from database
var u *user.Model
u, err = user.GetByEmail(db, form.Email)
if err != nil {
return ctx.BadRequest(rw, c.T("reset.begin.user_not_found"))
}
go sendEmail(c, u)
return ctx.OK(rw, c.T("reset.begin.email_sent"))
}
示例3: PUT
func (r *Resource) PUT(c *ctx.Context, rw http.ResponseWriter, req *http.Request) error {
vars := mux.Vars(req)
id := vars["id"]
db := c.Vars["db"].(*pg.Session)
// decode request data
var form = &struct {
Name string `json:"name"`
}{}
err := json.NewDecoder(req.Body).Decode(form)
if err != nil {
log.Errorf("Could not parse request data: %s", err)
return ctx.BadRequest(rw, c.T("mediatype.api.could_not_parse_request"))
}
// get media type from database
var entity pg.Entity
entity, err = db.FindOne(&Model{}, "id = $1", id)
if err != nil {
log.Errorf("Could not query media type id %s: %v", id, err)
return ctx.BadRequest(rw, c.T("mediatype.api.could_not_query_media_type"))
}
mediatype := entity.(*Model)
// update the media type
mediatype.Name = form.Name
err = db.Update(mediatype)
if err != nil {
log.Errorf("Could not edit media type %s: %v", form.Name, err)
return ctx.BadRequest(rw, c.T("mediatype.api.could_not_edit_media_type"))
}
return ctx.OK(rw, mediatype)
}
示例4: PUT
func (r *Resource) PUT(c *ctx.Context, rw http.ResponseWriter, req *http.Request) error {
vars := mux.Vars(req)
id := vars["id"]
db := c.Vars["db"].(*pg.Session)
// decode request data
var form = &struct {
Name string `json:"name"`
}{}
err := json.NewDecoder(req.Body).Decode(form)
if err != nil {
log.Errorf("Could not parse request data: %s", err)
return ctx.BadRequest(rw, c.T("group.api.could_not_parse_request_data"))
}
// get group from database
var grp pg.Entity
grp, err = db.FindOne(&Model{}, "id = $1", id)
if err != nil {
log.Errorf("Could not query group id %s: %v", id, err)
return ctx.BadRequest(rw, c.T("group.api.could_not_query_group"))
}
// update the group
grp.(*Model).Name = form.Name
err = db.Update(grp)
if err != nil {
log.Errorf("Could not edit group %s: %v", form.Name, err)
return ctx.BadRequest(rw, c.T("group.api.could_not_edit_group"))
}
return ctx.OK(rw, grp)
}
示例5: PUT
func (r *Resource) PUT(c *ctx.Context, rw http.ResponseWriter, req *http.Request) error {
db := c.Vars["db"].(*pg.Session)
vars := mux.Vars(req)
id := vars["id"]
// decode request data
var form = &MediaForm{}
err := json.NewDecoder(req.Body).Decode(form)
if err != nil {
log.Errorf("Could not parse request data: %s", err)
return ctx.BadRequest(rw, c.T("media.mediaitemresource.could_not_parse_request_data"))
}
// get location from database
loc, err := location.GetById(db, form.LocationId)
if err != nil {
log.Errorf("Could not locate the requested location: %s", err)
return ctx.BadRequest(rw, c.T("media.mediaitemresource.could_not_locate_requested_location"))
}
// get media type from database
mediatype, err := mediatype.GetById(db, form.MediatypeId)
if err != nil {
log.Errorf("Could not locate the requested media type: %s", err)
return ctx.BadRequest(rw, c.T("media.mediaitemresource.could_not_locate_requested_media_type"))
}
// move the uploaded file to the right place
var dstPath string
dstPath, err = mediaupload.MoveFile(loc, mediatype, form.Path)
if err != nil {
log.Errorf("Could not process the uploaded file: %s", err)
return ctx.InternalServerError(rw, c.T("media.mediaitemresource.could_not_process_uploaded_file"))
}
// get media from database
entity, err := db.FindOne(&Model{}, "id = $1", id)
if err != nil {
log.Errorf("Could not query media id %s: %v", id, err)
return ctx.BadRequest(rw, c.T("media.mediaitemresource.could_not_query_media"))
}
media := entity.(*Model)
// update the media
media.Name = form.Name
media.LocationId = form.LocationId
media.MediatypeId = form.MediatypeId
media.Path = dstPath
media.EncodeData(loc, mediatype)
err = db.Update(media)
if err != nil {
log.Errorf("Could not edit media %s: %v", form.Name, err)
return ctx.BadRequest(rw, c.T("media.mediaitemresource.could_not_edit_media"))
}
return ctx.OK(rw, media)
}
示例6: POST
func (r *Complete) POST(c *ctx.Context, rw http.ResponseWriter, req *http.Request) error {
db := c.Vars["db"].(*pg.Session)
// decode request data
var form struct {
Password string `json:"password"`
PasswordAgain string `json:"passwordAgain"`
ValidKey ValidKey `json:"validKey"`
}
err := json.NewDecoder(req.Body).Decode(&form)
if err != nil {
return ctx.BadRequest(rw, c.T("reset.complete.unable_to_change"))
}
// validate the passwords
if form.Password != form.PasswordAgain {
return ctx.BadRequest(rw, c.T("reset.complete.mismatch"))
}
// validate the key again
resetToken, err := getToken(db, form.ValidKey.Key)
if err != nil || !resetToken.Valid() {
return ctx.BadRequest(rw, c.T("reset.token.invalid_key"))
}
// get user from db
u, err := user.GetById(db, resetToken.UserId)
if err != nil {
return ctx.InternalServerError(rw, c.T("reset.complete.user_not_found"))
}
// encode user password
err = u.Password.Encode(form.Password)
if err != nil {
return ctx.InternalServerError(rw, c.T("reset.complete.could_not_change_password"))
}
// change user data in database
err = user.Update(db, u)
if err != nil {
return ctx.InternalServerError(rw, c.T("reset.complete.could_not_change_password"))
}
// invalidate token
err = updateToken(db, resetToken)
if err != nil {
log.Errorf("Unable to invalidate token: %s", err)
}
return ctx.OK(rw, u)
}
示例7: POST
func (r *SignUp) POST(c *ctx.Context, rw http.ResponseWriter, req *http.Request) error {
db := c.Vars["db"].(*pg.Session)
// decode request data
var form struct {
FirstName string `json:"firstName"`
LastName string `json:"lastName"`
Email string `json:"email"`
Password string `json:"password"`
PasswordAgain string `json:"passwordAgain"`
}
err := json.NewDecoder(req.Body).Decode(&form)
if err != nil {
log.Errorf("Could not parse request data: %s", err)
return ctx.BadRequest(rw, c.T("user.signup.could_not_parse_request_data"))
}
// check whether the email address is already taken
_, err = user.GetByEmail(db, form.Email)
if err == nil {
return ctx.BadRequest(rw, c.T("user.signup.email_taken"))
} else if err != pg.ERecordNotFound {
log.Errorf("Could not query user: %s", err)
return ctx.InternalServerError(rw, c.T("user.signup.could_not_query_user"))
}
// password validation
if form.Password != form.PasswordAgain {
return ctx.BadRequest(rw, c.T("user.signup.passwords_mismatch"))
}
// create new user
u, err := user.Create(
db,
form.Email,
form.Password,
&user.UserJsonData{
FirstName: form.FirstName,
LastName: form.LastName,
},
)
if err != nil {
return ctx.InternalServerError(rw, c.T("user.signup.could_not_create_user"))
}
// return created user data
return ctx.Created(rw, u)
}
示例8: POST
func (r *Resource) POST(c *ctx.Context, rw http.ResponseWriter, req *http.Request) error {
reader, err := req.MultipartReader()
if err != nil {
return ctx.BadRequest(rw, c.T("media.uploadresource.could_not_upload_file"))
}
var tempFile *os.File
for {
part, err := reader.NextPart()
if err == io.EOF {
break
}
tempFile, err = ioutil.TempFile(os.TempDir(), "spa")
if err != nil {
return ctx.InternalServerError(rw, c.T("media.uploadresource.could_not_create_temp_file"))
}
defer tempFile.Close()
_, err = io.Copy(tempFile, part)
if err != nil {
break
}
}
return ctx.Created(rw, tempFile.Name())
}
示例9: GET
func (lc *Collection) GET(c *ctx.Context, rw http.ResponseWriter, req *http.Request) error {
db := c.Vars["db"].(*pg.Session)
locations, err := db.FindAll(&Model{}, "")
if err != nil {
log.Errorf("Could not query locations: %v", err)
return ctx.BadRequest(rw, c.T("location.api.could_not_query_locations"))
}
return ctx.OK(rw, locations)
}
示例10: POST
func (r *ValidateKey) POST(c *ctx.Context, rw http.ResponseWriter, req *http.Request) error {
db := c.Vars["db"].(*pg.Session)
// decode request data
var form struct {
Key string `json:"key"`
}
err := json.NewDecoder(req.Body).Decode(&form)
if err != nil {
return ctx.BadRequest(rw, c.T("reset.validate.unable_to_validate_key"))
}
resetToken, err := getToken(db, form.Key)
if err != nil || !resetToken.Valid() {
return ctx.BadRequest(rw, c.T("reset.validate.invalid_key"))
}
return ctx.OK(rw, ValidKey{resetToken.UserId, form.Key})
}
示例11: GET
func (r *Resource) GET(c *ctx.Context, rw http.ResponseWriter, req *http.Request) error {
db := c.Vars["db"].(*pg.Session)
vars := mux.Vars(req)
id := vars["id"]
media, err := db.FindOne(&Model{}, "id = $1", id)
if err != nil {
log.Errorf("Could not query media id %s: %v", id, err)
return ctx.BadRequest(rw, c.T("media.mediaitemresource.could_not_query_media"))
}
return ctx.OK(rw, media)
}
示例12: GET
func (r *Resource) GET(c *ctx.Context, rw http.ResponseWriter, req *http.Request) error {
vars := mux.Vars(req)
id := vars["id"]
db := c.Vars["db"].(*pg.Session)
grp, err := db.FindOne(&Model{}, "id = $1", id)
if err != nil {
log.Errorf("Could not query group id %s: %v", id, err)
return ctx.BadRequest(rw, c.T("group.api.could_not_query_group"))
}
return ctx.OK(rw, grp)
}
示例13: POST
func (r *SignIn) POST(c *ctx.Context, rw http.ResponseWriter, req *http.Request) error {
db := c.Vars["db"].(*pg.Session)
// decode request data
var form struct {
Email string `json:"email"`
Password string `json:"password"`
}
err := json.NewDecoder(req.Body).Decode(&form)
if err != nil {
return ctx.BadRequest(rw, c.T("user.signin.could_not_query"))
}
// validate email address
if ok := regexp.MustCompile(cfg.Email.Regex).MatchString(form.Email); !ok {
return ctx.BadRequest(rw, c.T("user.signin.invalid_email_address"))
}
// validate password length
if len(form.Password) == 0 {
return ctx.BadRequest(rw, c.T("user.signin.password_cannot_be_empty"))
}
// check user in database
var u *user.Model
u, err = user.GetByEmail(db, form.Email)
if err != nil {
return ctx.BadRequest(rw, c.T("user.signin.invalid_email_or_password"))
}
// check user password
if !u.Password.Valid(form.Password) {
return ctx.BadRequest(rw, c.T("user.signin.invalid_email_or_password"))
}
// generate new token
return token.Response(c, rw, token.New(u))
}
示例14: PUT
func (r *Profile) PUT(c *ctx.Context, rw http.ResponseWriter, req *http.Request) error {
db := c.Vars["db"].(*pg.Session)
// decode request data
var form struct {
Id null.Int `json:"id"`
Email string `json:"email"`
JsonData UserJsonData `json:"jsonData,omitempty"`
}
err := json.NewDecoder(req.Body).Decode(&form)
if err != nil {
return ctx.BadRequest(rw, c.T("user.me.could_not_decode_profile_data"))
}
// query user data
u, err := GetById(db, form.Id.Int64)
if err != nil {
log.Errorf("Could not query user: %v", err)
return ctx.InternalServerError(rw, c.T("user.me.could_not_query"))
}
// get the json data from user
jsonData, err := u.DecodeJsonData()
if err != nil {
return ctx.BadRequest(rw, c.T("user.me.could_not_decode_json_data"))
}
// update the user
u.Email = form.Email
jsonData.FirstName = form.JsonData.FirstName
jsonData.LastName = form.JsonData.LastName
u.JsonData.Encode(jsonData)
Update(db, u)
// return user data
return ctx.OK(rw, u)
}
示例15: DELETE
func (r *Resource) DELETE(c *ctx.Context, rw http.ResponseWriter, req *http.Request) error {
db := c.Vars["db"].(*pg.Session)
vars := mux.Vars(req)
id := vars["id"]
media, err := db.FindOne(&Model{}, "id = $1", id)
if err != nil {
log.Errorf("Could not query media id %s: %v", id, err)
return ctx.BadRequest(rw, c.T("media.mediaitemresource.could_not_query_media"))
}
err = db.Delete(media)
if err != nil {
log.Errorf("Could not delete media %s: %v", id, err)
return ctx.InternalServerError(rw, c.T("media.mediaitemresource.could_not_delete_media"))
}
return ctx.NoContent(rw)
}