liquid_feedback_frontend

changeset 1635:bbb537ba81b2

Added new API endpoint avatar
author bsw
date Mon Feb 08 16:26:21 2021 +0100 (2021-02-08)
parents 96336212e94d
children 8e4fed876772
files app/main/api/avatar.lua env/request/router.lua
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/app/main/api/avatar.lua	Mon Feb 08 16:26:21 2021 +0100
     1.3 @@ -0,0 +1,45 @@
     1.4 +slot.set_layout(nil, "application/json")
     1.5 +
     1.6 +if not (
     1.7 +  app.scopes.read_authors
     1.8 +  or app.scopes.read_identities 
     1.9 +  or app.scopes.read_profiles
    1.10 +) then
    1.11 +  return util.api_error(403, "Forbidden", "insufficient_scope", "Scope read_authors or read_identities or read_profiles required")
    1.12 +end
    1.13 +
    1.14 +local r = json.object{
    1.15 +  result = json.array()
    1.16 +}
    1.17 +
    1.18 +local selector = MemberImage:new_selector()
    1.19 +  :add_where("image_type = 'avatar'")
    1.20 +  :add_where("scaled")
    1.21 +  :optional_object_mode()
    1.22 +
    1.23 +local member_id = param.get("member_id")
    1.24 +if member_id then
    1.25 +  selector:add_where{ "member_id = ?", member_id }
    1.26 +else
    1.27 +  return util.api_error(404, "Missing parameter", "no_member_id", "No member_id provided")
    1.28 +end
    1.29 +
    1.30 +local member_image = selector:exec()
    1.31 +
    1.32 +local data
    1.33 +local content_type
    1.34 +
    1.35 +if member_image then
    1.36 +  data = member_image.data
    1.37 +  content_type = member_image.content_type
    1.38 +else
    1.39 +  local filename = WEBMCP_BASE_PATH .. "static/avatar.jpg"
    1.40 +  local f = assert(io.open(filename), "Cannot open default image file")
    1.41 +  data = f:read("*a")
    1.42 +  content_type = "image/jpeg"
    1.43 +  f:close()
    1.44 +end
    1.45 +
    1.46 +slot.set_layout(nil, "image/jpeg")
    1.47 +slot.put_into("data", data)
    1.48 +
     2.1 --- a/env/request/router.lua	Mon Feb 08 15:45:10 2021 +0100
     2.2 +++ b/env/request/router.lua	Mon Feb 08 16:26:21 2021 +0100
     2.3 @@ -5,6 +5,7 @@
     2.4    application = true,
     2.5    info = true,
     2.6    member = true,
     2.7 +  avatar = true,
     2.8    notify_email = true,
     2.9    profile_info = true,
    2.10    profile = true,

Impressum / About Us