able to list products
This commit is contained in:
50
cmd/dev/sravnicli/core.go
Normal file
50
cmd/dev/sravnicli/core.go
Normal file
@ -0,0 +1,50 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log/slog"
|
||||
"os"
|
||||
|
||||
"git.loyso.art/frx/kurious/internal/infrastructure/interfaceadapters/courses/sravni"
|
||||
|
||||
"github.com/teris-io/cli"
|
||||
)
|
||||
|
||||
const (
|
||||
debugOptName = "verbose"
|
||||
jsonOptName = "json"
|
||||
)
|
||||
|
||||
var limitOption = cli.NewOption("limit", "Limits amount of items to return").WithType(cli.TypeInt)
|
||||
var offsetOption = cli.NewOption("offset", "Offsets items to return").WithType(cli.TypeInt)
|
||||
|
||||
func makeLogger(options map[string]string) *slog.Logger {
|
||||
level := slog.LevelInfo
|
||||
if _, ok := options[debugOptName]; ok {
|
||||
level = slog.LevelDebug
|
||||
}
|
||||
|
||||
opts := slog.HandlerOptions{
|
||||
Level: level,
|
||||
}
|
||||
|
||||
var h slog.Handler
|
||||
if _, ok := options[jsonOptName]; ok {
|
||||
h = slog.NewJSONHandler(os.Stdout, &opts)
|
||||
} else {
|
||||
h = slog.NewTextHandler(os.Stdout, &opts)
|
||||
}
|
||||
|
||||
return slog.New(h)
|
||||
}
|
||||
|
||||
func makeSravniClient(ctx context.Context, log *slog.Logger, options map[string]string) (sravni.Client, error) {
|
||||
_, isDebug := options[debugOptName]
|
||||
client, err := sravni.NewClient(ctx, log, isDebug)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("making new client: %w", err)
|
||||
}
|
||||
|
||||
return client, nil
|
||||
}
|
||||
Reference in New Issue
Block a user