rev |
line source |
bsw@75
|
1 local id = param.get("id")
|
bsw@75
|
2 local min_id = param.get("min_id")
|
bsw@75
|
3 local max_id = param.get("max_id")
|
bsw@75
|
4 local order = param.get("order")
|
bsw@75
|
5 local limit = param.get("limit", atom.integer)
|
bsw@75
|
6
|
bsw@75
|
7 local areas_selector = Area:new_selector()
|
bsw@75
|
8
|
bsw@75
|
9 if id then
|
bsw@75
|
10 areas_selector:add_where{"area.id = ?", id}
|
bsw@75
|
11 end
|
bsw@75
|
12
|
bsw@75
|
13 if min_id then
|
bsw@75
|
14 areas_selector:add_where{"area.id >= ?", min_id}
|
bsw@75
|
15 end
|
bsw@75
|
16
|
bsw@75
|
17 if max_id then
|
bsw@75
|
18 areas_selector:add_where{"area.id <= ?", max_id}
|
bsw@75
|
19 end
|
bsw@75
|
20
|
bsw@75
|
21 if order == "name" then
|
bsw@75
|
22 areas_selector:add_order_by("area.name")
|
bsw@75
|
23 end
|
bsw@75
|
24
|
bsw@75
|
25 if order == "member_weight" then
|
bsw@75
|
26 areas_selector:add_order_by("area.member_weight DESC")
|
bsw@75
|
27 end
|
bsw@75
|
28
|
bsw@75
|
29 areas_selector:add_order_by("area.id")
|
bsw@75
|
30
|
bsw@75
|
31 if limit then
|
bsw@75
|
32 initiatives_selector:limit(limit)
|
bsw@75
|
33 end
|
bsw@75
|
34
|
bsw@75
|
35 local api_engine = param.get("api_engine") or "xml"
|
bsw@75
|
36
|
bsw@75
|
37 local fields = {
|
bsw@75
|
38
|
bsw@75
|
39 { name = "id", field = "area.id" },
|
bsw@75
|
40 { name = "name", field = "area.name" },
|
bsw@75
|
41 { name = "description", field = "area.description" },
|
bsw@75
|
42 { name = "direct_member_count", field = "area.direct_member_count" },
|
bsw@75
|
43 { name = "member_weight", field = "area.member_weight" },
|
bsw@75
|
44 { name = "autoreject_weight", field = "area.autoreject_weight" },
|
bsw@75
|
45 { name = "active", field = "area.active" },
|
bsw@75
|
46
|
bsw@75
|
47 }
|
bsw@75
|
48
|
bsw@75
|
49 util.autoapi{
|
bsw@75
|
50 relation_name = "area",
|
bsw@75
|
51 selector = areas_selector,
|
bsw@75
|
52 fields = fields,
|
bsw@75
|
53 api_engine = api_engine
|
bsw@75
|
54 } |