Skip to content

Commit

Permalink
Merge pull request #2 from conradludgate/add-http-drivers
Browse files Browse the repository at this point in the history
add serverless http drivers
  • Loading branch information
petuhovskiy authored Feb 22, 2024
2 parents 112ff73 + 7044994 commit 3bf9bbb
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 3 deletions.
8 changes: 5 additions & 3 deletions internal/drivers/models.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ type SingleQuery struct {
type Name string

const (
PgxConn = Name("pgx-conn")
GoServerless = Name("go-serverless")
VercelEdge = Name("vercel-edge")
PgxConn = Name("pgx-conn")
GoServerless = Name("go-serverless")
VercelEdge = Name("vercel-edge")
VercelEdgeHTTP07 = Name("vercel-edge=http07")
VercelEdgeHTTP08 = Name("vercel-edge=http08")
)
18 changes: 18 additions & 0 deletions internal/drivers/vercel_sl.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ import (
)

const defaultAPIURL = "https://sl-driver.vercel.app/api/query"
const defaultAPIURLHTTP07 = "https://sl-driver.vercel.app/api/v07/http_query"
const defaultAPIURLHTTP08 = "https://sl-driver.vercel.app/api/v08/http_query"

type slRequest struct {
ConnStr string `json:"connstr"`
Expand Down Expand Up @@ -58,6 +60,22 @@ func NewVercelSL(connstr string, saver QuerySaver) *VercelSL {
}
}

func NewVercelSLHTTP07(connstr string, saver QuerySaver) *VercelSL {
return &VercelSL{
connstr: connstr,
apiURL: defaultAPIURLHTTP07,
saver: saver,
}
}

func NewVercelSLHTTP08(connstr string, saver QuerySaver) *VercelSL {
return &VercelSL{
connstr: connstr,
apiURL: defaultAPIURLHTTP08,
saver: saver,
}
}

func (s *VercelSL) Query(ctx context.Context, singleQuery SingleQuery) (*models.Query, error) {
res, err := s.Queries(ctx, singleQuery)
var q *models.Query
Expand Down
8 changes: 8 additions & 0 deletions internal/rules/query_project.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ var defaultDrivers = rdesc.Wrand[drivers.Name]{
{Weight: 1, Item: drivers.PgxConn},
{Weight: 1, Item: drivers.GoServerless},
{Weight: 1, Item: drivers.VercelEdge},
{Weight: 1, Item: drivers.VercelEdgeHTTP07},
{Weight: 1, Item: drivers.VercelEdgeHTTP08},
}

func NewQueryProject(a *app.App, j json.RawMessage) (*QueryProject, error) {
Expand Down Expand Up @@ -225,6 +227,12 @@ func (r *QueryProject) randomDriver(ctx context.Context, project models.Project,
case drivers.VercelEdge:
log.Info(ctx, "using vercel-sl driver")
return drivers.NewVercelSL(connstr, saver), nil
case drivers.VercelEdgeHTTP07:
log.Info(ctx, "using vercel-sl driver")
return drivers.NewVercelSLHTTP07(connstr, saver), nil
case drivers.VercelEdgeHTTP08:
log.Info(ctx, "using vercel-sl driver")
return drivers.NewVercelSLHTTP08(connstr, saver), nil
}

return nil, fmt.Errorf("unknown driver: %s", driverName)
Expand Down

0 comments on commit 3bf9bbb

Please sign in to comment.