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) } }
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)) }
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)) }