diff --git a/app/controllers/node_info_controller.rb b/app/controllers/node_info_controller.rb index bb0aaa14f..cee50ff8a 100644 --- a/app/controllers/node_info_controller.rb +++ b/app/controllers/node_info_controller.rb @@ -1,7 +1,4 @@ class NodeInfoController < ApplicationController - respond_to :json - respond_to :html, only: :statistics - def jrd render json: NodeInfo.jrd(CGI.unescape(node_info_url("123.123").sub("123.123", "%{version}"))) end @@ -16,9 +13,6 @@ class NodeInfoController < ApplicationController end def statistics - respond_to do |format| - format.json { render json: StatisticsPresenter.new } - format.all { @statistics = NodeInfoPresenter.new("1.0") } - end + @statistics = NodeInfoPresenter.new("1.0") end end diff --git a/app/presenters/statistics_presenter.rb b/app/presenters/statistics_presenter.rb deleted file mode 100644 index e6382850c..000000000 --- a/app/presenters/statistics_presenter.rb +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright (c) 2010-2011, Diaspora Inc. This file is -# licensed under the Affero General Public License version 3 or later. See -# the COPYRIGHT file. - -# TODO: Drop after 0.6 -class StatisticsPresenter < NodeInfoPresenter - def initialize - super("1.0") - end - - def as_json(_options={}) - base_data.merge(user_counts) - .merge(post_counts) - .merge(comment_counts) - end - - def base_data - { - "name" => name, - "network" => "Diaspora", - "version" => version, - "registrations_open" => open_registrations?, - "services" => available_services - } - end - - def user_counts - return {} unless expose_user_counts? - { - "total_users" => total_users, - "active_users_monthly" => monthly_users, - "active_users_halfyear" => halfyear_users - } - end - - def post_counts - return {} unless expose_posts_counts? - { - "local_posts" => local_posts - } - end - - def comment_counts - return {} unless expose_comment_counts? - { - "local_comments" => local_comments - } - end -end diff --git a/spec/controllers/node_info_controller_spec.rb b/spec/controllers/node_info_controller_spec.rb index be7ca72a5..a9e0a86ec 100644 --- a/spec/controllers/node_info_controller_spec.rb +++ b/spec/controllers/node_info_controller_spec.rb @@ -51,17 +51,6 @@ describe NodeInfoController do end describe "#statistics" do - it "responds to format json" do - get :statistics, format: "json" - expect(response.code).to eq("200") - end - - it "contains json" do - get :statistics, format: "json" - json = JSON.parse(response.body) - expect(json["name"]).to be_present - end - it "responds to html" do get :statistics, format: "html" expect(response.code).to eq("200") diff --git a/spec/presenters/statistics_presenter_spec.rb b/spec/presenters/statistics_presenter_spec.rb deleted file mode 100644 index b0d1143e8..000000000 --- a/spec/presenters/statistics_presenter_spec.rb +++ /dev/null @@ -1,110 +0,0 @@ -describe StatisticsPresenter do - before do - @presenter = StatisticsPresenter.new - end - - describe "#as_json" do - it "works" do - expect(@presenter.as_json).to be_present - expect(@presenter.as_json).to be_a Hash - end - end - - describe "#statistics contents" do - before do - AppConfig.privacy.statistics.user_counts = false - AppConfig.privacy.statistics.post_counts = false - AppConfig.privacy.statistics.comment_counts = false - end - - it "provides generic pod data in json" do - expect(@presenter.as_json).to eq( - "name" => AppConfig.settings.pod_name, - "network" => "Diaspora", - "version" => AppConfig.version_string, - "registrations_open" => AppConfig.settings.enable_registrations?, - "services" => AppConfig.configured_services.map(&:to_s) - ) - end - - context "when services are enabled" do - before do - AppConfig.services = { - "facebook" => { - "enable" => true, - "authorized" => true - }, - "twitter" => {"enable" => true}, - "wordpress" => {"enable" => false}, - "tumblr" => { - "enable" => true, - "authorized" => false - } - } - end - - it "provides services in json" do - expect(@presenter.as_json).to eq( - "name" => AppConfig.settings.pod_name, - "network" => "Diaspora", - "version" => AppConfig.version_string, - "registrations_open" => AppConfig.settings.enable_registrations?, - "services" => %w(twitter facebook) - ) - end - end - - context "when some services are set to username authorized" do - before do - AppConfig.services = { - "facebook" => { - "enable" => true, - "authorized" => "bob" - }, - "twitter" => {"enable" => true}, - "wordpress" => { - "enable" => true, - "authorized" => "alice" - }, - "tumblr" => { - "enable" => true, - "authorized" => false - } - } - end - - it "provides services in json" do - expect(@presenter.as_json).to eq( - "name" => AppConfig.settings.pod_name, - "network" => "Diaspora", - "version" => AppConfig.version_string, - "registrations_open" => AppConfig.settings.enable_registrations?, - "services" => ["twitter"] - ) - end - end - - context "when counts are enabled" do - before do - AppConfig.privacy.statistics.user_counts = true - AppConfig.privacy.statistics.post_counts = true - AppConfig.privacy.statistics.comment_counts = true - end - - it "provides generic pod data and counts in json" do - expect(@presenter.as_json).to eq( - "name" => AppConfig.settings.pod_name, - "network" => "Diaspora", - "version" => AppConfig.version_string, - "registrations_open" => AppConfig.settings.enable_registrations?, - "total_users" => User.active.count, - "active_users_halfyear" => User.halfyear_actives.count, - "active_users_monthly" => User.monthly_actives.count, - "local_posts" => @presenter.local_posts, - "local_comments" => @presenter.local_comments, - "services" => AppConfig.configured_services.map(&:to_s) - ) - end - end - end -end