示例#1
0
文件: api.go 项目: Unknwon/orbiter
func Contexter() macaron.Handler {
	return func(c *context.Context) {
		app, err := models.GetApplicationByToken(c.Query("token"))
		if err != nil {
			if errors.IsApplicationExists(err) {
				c.Error(403)
			} else {
				c.Error(500, err.Error())
			}
			return
		}

		ctx := &Context{
			Context: c,
			App:     app,
		}
		c.Map(ctx)
	}
}
示例#2
0
func NewApplicationPost(ctx *context.Context, form NewApplicationForm) {
	ctx.Data["Title"] = "New Application"
	ctx.Data["PageIsApplication"] = true

	if ctx.HasError() {
		ctx.HTML(200, "application/new")
		return
	}

	app, err := models.NewApplication(form.Name)
	if err != nil {
		if errors.IsApplicationExists(err) {
			ctx.Data["Err_Name"] = true
			ctx.RenderWithErr("Application name has been used.", "application/new", form)
		} else {
			ctx.Handle(500, "NewApplication", err)
		}
		return
	}

	ctx.Redirect(fmt.Sprintf("/applications/%d", app.ID))
}
示例#3
0
func EditApplicationPost(ctx *context.Context, form NewApplicationForm) {
	ctx.Data["Title"] = "Edit Application"
	ctx.Data["PageIsApplication"] = true

	app := parseApplicationByID(ctx)
	if ctx.Written() {
		return
	}

	app.Name = form.Name
	if err := models.UpdateApplication(app); err != nil {
		if errors.IsApplicationExists(err) {
			ctx.Data["Err_Name"] = true
			ctx.RenderWithErr("Application name has been used.", "application/edit", form)
		} else {
			ctx.Error(500, err.Error())
		}
		return
	}

	ctx.Redirect(fmt.Sprintf("/applications/%d", app.ID))
}