liquid_feedback_frontend

annotate app/main/api/_member.lua @ 1500:71f54c43d7cb

Added API support interface
author bsw
date Tue Mar 24 16:59:32 2020 +0100 (2020-03-24)
parents 32cc544d5a5b
children 2a0d86117d54
rev   line source
bsw/jbe@1309 1 local members = param.get("members", "table")
bsw/jbe@1309 2
bsw/jbe@1309 3 local include_profile = param.get("include_profile", atom.boolean)
bsw/jbe@1309 4
bsw/jbe@1309 5 if include_profile and not app.scopes.read_profiles then
bsw/jbe@1309 6 return util.api_error(403, "Forbidden", "insufficient_scope", "Scope read_profiles required")
bsw/jbe@1309 7 end
bsw/jbe@1309 8
bsw/jbe@1309 9 local fields = {}
bsw/jbe@1309 10
bsw/jbe@1309 11 if app.scopes.read_authors or app.scopes.read_identities then
bsw/jbe@1309 12 fields = { "id", "created", "last_activity", "admin", "name", "location" }
bsw/jbe@1309 13 end
bsw/jbe@1309 14
bsw/jbe@1309 15 if app.scopes.read_identities then
bsw/jbe@1309 16 fields[#fields+1] = "identification"
bsw/jbe@1309 17 end
bsw/jbe@1309 18
bsw/jbe@1309 19 local r = json.array()
bsw/jbe@1309 20
bsw/jbe@1309 21 if app.scopes.read_identities then
bsw/jbe@1309 22
bsw/jbe@1309 23 if include_profile then
bsw/jbe@1309 24 members:load("profile")
bsw/jbe@1309 25 end
bsw/jbe@1309 26
bsw/jbe@1309 27 for i, member in ipairs(members) do
bsw/jbe@1309 28 local m = json.object()
bsw/jbe@1309 29 for j, field in ipairs(fields) do
bsw/jbe@1309 30 local value = member[field]
bsw/jbe@1309 31 if value == nil then
bsw/jbe@1309 32 value = json.null
bsw/jbe@1309 33 else
bsw/jbe@1309 34 value = tostring(value)
bsw/jbe@1309 35 end
bsw/jbe@1309 36 m[field] = value
bsw/jbe@1309 37 end
bsw/jbe@1309 38 if include_profile then
bsw/jbe@1309 39 m.profile = execute.chunk{ module = "api", chunk = "_profile", params = { profile = member.profile } }
bsw/jbe@1309 40 end
bsw/jbe@1309 41 r[#r+1] = m
bsw/jbe@1309 42 end
bsw/jbe@1309 43 end
bsw/jbe@1309 44
bsw/jbe@1309 45 return r

Impressum / About Us