df/bff/gw/server.go
itsscb d7b4f66e38 ft/adds document upload
adds http.endpoint
replaces net/http with gin as gateway
moves gateway server into separate package
2023-10-11 03:28:30 +02:00

48 lines
995 B
Go

package gw
import (
"fmt"
"log"
"net/http"
"github.com/gin-gonic/gin"
db "github.com/itsscb/df/bff/db/sqlc"
"github.com/itsscb/df/bff/gapi"
"github.com/itsscb/df/bff/token"
"github.com/itsscb/df/bff/util"
)
type Server struct {
Grpc gapi.Server
store db.Store
config util.Config
tokenMaker token.Maker
swaggerFS http.FileSystem
}
func NewServer(config util.Config, store db.Store, swaggerFS http.FileSystem) (*Server, error) {
gprcServer, err := gapi.NewServer(config, store)
if err != nil {
log.Fatal("cannot create gateway gPRC server")
}
tokenMaker, err := token.NewPasetoMaker(config.TokenPrivateKeyHex)
if err != nil {
return nil, fmt.Errorf("cannot create token maker for gateway server: %w", err)
}
server := &Server{
Grpc: *gprcServer,
store: store,
config: config,
tokenMaker: tokenMaker,
swaggerFS: swaggerFS,
}
return server, nil
}
func errorResponse(err error) gin.H {
return gin.H{"error": err.Error()}
}