From 5f00d4980bdc55bce8d23e38392b345d525dbf4a Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Thu, 23 Jun 2022 16:54:54 +0200 Subject: [feature] Implement `/api/v1/instance/peers` endpoint (#660) * add missing license headers * start adding instance peers get * rename domainblock.go * embed domain in domainblock so it can be reused * update swagger docs * add test instances to db * update tests * add/update instancepeersget * update domain model * add getinstancepeers to db * instance-expose-peers, instance-expose-suspended * add auth checks for both current filters * attach endpoint to router * include public comment * obfuscate domain if required * go mod tidy * update swagger docs * remove unnecessary comment * return 'flat' peerlist if no query params provided --- internal/api/client/instance/instance.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'internal/api/client/instance/instance.go') diff --git a/internal/api/client/instance/instance.go b/internal/api/client/instance/instance.go index 758cce376..16ff7c9f9 100644 --- a/internal/api/client/instance/instance.go +++ b/internal/api/client/instance/instance.go @@ -1,3 +1,21 @@ +/* + GoToSocial + Copyright (C) 2021-2022 GoToSocial Authors admin@gotosocial.org + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + package instance import ( @@ -11,6 +29,10 @@ import ( const ( // InstanceInformationPath is for serving instance info requests InstanceInformationPath = "api/v1/instance" + // InstancePeersPath is for serving instance peers requests. + InstancePeersPath = InstanceInformationPath + "/peers" + // PeersFilterKey is used to provide filters to /api/v1/instance/peers + PeersFilterKey = "filter" ) // Module implements the ClientModule interface @@ -29,5 +51,6 @@ func New(processor processing.Processor) api.ClientModule { func (m *Module) Route(s router.Router) error { s.AttachHandler(http.MethodGet, InstanceInformationPath, m.InstanceInformationGETHandler) s.AttachHandler(http.MethodPatch, InstanceInformationPath, m.InstanceUpdatePATCHHandler) + s.AttachHandler(http.MethodGet, InstancePeersPath, m.InstancePeersGETHandler) return nil } -- cgit v1.2.3