Skip to content

Commit

Permalink
✨ Add support for outputFile handler
Browse files Browse the repository at this point in the history
  • Loading branch information
wesen committed Jul 3, 2023
1 parent 6956188 commit baa44d1
Show file tree
Hide file tree
Showing 11 changed files with 421 additions and 202 deletions.
179 changes: 94 additions & 85 deletions cmd/parka/cmds/examples.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,102 +7,111 @@ import (
"github.com/go-go-golems/glazed/pkg/cmds/layers"
"github.com/go-go-golems/glazed/pkg/cmds/parameters"
"github.com/go-go-golems/glazed/pkg/middlewares"
"github.com/go-go-golems/glazed/pkg/settings"
"github.com/go-go-golems/glazed/pkg/types"
"github.com/spf13/cobra"
)

type ExampleCommand struct {
description *cmds.CommandDescription
}

func NewExampleCommand() *ExampleCommand {
return &ExampleCommand{
description: &cmds.CommandDescription{
Name: "example",
Short: "Short parka example command",
Long: "",
Flags: []*parameters.ParameterDefinition{
// required string test argument
{
Name: "test",
ShortFlag: "t",
Type: parameters.ParameterTypeString,
Help: "Test string argument",
Default: "test",
},
{
Name: "string",
ShortFlag: "s",
Type: parameters.ParameterTypeString,
Help: "Test string flag",
Default: "default",
Required: false,
},
{
Name: "string_from_file",
Type: parameters.ParameterTypeStringFromFile,
Help: "Test string from file flag",
},
{
Name: "object_from_file",
Type: parameters.ParameterTypeObjectFromFile,
Help: "Test object from file flag",
},
{
Name: "integer",
ShortFlag: "i",
Type: parameters.ParameterTypeInteger,
Help: "Test integer flag",
Default: 1,
},
{
Name: "float",
ShortFlag: "f",
Type: parameters.ParameterTypeFloat,
Help: "Test float flag",
Default: 1.0,
},
{
Name: "bool",
ShortFlag: "b",
Type: parameters.ParameterTypeBool,
Help: "Test bool flag",
},
{
Name: "date",
ShortFlag: "d",
Type: parameters.ParameterTypeDate,
Help: "Test date flag",
},
{
Name: "string_list",
ShortFlag: "l",
Type: parameters.ParameterTypeStringList,
Help: "Test string list flag",
Default: []string{"default", "default2"},
},
{
Name: "integer_list",
Type: parameters.ParameterTypeIntegerList,
Help: "Test integer list flag",
Default: []int{1, 2},
},
{
Name: "float_list",
Type: parameters.ParameterTypeFloatList,
Help: "Test float list flag",
Default: []float64{1.0, 2.0},
},
{
Name: "choice",
ShortFlag: "c",
Type: parameters.ParameterTypeChoice,
Help: "Test choice flag",
Choices: []string{"choice1", "choice2"},
Default: "choice1",
},
glazedParameterLayer, err := settings.NewGlazedParameterLayers()
cobra.CheckErr(err)

description := &cmds.CommandDescription{
Name: "example",
Short: "Short parka example command",
Long: "",
Flags: []*parameters.ParameterDefinition{
// required string test argument
{
Name: "test",
ShortFlag: "t",
Type: parameters.ParameterTypeString,
Help: "Test string argument",
Default: "test",
},
{
Name: "string",
ShortFlag: "s",
Type: parameters.ParameterTypeString,
Help: "Test string flag",
Default: "default",
Required: false,
},
{
Name: "string_from_file",
Type: parameters.ParameterTypeStringFromFile,
Help: "Test string from file flag",
},
{
Name: "object_from_file",
Type: parameters.ParameterTypeObjectFromFile,
Help: "Test object from file flag",
},
{
Name: "integer",
ShortFlag: "i",
Type: parameters.ParameterTypeInteger,
Help: "Test integer flag",
Default: 1,
},
{
Name: "float",
ShortFlag: "f",
Type: parameters.ParameterTypeFloat,
Help: "Test float flag",
Default: 1.0,
},
{
Name: "bool",
ShortFlag: "b",
Type: parameters.ParameterTypeBool,
Help: "Test bool flag",
},
{
Name: "date",
ShortFlag: "d",
Type: parameters.ParameterTypeDate,
Help: "Test date flag",
},
{
Name: "string_list",
ShortFlag: "l",
Type: parameters.ParameterTypeStringList,
Help: "Test string list flag",
Default: []string{"default", "default2"},
},
{
Name: "integer_list",
Type: parameters.ParameterTypeIntegerList,
Help: "Test integer list flag",
Default: []int{1, 2},
},
{
Name: "float_list",
Type: parameters.ParameterTypeFloatList,
Help: "Test float list flag",
Default: []float64{1.0, 2.0},
},
{
Name: "choice",
ShortFlag: "c",
Type: parameters.ParameterTypeChoice,
Help: "Test choice flag",
Choices: []string{"choice1", "choice2"},
Default: "choice1",
},
},
Layers: []layers.ParameterLayer{
glazedParameterLayer,
},
}
return &ExampleCommand{
description: description,
}
}

func (e *ExampleCommand) Run(
Expand Down
4 changes: 3 additions & 1 deletion cmd/parka/cmds/serve.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"github.com/go-go-golems/glazed/pkg/types"
"github.com/go-go-golems/parka/pkg/glazed/handlers/datatables"
json2 "github.com/go-go-golems/parka/pkg/glazed/handlers/json"
output_file "github.com/go-go-golems/parka/pkg/glazed/handlers/output-file"
"github.com/go-go-golems/parka/pkg/render"
"github.com/go-go-golems/parka/pkg/server"
"github.com/go-go-golems/parka/pkg/utils/fs"
Expand Down Expand Up @@ -72,7 +73,8 @@ var ServeCmd = &cobra.Command{
// NOTE(manuel, 2023-05-26) This could also be done with a simple Command config file struct once
// implemented as part of sqleton serve
s.Router.GET("/api/example", json2.HandleJSONQueryHandler(NewExampleCommand()))
s.Router.GET("/sqleton/example", datatables.HandleDataTables(NewExampleCommand(), "", "example"))
s.Router.GET("/example", datatables.HandleDataTables(NewExampleCommand(), "", "example"))
s.Router.GET("/download/example.csv", output_file.HandleGlazedOutputFileHandler(NewExampleCommand(), "example.csv"))

ctx, cancel := context.WithCancel(context.Background())
defer cancel()
Expand Down
56 changes: 0 additions & 56 deletions pkg/glazed/handler.go

This file was deleted.

2 changes: 1 addition & 1 deletion pkg/glazed/handlers/datatables/datatables.go
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ func (qh *QueryHandler) Handle(c *gin.Context, w io.Writer) error {
dt_.HTMLStream = make(chan template.HTML, 100)
}

gp, err := handlers.CreateTableProcessor(pc, "table", "")
gp, err := handlers.CreateTableProcessorWithOutput(pc, "table", "")
if err != nil {
return err
}
Expand Down
Loading

0 comments on commit baa44d1

Please sign in to comment.