Commit 865242b131a3e54295788d6dad3b340f5f3e9722
1 parent
00b9a4c0
Exists in
federation_webfinger
and in
1 other branch
Adding new fields for webfinger server
Signed-off-by: Alessandro Caetano <alessandro.caetanob@gmail.com>
Showing
1 changed file
with
24 additions
and
2 deletions
Show diff stats
app/api/federation/webfinger.rb
1 | +require 'rails/commands/server' | |
2 | + | |
1 | 3 | module Api |
2 | 4 | module Federation |
3 | 5 | class Webfinger < Grape::API |
... | ... | @@ -38,9 +40,29 @@ def request_acct? |
38 | 40 | end |
39 | 41 | |
40 | 42 | def acct_hash |
41 | - acct = {} | |
43 | + rails = Rails::Server.new | |
44 | + acct = Hash.new{|hash, key| hash[key] = | |
45 | + Hash.new{|hash, key| hash[key] = Array.new}} | |
46 | + | |
47 | + person = Person.find_by_identifier(extract_person_identifier) | |
48 | + url = rails.options[:Host] + ':' + rails.options[:Port].to_s + '/' | |
49 | + | |
42 | 50 | acct[:subject] = params[:resource] |
43 | - acct[:properties] = Person.find_by_identifier(extract_person_identifier) | |
51 | + acct[:alias] = url + person.identifier | |
52 | + acct[:properties][:identifier] = person.identifier | |
53 | + acct[:properties][:created_at] = person.created_at | |
54 | + for blog in person.blogs do | |
55 | + acct[:links][:rel] << url + 'rel/' + blog.path | |
56 | + acct[:links][:href] << url + person.identifier + '/' + blog.path | |
57 | + end | |
58 | + | |
59 | + for galleries in person.articles.galleries do | |
60 | + acct[:links][:rel] << url + 'rel/' + galleries.path | |
61 | + acct[:links][:href] << url + person.identifier + '/' + galleries.path | |
62 | + end | |
63 | + | |
64 | + acct[:titles][:name] = person.name | |
65 | + | |
44 | 66 | if acct[:properties].nil? |
45 | 67 | Rails.logger.error 'Person not found' |
46 | 68 | not_found! | ... | ... |