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 | module Api | 3 | module Api |
| 2 | module Federation | 4 | module Federation |
| 3 | class Webfinger < Grape::API | 5 | class Webfinger < Grape::API |
| @@ -38,9 +40,29 @@ def request_acct? | @@ -38,9 +40,29 @@ def request_acct? | ||
| 38 | end | 40 | end |
| 39 | 41 | ||
| 40 | def acct_hash | 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 | acct[:subject] = params[:resource] | 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 | if acct[:properties].nil? | 66 | if acct[:properties].nil? |
| 45 | Rails.logger.error 'Person not found' | 67 | Rails.logger.error 'Person not found' |
| 46 | not_found! | 68 | not_found! |