55 lines
1.1 KiB
Ruby
55 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class WellKnown::NodeInfoController < ApplicationController
|
|
def discovery
|
|
expires_in 3.days, public: true
|
|
|
|
render json: {
|
|
links: [
|
|
rel: "http://nodeinfo.diaspora.software/ns/schema/2.1",
|
|
href: node_info_url
|
|
],
|
|
}
|
|
end
|
|
|
|
def nodeinfo
|
|
expires_in 30.minutes, public: true
|
|
|
|
render json: {
|
|
version: "2.1",
|
|
software: software_info,
|
|
protocols: %i[],
|
|
services: {
|
|
inbound: inbound_services,
|
|
outbound: outbound_services,
|
|
},
|
|
usage: usage_stats,
|
|
# We don't implement this so we can always return true for now
|
|
openRegistrations: true,
|
|
metadata: {},
|
|
}
|
|
end
|
|
|
|
private
|
|
|
|
def software_info
|
|
{
|
|
name: "Retrospring",
|
|
version: Retrospring::Version.to_s,
|
|
repository: "https://github.com/Retrospring/retrospring",
|
|
}
|
|
end
|
|
|
|
def usage_stats
|
|
{
|
|
users: {
|
|
total: User.count,
|
|
},
|
|
}
|
|
end
|
|
|
|
def inbound_services = []
|
|
|
|
def outbound_services = []
|
|
end
|