able to list products

This commit is contained in:
Gitea
2023-11-23 19:13:54 +03:00
parent f382d9e73b
commit 0553ea71c3
11 changed files with 774 additions and 116 deletions

50
cmd/dev/sravnicli/core.go Normal file
View 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
}