diff options
Diffstat (limited to 'http/server.go')
-rw-r--r-- | http/server.go | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/http/server.go b/http/server.go deleted file mode 100644 index 7d18085..0000000 --- a/http/server.go +++ /dev/null @@ -1,96 +0,0 @@ -package http - -import ( - "io" - "net/http" - - "git.capotej.com/capotej/communique/registry" - "github.com/gin-gonic/gin" -) - -// TODO rename to Router and router.go -type Server struct { - registry *registry.Registry -} - -func NewServer(registry *registry.Registry) *Server { - return &Server{registry: registry} -} - -func (s *Server) Start(zapWriter io.Writer) { - router := gin.Default() - router.SetTrustedProxies(nil) - gin.DisableConsoleColor() - gin.DefaultWriter = zapWriter // send gin logs to zap - - // Webfinger - router.GET("/.well-known/webfinger", func(c *gin.Context) { - resourceParam := c.Query("resource") - resource, _ := s.registry.WebfingerResource(resourceParam) - if resource != nil { - c.JSON(http.StatusOK, resource) - } else { - c.JSON(http.StatusNotFound, nil) - } - - }) - - // "User" endpoint - router.GET("/actors/:actor", func(c *gin.Context) { - actorParam := c.Param("actor") - resource, _ := s.registry.Profile(actorParam) - if resource != nil { - c.Writer.Header().Set("Content-Type", "application/activity+json") - c.JSON(http.StatusOK, resource) - } else { - c.JSON(http.StatusNotFound, nil) - } - - }) - - // // Inbox - // router.POST("/actors/:actor/inbox", func(c *gin.Context) { - // actorParam := c.Param("actor") - // resource := s.registry.Inbox(actorParam) - // if resource != nil { - // c.JSON(http.StatusOK, resource) - // } else { - // c.JSON(http.StatusNotFound, nil) - // } - - // }) - - // Outbox - router.GET("/actors/:actor/outbox", func(c *gin.Context) { - actorParam := c.Param("actor") - var resource map[string]interface{} - if c.Query("page") == "true" { - resource, _ = s.registry.OutboxCollection(actorParam) - } else { - resource, _ = s.registry.Outbox(actorParam) - } - if resource != nil { - c.JSON(http.StatusOK, resource) - c.Writer.Header().Set("Content-Type", "application/activity+json") - } else { - c.JSON(http.StatusNotFound, nil) - } - }) - - // Single activity - router.GET("/actors/:actor/outbox/:id/activity", func(c *gin.Context) { - actorParam := c.Param("actor") - idParam := c.Param("id") - var resource map[string]interface{} - resource, _ = s.registry.Activity(actorParam, idParam) - - if resource != nil { - c.Writer.Header().Set("Content-Type", "application/activity+json") - c.JSON(http.StatusOK, resource) - } else { - c.JSON(http.StatusNotFound, nil) - } - }) - - router.Run() -} |