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