diaspora/app/presenters/user_applications_presenter.rb
2016-01-04 16:49:54 +09:00

41 lines
943 B
Ruby

class UserApplicationsPresenter
def initialize(user)
@current_user = user
end
def user_applications
# TODO: Fix and add tests
@applications ||= @current_user.o_auth_applications.each_with_object([]) do |app, array|
array << app_as_json(app)
end
end
def applications_count
user_applications.size
end
def applications?
applications_count > 0
end
private
def app_as_json(application)
{
id: find_id(application),
name: application.client_name,
image: application.image_uri,
authorizations: find_scopes(application)
}
end
def find_scopes(application)
Api::OpenidConnect::Authorization.find_by_client_id_and_user(
application.client_id, @current_user).scopes
end
def find_id(application)
Api::OpenidConnect::Authorization.find_by_client_id_and_user(
application.client_id, @current_user).id
end
end