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