liquid_feedback_frontend

annotate app/main/api/suggestion.lua @ 275:fc14e76afe31

Made filter better useable
author bsw
date Sun Feb 12 13:42:08 2012 +0100 (2012-02-12)
parents da885b2dda29
children
rev   line source
bsw@95 1 local id = param.get("id")
bsw@95 2 local min_id = param.get("min_id")
bsw@95 3 local max_id = param.get("max_id")
bsw@95 4 local initiative_id = param.get("initiative_id")
bsw@95 5 local order = param.get("order")
bsw@95 6 local limit = param.get("limit", atom.integer)
bsw@95 7
bsw@95 8 local suggestions_selector = Suggestion:new_selector()
bsw@95 9
bsw@95 10 if id then
bsw@95 11 suggestions_selector:add_where{"suggestion.id = ?", id}
bsw@95 12 end
bsw@95 13
bsw@95 14 if min_id then
bsw@95 15 suggestions_selector:add_where{"suggestion.id >= ?", min_id}
bsw@95 16 end
bsw@95 17
bsw@95 18 if max_id then
bsw@95 19 suggestions_selector:add_where{"suggestion.id <= ?", max_id}
bsw@95 20 end
bsw@95 21
poelzi@143 22 if initiative_id then
poelzi@143 23 suggestions_selector:add_where{"suggestion.initiative_id = ?", initiative_id}
poelzi@143 24 end
poelzi@143 25
poelzi@161 26 if order == "created_desc" then
poelzi@161 27 suggestions_selector:add_order_by("suggestion.created DESC")
poelzi@161 28 elseif order == "created_asc" or order == "created" then
poelzi@161 29 suggestions_selector:add_order_by("suggestion.id")
poelzi@161 30 elseif order == "id_desc" then
bsw@95 31 suggestions_selector:add_order_by("suggestion.id DESC")
bsw@95 32 else
bsw@95 33 suggestions_selector:add_order_by("suggestion.id")
bsw@95 34 end
bsw@95 35
bsw@95 36 if limit then
bsw@95 37 suggestions_selector:limit(limit)
bsw@95 38 end
bsw@95 39
bsw@95 40 local api_engine = param.get("api_engine") or "xml"
bsw@95 41
bsw@95 42 local fields = {
bsw@95 43
bsw@95 44 { name = "id", field = "suggestion.id" },
bsw@95 45 { name = "initiative_id", field = "suggestion.initiative_id" },
poelzi@161 46 { name = "created", field = "suggestion.created" },
poelzi@170 47 -- FIXME: private api
poelzi@170 48 -- { name = "author_id", field = "suggestion.author_id" },
bsw@95 49 { name = "name", field = "suggestion.name" },
bsw@95 50 { name = "description", field = "suggestion.description" },
bsw@95 51 { name = "minus2_unfulfilled_count", field = "suggestion.minus2_unfulfilled_count" },
bsw@95 52 { name = "minus2_fulfilled_count", field = "suggestion.minus2_fulfilled_count" },
bsw@95 53 { name = "minus1_unfulfilled_count", field = "suggestion.minus1_unfulfilled_count" },
bsw@95 54 { name = "minus1_fulfilled_count", field = "suggestion.minus1_fulfilled_count" },
bsw@95 55 { name = "plus1_unfulfilled_count", field = "suggestion.plus1_unfulfilled_count" },
bsw@95 56 { name = "plus1_fulfilled_count", field = "suggestion.plus1_fulfilled_count" },
bsw@95 57 { name = "plus2_unfulfilled_count", field = "suggestion.plus2_unfulfilled_count" },
bsw@95 58 { name = "plus2_fulfilled_count", field = "suggestion.plus2_fulfilled_count" },
bsw@95 59
bsw@95 60 }
bsw@95 61
bsw@95 62 util.autoapi{
bsw@95 63 relation_name = "suggestion",
bsw@95 64 selector = suggestions_selector,
bsw@95 65 fields = fields,
bsw@95 66 api_engine = api_engine
bsw@95 67 }

Impressum / About Us