liquid_feedback_frontend

changeset 518:46c05d8837b7

Removed artefacts from old API
author bsw
date Sun Apr 15 18:26:06 2012 +0200 (2012-04-15)
parents 29683c7c7926
children 7492497005bd
files app/main/_filter/21_auth.lua app/main/api/_filter/00_api.lua app/main/api/area.lua app/main/api/initiative.lua app/main/api/suggestion.lua
line diff
     1.1 --- a/app/main/_filter/21_auth.lua	Sun Apr 15 12:37:34 2012 +0200
     1.2 +++ b/app/main/_filter/21_auth.lua	Sun Apr 15 18:26:06 2012 +0200
     1.3 @@ -33,7 +33,7 @@
     1.4  
     1.5  end
     1.6  
     1.7 -if config.api_enabled and request.get_module() == "api" or request.get_module() == "sitemap" then
     1.8 +if request.get_module() == "sitemap" then
     1.9    auth_needed = false
    1.10  end
    1.11  
     2.1 --- a/app/main/api/_filter/00_api.lua	Sun Apr 15 12:37:34 2012 +0200
     2.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.3 @@ -1,41 +0,0 @@
     2.4 -if not config.api_enabled then
     2.5 -  error("API is not enabled.")
     2.6 -end
     2.7 -
     2.8 -local api_key = param.get("key")
     2.9 -
    2.10 -if not api_key then
    2.11 -  error("No API key supplied.")
    2.12 -end
    2.13 -
    2.14 -local accepted = false
    2.15 -
    2.16 -if config.api_keys then
    2.17 -  for i, config_api_key in ipairs(config.api_keys) do
    2.18 -    if api_key == config_api_key then
    2.19 -      accepted = true
    2.20 -    end
    2.21 -  end
    2.22 -end
    2.23 -
    2.24 -if not accepted then
    2.25 -  local setting_key = "liquidfeedback_frontend_api_key"
    2.26 -
    2.27 -  local setting = Setting:new_selector()
    2.28 -    :add_where{ "key = ?", setting_key }
    2.29 -    :add_where{ "value = ?", api_key }
    2.30 -    :join("member", nil, "member.id = setting.member_id")
    2.31 -    :add_where("member.active")
    2.32 -    :optional_object_mode()
    2.33 -    :exec()
    2.34 -
    2.35 -  if setting then
    2.36 -    accepted = true
    2.37 -  end
    2.38 -end
    2.39 -
    2.40 -if not accepted then
    2.41 -  error("Supplied API key is not valid.")
    2.42 -end
    2.43 -
    2.44 -execute.inner()
     3.1 --- a/app/main/api/area.lua	Sun Apr 15 12:37:34 2012 +0200
     3.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.3 @@ -1,54 +0,0 @@
     3.4 -local id     = param.get("id")
     3.5 -local min_id = param.get("min_id")
     3.6 -local max_id = param.get("max_id")
     3.7 -local order  = param.get("order")
     3.8 -local limit  = param.get("limit", atom.integer)
     3.9 -
    3.10 -local areas_selector = Area:new_selector()
    3.11 -
    3.12 -if id then
    3.13 -  areas_selector:add_where{"area.id = ?", id}
    3.14 -end
    3.15 -
    3.16 -if min_id then
    3.17 -  areas_selector:add_where{"area.id >= ?", min_id}
    3.18 -end
    3.19 -
    3.20 -if max_id then
    3.21 -  areas_selector:add_where{"area.id <= ?", max_id}
    3.22 -end
    3.23 -
    3.24 -if order == "name" then
    3.25 -  areas_selector:add_order_by("area.name")
    3.26 -end
    3.27 -
    3.28 -if order == "member_weight" then
    3.29 -  areas_selector:add_order_by("area.member_weight DESC")
    3.30 -end
    3.31 -
    3.32 -areas_selector:add_order_by("area.id")
    3.33 -
    3.34 -if limit then
    3.35 -  initiatives_selector:limit(limit)
    3.36 -end
    3.37 -
    3.38 -local api_engine = param.get("api_engine") or "xml"
    3.39 -
    3.40 -local fields = {
    3.41 -
    3.42 -  { name = "id",                   field = "area.id" },
    3.43 -  { name = "name",                 field = "area.name" },
    3.44 -  { name = "description",          field = "area.description" },
    3.45 -  { name = "direct_member_count",  field = "area.direct_member_count" },
    3.46 -  { name = "member_weight",        field = "area.member_weight" },
    3.47 -  { name = "autoreject_weight",    field = "area.autoreject_weight" },
    3.48 -  { name = "active",               field = "area.active" },
    3.49 -
    3.50 -}
    3.51 -
    3.52 -util.autoapi{
    3.53 -  relation_name = "area",
    3.54 -  selector      = areas_selector,
    3.55 -  fields        = fields,
    3.56 -  api_engine    = api_engine
    3.57 -}
    3.58 \ No newline at end of file
     4.1 --- a/app/main/api/initiative.lua	Sun Apr 15 12:37:34 2012 +0200
     4.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.3 @@ -1,215 +0,0 @@
     4.4 -local id             = param.get("id")
     4.5 -local min_id         = param.get("min_id")
     4.6 -local max_id         = param.get("max_id")
     4.7 -local area_id        = param.get("area_id", atom.integer)
     4.8 -local issue_id       = param.get("issue_id", atom.integer)
     4.9 -local policy_id      = param.get("policy_id", atom.integer)
    4.10 -local state          = param.get("state")
    4.11 -local agreed         = param.get("agreed")
    4.12 -local rank           = param.get("rank")
    4.13 ---local search         = param.get("search")
    4.14 ---local search_context = param.get("search_context") or "full"
    4.15 -local limit          = param.get("limit", atom.integer)
    4.16 -local order          = param.get("order")
    4.17 -local render_draft   = param.get("render_draft")
    4.18 -
    4.19 -if render_draft and render_draft ~= "html" then
    4.20 -  error("unsupported render target, only 'html' is supported right now")
    4.21 -end
    4.22 -
    4.23 -local initiatives_selector = Initiative:new_selector()
    4.24 -  :join("issue", nil, "issue.id = initiative.issue_id")
    4.25 -  :join("area", nil, "area.id = issue.area_id")
    4.26 -  :join("policy", nil, "policy.id = issue.policy_id")
    4.27 -
    4.28 -if id then
    4.29 -  initiatives_selector:add_where{"initiative.id = ?", id}
    4.30 -end
    4.31 -
    4.32 -if min_id then
    4.33 -  initiatives_selector:add_where{"initiative.id >= ?", min_id}
    4.34 -end
    4.35 -
    4.36 -if max_id then
    4.37 -  initiatives_selector:add_where{"initiative.id <= ?", max_id}
    4.38 -end
    4.39 -
    4.40 -if area_id then
    4.41 -  initiatives_selector:add_where{"area.id = ?", area_id}
    4.42 -end
    4.43 -
    4.44 -if issue_id then
    4.45 -  initiatives_selector:add_where{"issue.id = ?", issue_id}
    4.46 -end
    4.47 -
    4.48 -if policy_id then
    4.49 -  initiatives_selector:add_where{"policy.id = ?", policy_id}
    4.50 -end
    4.51 -
    4.52 -if state then
    4.53 -  Issue:modify_selector_for_state(initiatives_selector, state)
    4.54 -end
    4.55 -
    4.56 -if agreed then
    4.57 -  initiatives_selector:add_where("initiative.agreed")
    4.58 -end
    4.59 -
    4.60 -if rank then
    4.61 -  initiatives_selector:add_where{ "initiative.rank = ?", rank }
    4.62 -end
    4.63 -
    4.64 ---[[
    4.65 -if search then
    4.66 -  if search_context == "full" then
    4.67 -  elseif search_context == "title" then
    4.68 -  end
    4.69 -end
    4.70 ---]]
    4.71 -
    4.72 -if order == "supporter_count" then
    4.73 -  initiatives_selector:add_order_by("initiative.supporter_count")
    4.74 -end
    4.75 -
    4.76 -if order == "id_desc" then
    4.77 -  initiatives_selector:add_order_by("initiative.id DESC")
    4.78 -else
    4.79 -  initiatives_selector:add_order_by("initiative.id")
    4.80 -end
    4.81 -
    4.82 -if limit then
    4.83 -  initiatives_selector:limit(limit)
    4.84 -end
    4.85 -
    4.86 -local api_engine = param.get("api_engine") or "xml"
    4.87 -
    4.88 -local function format_timestamp(timestamp)
    4.89 -  if timestamp then
    4.90 -    return format.timestamp(timestamp)
    4.91 -  else
    4.92 -    return ""
    4.93 -  end
    4.94 -end
    4.95 -
    4.96 -local fields = {
    4.97 -
    4.98 -  { name = "area_id",                   field = "area.id" },
    4.99 -  { name = "area_name",                 field = "area.name" },
   4.100 -  { name = "issue_id",                  field = "issue.id" },
   4.101 -  {
   4.102 -    name = "issue_state",
   4.103 -    func = function(record)
   4.104 -      return record.issue.state
   4.105 -    end
   4.106 -  },
   4.107 -  {
   4.108 -    name = "issue_created",
   4.109 -    field = "issue.created",
   4.110 -    func = function(record)
   4.111 -      return format_timestamp(record.issue_created)
   4.112 -    end
   4.113 -  },
   4.114 -  {
   4.115 -    name = "issue_accepted",
   4.116 -    field = "issue.accepted",
   4.117 -    func = function(record)
   4.118 -      return format_timestamp(record.issue_accepted)
   4.119 -    end
   4.120 -  },
   4.121 -  {
   4.122 -    name = "issue_half_frozen",
   4.123 -    field = "issue.half_frozen",
   4.124 -    func = function(record)
   4.125 -      return format_timestamp(record.issue_half_frozen)
   4.126 -    end
   4.127 -  },
   4.128 -  {
   4.129 -    name = "issue_fully_frozen",
   4.130 -    field = "issue.fully_frozen",
   4.131 -    func = function(record)
   4.132 -      return format_timestamp(record.issue_fully_frozen)
   4.133 -    end
   4.134 -  },
   4.135 -  {
   4.136 -    name = "issue_closed",
   4.137 -    field = "issue.closed",
   4.138 -    func = function(record)
   4.139 -      return format_timestamp(record.issue_closed)
   4.140 -    end
   4.141 -  },
   4.142 -  { name = "issue_admission_time",      field = "issue.admission_time" },
   4.143 -  { name = "issue_discussion_time",     field = "issue.discussion_time" },
   4.144 -  { name = "issue_verification_time",   field = "issue.verification_time" },
   4.145 -  { name = "issue_voting_time",         field = "issue.voting_time" },
   4.146 -  { name = "issue_ranks_available",     field = "issue.ranks_available" },
   4.147 -
   4.148 -  { name = "policy_issue_quorum_num",   field = "policy.issue_quorum_num" },
   4.149 -  { name = "policy_issue_quorum_den",   field = "policy.issue_quorum_den" },
   4.150 -  { name = "policy_initiative_quorum_num",
   4.151 -                                        field = "policy.initiative_quorum_num" },
   4.152 -  { name = "policy_initiative_quorum_den",
   4.153 -                                        field = "policy.initiative_quorum_den" },
   4.154 -  { name = "policy_majority_num",       field = "policy.majority_num" },
   4.155 -  { name = "policy_majority_den",       field = "policy.majority_den" },
   4.156 -  { name = "policy_majority_strict",    field = "policy.majority_strict" },
   4.157 -  { name = "id",                        field = "initiative.id" },
   4.158 -  { name = "name",                      field = "initiative.name" },
   4.159 -  { name = "discussion_url",            field = "initiative.discussion_url" },
   4.160 -  {
   4.161 -    name = "created",
   4.162 -    field = "initiative.created",
   4.163 -    func = function(record)
   4.164 -      return format_timestamp(record.created)
   4.165 -    end
   4.166 -  },
   4.167 -  {
   4.168 -    name = "revoked",
   4.169 -    field = "initiative.revoked",
   4.170 -    func = function(record)
   4.171 -      return format_timestamp(record.revoked)
   4.172 -    end
   4.173 -  },
   4.174 -  { name = "suggested_initiative_id",   field = "initiative.suggested_initiative_id" },
   4.175 -  { name = "admitted",                  field = "initiative.admitted" },
   4.176 -  { name = "issue_population",          field = "issue.population" },
   4.177 -  { name = "supporter_count",           field = "initiative.supporter_count" },
   4.178 -  { name = "informed_supporter_count",  field = "initiative.informed_supporter_count" },
   4.179 -  { name = "satisfied_supporter_count", field = "initiative.satisfied_supporter_count" },
   4.180 -  { name = "satisfied_informed_supporter_count",
   4.181 -                                        field = "initiative.satisfied_informed_supporter_count" },
   4.182 -  { name = "issue_vote_now",            field = "issue.vote_now" },
   4.183 -  { name = "issue_vote_later",          field = "issue.vote_later" },
   4.184 -  { name = "issue_voter_count",         field = "issue.voter_count" },
   4.185 -  { name = "positive_votes",            field = "initiative.positive_votes" },
   4.186 -  { name = "negative_votes",            field = "initiative.negative_votes" },
   4.187 -  { name = "agreed",                    field = "initiative.agreed" },
   4.188 -  { name = "rank",                      field = "initiative.rank" },
   4.189 -  {
   4.190 -    name = "current_draft_created",
   4.191 -    func = function(record)
   4.192 -      return format_timestamp(record.current_draft.created)
   4.193 -    end
   4.194 -  },
   4.195 -  {
   4.196 -    name = "current_draft_formatting_engine",
   4.197 -    func = function(record)
   4.198 -      return record.current_draft.formatting_engine
   4.199 -    end
   4.200 -  },
   4.201 -  {
   4.202 -    name = "current_draft_content",
   4.203 -    func = function(record)
   4.204 -      if render_draft then
   4.205 -        return record.current_draft:get_content(render_draft)
   4.206 -      else
   4.207 -        return record.current_draft.content
   4.208 -      end
   4.209 -    end
   4.210 -  }
   4.211 -}
   4.212 -
   4.213 -util.autoapi{
   4.214 -  relation_name = "initiative",
   4.215 -  selector      = initiatives_selector,
   4.216 -  fields        = fields,
   4.217 -  api_engine    = api_engine
   4.218 -}
   4.219 \ No newline at end of file
     5.1 --- a/app/main/api/suggestion.lua	Sun Apr 15 12:37:34 2012 +0200
     5.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.3 @@ -1,67 +0,0 @@
     5.4 -local id     = param.get("id")
     5.5 -local min_id = param.get("min_id")
     5.6 -local max_id = param.get("max_id")
     5.7 -local initiative_id = param.get("initiative_id")
     5.8 -local order  = param.get("order")
     5.9 -local limit  = param.get("limit", atom.integer)
    5.10 -
    5.11 -local suggestions_selector = Suggestion:new_selector()
    5.12 -
    5.13 -if id then
    5.14 -  suggestions_selector:add_where{"suggestion.id = ?", id}
    5.15 -end
    5.16 -
    5.17 -if min_id then
    5.18 -  suggestions_selector:add_where{"suggestion.id >= ?", min_id}
    5.19 -end
    5.20 -
    5.21 -if max_id then
    5.22 -  suggestions_selector:add_where{"suggestion.id <= ?", max_id}
    5.23 -end
    5.24 -
    5.25 -if initiative_id then
    5.26 -  suggestions_selector:add_where{"suggestion.initiative_id = ?", initiative_id}
    5.27 -end
    5.28 -
    5.29 -if order == "created_desc" then
    5.30 -  suggestions_selector:add_order_by("suggestion.created DESC")
    5.31 -elseif order == "created_asc" or order == "created" then
    5.32 -  suggestions_selector:add_order_by("suggestion.id")
    5.33 -elseif order == "id_desc" then
    5.34 -  suggestions_selector:add_order_by("suggestion.id DESC")
    5.35 -else
    5.36 -  suggestions_selector:add_order_by("suggestion.id")
    5.37 -end
    5.38 -
    5.39 -if limit then
    5.40 -  suggestions_selector:limit(limit)
    5.41 -end
    5.42 -
    5.43 -local api_engine = param.get("api_engine") or "xml"
    5.44 -
    5.45 -local fields = {
    5.46 -
    5.47 -  { name = "id",                       field = "suggestion.id" },
    5.48 -  { name = "initiative_id",            field = "suggestion.initiative_id" },
    5.49 -  { name = "created",                  field = "suggestion.created" },
    5.50 --- FIXME: private api
    5.51 ---  { name = "author_id",                field = "suggestion.author_id" },
    5.52 -  { name = "name",                     field = "suggestion.name" },
    5.53 -  { name = "description",              field = "suggestion.description" },
    5.54 -  { name = "minus2_unfulfilled_count", field = "suggestion.minus2_unfulfilled_count" },
    5.55 -  { name = "minus2_fulfilled_count",   field = "suggestion.minus2_fulfilled_count" },
    5.56 -  { name = "minus1_unfulfilled_count", field = "suggestion.minus1_unfulfilled_count" },
    5.57 -  { name = "minus1_fulfilled_count",   field = "suggestion.minus1_fulfilled_count" },
    5.58 -  { name = "plus1_unfulfilled_count",  field = "suggestion.plus1_unfulfilled_count" },
    5.59 -  { name = "plus1_fulfilled_count",    field = "suggestion.plus1_fulfilled_count" },
    5.60 -  { name = "plus2_unfulfilled_count",  field = "suggestion.plus2_unfulfilled_count" },
    5.61 -  { name = "plus2_fulfilled_count",    field = "suggestion.plus2_fulfilled_count" },
    5.62 -
    5.63 -}
    5.64 -
    5.65 -util.autoapi{
    5.66 -  relation_name = "suggestion",
    5.67 -  selector      = suggestions_selector,
    5.68 -  fields        = fields,
    5.69 -  api_engine    = api_engine
    5.70 -}
    5.71 \ No newline at end of file

Impressum / About Us