diff options
Diffstat (limited to 'internal/api')
| -rw-r--r-- | internal/api/server.go | 27 | 
1 files changed, 18 insertions, 9 deletions
diff --git a/internal/api/server.go b/internal/api/server.go index 8af9e75fa..8e22742bb 100644 --- a/internal/api/server.go +++ b/internal/api/server.go @@ -19,16 +19,19 @@  package api  import ( -	"net/http" +	"fmt" +	"os" +	"path/filepath" +	"github.com/gin-contrib/sessions" +	"github.com/gin-contrib/sessions/memstore"  	"github.com/gin-gonic/gin"  	"github.com/gotosocial/gotosocial/internal/config"  	"github.com/sirupsen/logrus"  )  type Server interface { -	AttachHTTPHandler(method string, path string, handler http.HandlerFunc) -	AttachGinHandler(method string, path string, handler gin.HandlerFunc) +	AttachHandler(method string, path string, handler gin.HandlerFunc)  	// AttachMiddleware(handler gin.HandlerFunc)  	GetAPIGroup() *gin.RouterGroup  	Start() @@ -60,16 +63,22 @@ func (s *server) Stop() {  	// todo: shut down gracefully  } -func (s *server) AttachHTTPHandler(method string, path string, handler http.HandlerFunc) { -	s.engine.Handle(method, path, gin.WrapH(handler)) -} - -func (s *server) AttachGinHandler(method string, path string, handler gin.HandlerFunc) { -	s.engine.Handle(method, path, handler) +func (s *server) AttachHandler(method string, path string, handler gin.HandlerFunc) { +	if method == "ANY" { +		s.engine.Any(path, handler) +	} else { +		s.engine.Handle(method, path, handler) +	}  }  func New(config *config.Config, logger *logrus.Logger) Server {  	engine := gin.New() +	store := memstore.NewStore([]byte("authentication-key"), []byte("encryption-keyencryption-key----")) +	engine.Use(sessions.Sessions("gotosocial-session", store)) +	cwd, _ := os.Getwd() +	tmPath := filepath.Join(cwd, fmt.Sprintf("%s*", config.TemplateConfig.BaseDir)) +	logger.Debugf("loading templates from %s", tmPath) +	engine.LoadHTMLGlob(tmPath)  	return &server{  		APIGroup: engine.Group("/api").Group("/v1"),  		logger:   logger,  | 
