diff options
Diffstat (limited to 'internal/api/client')
| -rw-r--r-- | internal/api/client/instance/instance.go | 38 | ||||
| -rw-r--r-- | internal/api/client/instance/instanceget.go | 20 | 
2 files changed, 58 insertions, 0 deletions
diff --git a/internal/api/client/instance/instance.go b/internal/api/client/instance/instance.go new file mode 100644 index 000000000..ed7c18718 --- /dev/null +++ b/internal/api/client/instance/instance.go @@ -0,0 +1,38 @@ +package instance + +import ( +	"net/http" + +	"github.com/sirupsen/logrus" +	"github.com/superseriousbusiness/gotosocial/internal/api" +	"github.com/superseriousbusiness/gotosocial/internal/config" +	"github.com/superseriousbusiness/gotosocial/internal/message" +	"github.com/superseriousbusiness/gotosocial/internal/router" +) + +const ( +	// InstanceInformationPath +	InstanceInformationPath = "api/v1/instance" +) + +// Module implements the ClientModule interface +type Module struct { +	config    *config.Config +	processor message.Processor +	log       *logrus.Logger +} + +// New returns a new instance information module +func New(config *config.Config, processor message.Processor, log *logrus.Logger) api.ClientModule { +	return &Module{ +		config:    config, +		processor: processor, +		log:       log, +	} +} + +// Route satisfies the ClientModule interface +func (m *Module) Route(s router.Router) error { +	s.AttachHandler(http.MethodGet, InstanceInformationPath, m.InstanceInformationGETHandler) +	return nil +} diff --git a/internal/api/client/instance/instanceget.go b/internal/api/client/instance/instanceget.go new file mode 100644 index 000000000..f8e82c096 --- /dev/null +++ b/internal/api/client/instance/instanceget.go @@ -0,0 +1,20 @@ +package instance + +import ( +	"net/http" + +	"github.com/gin-gonic/gin" +) + +func (m *Module) InstanceInformationGETHandler(c *gin.Context) { +	l := m.log.WithField("func", "InstanceInformationGETHandler") + +	instance, err := m.processor.InstanceGet(m.config.Host) +	if err != nil { +		l.Debugf("error getting instance from processor: %s", err) +		c.JSON(http.StatusInternalServerError, gin.H{"error": "internal server error"}) +		return +	} + +	c.JSON(http.StatusOK, instance) +}  | 
