bsw@75: local id = param.get("id") bsw@75: local min_id = param.get("min_id") bsw@75: local max_id = param.get("max_id") bsw@75: local order = param.get("order") bsw@75: local limit = param.get("limit", atom.integer) bsw@75: bsw@75: local areas_selector = Area:new_selector() bsw@75: bsw@75: if id then bsw@75: areas_selector:add_where{"area.id = ?", id} bsw@75: end bsw@75: bsw@75: if min_id then bsw@75: areas_selector:add_where{"area.id >= ?", min_id} bsw@75: end bsw@75: bsw@75: if max_id then bsw@75: areas_selector:add_where{"area.id <= ?", max_id} bsw@75: end bsw@75: bsw@75: if order == "name" then bsw@75: areas_selector:add_order_by("area.name") bsw@75: end bsw@75: bsw@75: if order == "member_weight" then bsw@75: areas_selector:add_order_by("area.member_weight DESC") bsw@75: end bsw@75: bsw@75: areas_selector:add_order_by("area.id") bsw@75: bsw@75: if limit then bsw@75: initiatives_selector:limit(limit) bsw@75: end bsw@75: bsw@75: local api_engine = param.get("api_engine") or "xml" bsw@75: bsw@75: local fields = { bsw@75: bsw@75: { name = "id", field = "area.id" }, bsw@75: { name = "name", field = "area.name" }, bsw@75: { name = "description", field = "area.description" }, bsw@75: { name = "direct_member_count", field = "area.direct_member_count" }, bsw@75: { name = "member_weight", field = "area.member_weight" }, bsw@75: { name = "autoreject_weight", field = "area.autoreject_weight" }, bsw@75: { name = "active", field = "area.active" }, bsw@75: bsw@75: } bsw@75: bsw@75: util.autoapi{ bsw@75: relation_name = "area", bsw@75: selector = areas_selector, bsw@75: fields = fields, bsw@75: api_engine = api_engine bsw@75: }