コード例 #1
0
ファイル: blog.go プロジェクト: jackdoe/godzilla
func Modify(ctx *godzilla.Context) {
	if !is_admin(ctx) {
		ctx.Error("not allowed", 404)
		return
	}
	object_id := ctx.Splat[2]
	object_type := ctx.Splat[1]
	if object_type != "posts" && object_type != "categories" && object_type != "post_category" {
		ctx.Error("bad object type", 500)
		return
	}
	var output interface{}

	switch ctx.R.Method {
	case "GET":
		output = ctx.FindById(object_type, object_id)
	case "POST":
		var j map[string]interface{}
		json.Unmarshal([]byte(ctx.Sparams["json"]), &j)
		if j == nil {
			j = map[string]interface{}{}
		}
		j["updated_at"] = time.Now().Unix()
		id, _ := ctx.Replace(object_type, j)
		output = ctx.FindById(object_type, id)
	case "DELETE":
		ctx.DeleteById(object_type, object_id)
		output = "deleted " + object_id + "@" + object_type
	}
	ctx.RenderJSON(output, 404)
}
コード例 #2
0
ファイル: url.go プロジェクト: jackdoe/godzilla
func Append(ctx *godzilla.Context) {
	id, _ := ctx.Replace("url", map[string]interface{}{"url": ctx.Splat[1]})
	ctx.Write(fmt.Sprintf("/url/%d", id))
}