From 2d6fa7b7ee5431958d35bf930f0279d48b8beb28 Mon Sep 17 00:00:00 2001 From: Thomas Peetz Date: Sun, 27 Sep 2026 03:09:22 +0200 Subject: [PATCH] add rest client --- kontor-gin/cmd/kontor-cli/main.go | 7 ++- kontor-gin/go.mod | 14 +++-- kontor-gin/go.sum | 24 +++++--- kontor-gin/internal/cmd/add-links.go | 21 +++++++ kontor-gin/internal/cmd/check.go | 60 +++++++++++++++++++ kontor-gin/internal/cmd/export.go | 22 +++++++ kontor-gin/internal/cmd/import.go | 21 +++++++ kontor-gin/internal/cmd/root.go | 42 +++++++++++++ kontor-gin/internal/cmd/sync.go | 21 +++++++ kontor-gin/internal/handlers/auth.go | 9 ++- kontor-gin/internal/helpers/token.go | 2 +- kontor-gin/internal/repository/comic.go | 17 +++++- kontor-gin/internal/service/comic.go | 4 +- kontor-gin/{internal => pkg}/schema/admin.go | 0 kontor-gin/{internal => pkg}/schema/base.go | 0 .../{internal => pkg}/schema/database.go | 0 kontor-gin/{internal => pkg}/schema/media.go | 0 17 files changed, 243 insertions(+), 21 deletions(-) create mode 100644 kontor-gin/internal/cmd/add-links.go create mode 100644 kontor-gin/internal/cmd/check.go create mode 100644 kontor-gin/internal/cmd/export.go create mode 100644 kontor-gin/internal/cmd/import.go create mode 100644 kontor-gin/internal/cmd/root.go create mode 100644 kontor-gin/internal/cmd/sync.go rename kontor-gin/{internal => pkg}/schema/admin.go (100%) rename kontor-gin/{internal => pkg}/schema/base.go (100%) rename kontor-gin/{internal => pkg}/schema/database.go (100%) rename kontor-gin/{internal => pkg}/schema/media.go (100%) diff --git a/kontor-gin/cmd/kontor-cli/main.go b/kontor-gin/cmd/kontor-cli/main.go index 31bad7c..15d0131 100644 --- a/kontor-gin/cmd/kontor-cli/main.go +++ b/kontor-gin/cmd/kontor-cli/main.go @@ -1,8 +1,9 @@ package main -import "log/slog" +import ( + "kontor-api-gin/internal/cmd" +) func main() { - slog.Info("Kontor started") - slog.Info("Kontor finished") + cmd.Execute() } diff --git a/kontor-gin/go.mod b/kontor-gin/go.mod index dd392b6..0232096 100644 --- a/kontor-gin/go.mod +++ b/kontor-gin/go.mod @@ -3,13 +3,16 @@ module kontor-api-gin go 1.26.8 require ( + github.com/gin-contrib/cors v1.7.2 github.com/gin-contrib/sessions v1.0.2 github.com/gin-contrib/slog v1.1.0 github.com/gin-gonic/gin v1.10.1 github.com/golang-jwt/jwt/v5 v5.3.1 github.com/google/uuid v1.6.0 + github.com/spf13/cobra v1.10.2 github.com/spf13/viper v1.21.0 golang.org/x/crypto v0.57.0 + golang.org/x/time v0.16.0 gorm.io/driver/postgres v1.6.3 gorm.io/gorm v1.31.2 ) @@ -19,18 +22,18 @@ require ( github.com/bytedance/sonic v1.15.4 // indirect github.com/bytedance/sonic/loader v0.5.2 // indirect github.com/cloudwego/base64x v0.1.7 // indirect - github.com/fsnotify/fsnotify v1.9.0 // indirect + github.com/fsnotify/fsnotify v1.10.1 // indirect github.com/gabriel-vasile/mimetype v1.4.15 // indirect - github.com/gin-contrib/cors v1.7.2 // indirect github.com/gin-contrib/sse v1.1.2 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect github.com/go-playground/validator/v10 v10.22.0 // indirect - github.com/go-viper/mapstructure/v2 v2.4.0 // indirect + github.com/go-viper/mapstructure/v2 v2.5.0 // indirect github.com/goccy/go-json v0.10.6 // indirect github.com/gorilla/context v1.1.2 // indirect github.com/gorilla/securecookie v1.1.2 // indirect github.com/gorilla/sessions v1.4.0 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect github.com/jackc/pgx/v5 v5.11.0 // indirect @@ -44,8 +47,7 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/pelletier/go-toml/v2 v2.4.3 // indirect - github.com/sagikazarmark/locafero v0.11.0 // indirect - github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 // indirect + github.com/sagikazarmark/locafero v0.12.0 // indirect github.com/spf13/afero v1.15.0 // indirect github.com/spf13/cast v1.10.0 // indirect github.com/spf13/pflag v1.0.10 // indirect @@ -59,7 +61,7 @@ require ( golang.org/x/sync v0.23.0 // indirect golang.org/x/sys v0.48.0 // indirect golang.org/x/text v0.42.0 // indirect - golang.org/x/time v0.16.0 // indirect google.golang.org/protobuf v1.36.12 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect + resty.dev/v3 v3.0.0-rc.4 // indirect ) diff --git a/kontor-gin/go.sum b/kontor-gin/go.sum index 2ad8593..88fa3a7 100644 --- a/kontor-gin/go.sum +++ b/kontor-gin/go.sum @@ -6,13 +6,14 @@ github.com/bytedance/sonic/loader v0.5.2 h1:0QtP1gevc1OZ6/H8Lb9BRZiCXd1Ftjd3OKuj github.com/bytedance/sonic/loader v0.5.2/go.mod h1:AR4NYCk5DdzZizZ5djGqQ92eEhCCcdf5x77udYiSJRo= github.com/cloudwego/base64x v0.1.7 h1:NppS+Fgzg5ovhn4NkUXaDT3x9jldgH5ToMCqzBSi2zI= github.com/cloudwego/base64x v0.1.7/go.mod h1:Cu1PV9zfrSf7ET2tIbWbbEy7jO7HHJ13q4X2SQ8aWYg= +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= -github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= -github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/fsnotify/fsnotify v1.10.1 h1:b0/UzAf9yR5rhf3RPm9gf3ehBPpf0oZKIjtpKrx59Ho= +github.com/fsnotify/fsnotify v1.10.1/go.mod h1:TLheqan6HD6GBK6PrDWyDPBaEV8LspOxvPSjC+bVfgo= github.com/gabriel-vasile/mimetype v1.4.15 h1:05iP/CYtZ/w455R/KZM6rZ5ieAdh99UPtd+d3YzLmaI= github.com/gabriel-vasile/mimetype v1.4.15/go.mod h1:azpTcoLcDZRNgFou5j+APrqQx9HqVPWa6ijYQIIVswQ= github.com/gin-contrib/cors v1.7.2 h1:oLDHxdg8W/XDoN/8zamqk/Drgt4oVZDvaV0YmvVICQw= @@ -33,8 +34,8 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.22.0 h1:k6HsTZ0sTnROkhS//R0O+55JgM8C4Bx7ia+JlgcnOao= github.com/go-playground/validator/v10 v10.22.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= -github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs= -github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPEgAXnvj1Ro= +github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/goccy/go-json v0.10.6 h1:p8HrPJzOakx/mn/bQtjgNjdTcN+/S6FcG2CTtQOrHVU= github.com/goccy/go-json v0.10.6/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/golang-jwt/jwt/v5 v5.3.1 h1:kYf81DTWFe7t+1VvL7eS+jKFVWaUnK9cB1qbwn63YCY= @@ -52,6 +53,8 @@ github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kX github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo= github.com/gorilla/sessions v1.4.0 h1:kpIYOp/oi6MG/p5PgxApU8srsSw9tuFbt46Lt7auzqQ= github.com/gorilla/sessions v1.4.0/go.mod h1:FLWm50oby91+hl7p/wRxDth9bWSuk0qVL2emc7lT5ik= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo= @@ -88,14 +91,16 @@ github.com/pelletier/go-toml/v2 v2.4.3/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/sagikazarmark/locafero v0.11.0 h1:1iurJgmM9G3PA/I+wWYIOw/5SyBtxapeHDcg+AAIFXc= -github.com/sagikazarmark/locafero v0.11.0/go.mod h1:nVIGvgyzw595SUSUE6tvCp3YYTeHs15MvlmU87WwIik= -github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 h1:+jumHNA0Wrelhe64i8F6HNlS8pkoyMv5sreGx2Ry5Rw= -github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8/go.mod h1:3n1Cwaq1E1/1lhQhtRK2ts/ZwZEhjcQeJQ1RuC6Q/8U= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sagikazarmark/locafero v0.12.0 h1:/NQhBAkUb4+fH1jivKHWusDYFjMOOKU88eegjfxfHb4= +github.com/sagikazarmark/locafero v0.12.0/go.mod h1:sZh36u/YSZ918v0Io+U9ogLYQJ9tLLBmM4eneO6WwsI= github.com/spf13/afero v1.15.0 h1:b/YBCLWAJdFWJTN9cLhiXXcD7mzKn9Dm86dNnfyQw1I= github.com/spf13/afero v1.15.0/go.mod h1:NC2ByUVxtQs4b3sIUphxK0NioZnmxgyCrfzeuq8lxMg= github.com/spf13/cast v1.10.0 h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY= github.com/spf13/cast v1.10.0/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo= +github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= +github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.21.0 h1:x5S+0EU27Lbphp4UKm1C+1oQO+rKx36vfCoaVebLFSU= @@ -118,6 +123,7 @@ github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.3.2 h1:zkEASHHyEClGeURfgNT9PJZVfAbs9oEX9QXggwWNJbc= github.com/ugorji/go/codec v1.3.2/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= +go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/arch v0.31.0 h1:22MlEb14/O/EPCYHFxsDdv5TuLD5dMjT5e2QeJw4ULk= @@ -148,3 +154,5 @@ gorm.io/driver/sqlite v1.6.0 h1:WHRRrIiulaPiPFmDcod6prc4l2VGVWHz80KspNsxSfQ= gorm.io/driver/sqlite v1.6.0/go.mod h1:AO9V1qIQddBESngQUKWL9yoH93HIeA1X6V633rBwyT8= gorm.io/gorm v1.31.2 h1:3o8FXNo9v9S858gil+3LlZA1LkCOzgb4g5BL64FgaCo= gorm.io/gorm v1.31.2/go.mod h1:XyQVbO2k6YkOis7C2437jSit3SsDK72s7n7rsSHd+Gs= +resty.dev/v3 v3.0.0-rc.4 h1:n3360yEcFiyrX5Vkc9XG3Y8kMM24alRBxJ9Ev1mLmqs= +resty.dev/v3 v3.0.0-rc.4/go.mod h1:NTOerrC/4T7/FE6tXIZGIysXXBdgNqwMZuKtxpea9NM= diff --git a/kontor-gin/internal/cmd/add-links.go b/kontor-gin/internal/cmd/add-links.go new file mode 100644 index 0000000..044f2ce --- /dev/null +++ b/kontor-gin/internal/cmd/add-links.go @@ -0,0 +1,21 @@ +package cmd + +import ( + "log/slog" + + "github.com/spf13/cobra" +) + +var addLinksCmd = &cobra.Command{ + Use: "add-links", + Short: "Add Links", + Long: "Add Links", + // Args: cobra.ExactArgs(1), + Run: func(cmd *cobra.Command, args []string) { + slog.Info("add Links") + }, +} + +func init() { + rootCmd.AddCommand(addLinksCmd) +} diff --git a/kontor-gin/internal/cmd/check.go b/kontor-gin/internal/cmd/check.go new file mode 100644 index 0000000..f09c0d2 --- /dev/null +++ b/kontor-gin/internal/cmd/check.go @@ -0,0 +1,60 @@ +package cmd + +import ( + "log/slog" + + "github.com/spf13/cobra" + "resty.dev/v3" +) + +type Login struct { + Email string + Password string +} + +type LoginResponse struct { + Token string +} + +var checkCmd = &cobra.Command{ + Use: "check", + Short: "Check Kontor Database", + Long: "Check Kontor Database to given file", + // Args: cobra.ExactArgs(1), + Run: func(cmd *cobra.Command, args []string) { + slog.Info("check kontor") + slog.Info("Verbosity level", "level", verbose) + var login LoginResponse + client := resty.New() + res, err := client.R(). + SetBody(Login{ + Email: "thomas.peetz@thpeetz.de", + Password: "admin", + }). + SetHeader("Accept", "application/json"). + SetResult(&login). + Post("http://127.0.0.1:8550/api/login") + if err != nil { + slog.Info("Health", "error", err.Error()) + } + slog.Info("health", "token", login.Token) + res, err = client.R(). + SetAuthToken(login.Token). + SetHeader("Accept", "application/json"). + Get("http://127.0.0.1:8550/api/v1/comics/comics") + if err != nil { + slog.Info("comics", "error", err.Error()) + } + slog.Info("comics", "res", res) + defer client.Close() + + slog.Info("kontor.check_kontor.check_duplicate_links") + // check_duplicate_links(first_server, dirs) + slog.Info("kontor.check_kontor.check_media_dirs") + // check_media_dirs(first_server, dirs) + }, +} + +func init() { + rootCmd.AddCommand(checkCmd) +} diff --git a/kontor-gin/internal/cmd/export.go b/kontor-gin/internal/cmd/export.go new file mode 100644 index 0000000..0f1682e --- /dev/null +++ b/kontor-gin/internal/cmd/export.go @@ -0,0 +1,22 @@ +package cmd + +import ( + "log/slog" + + "github.com/spf13/cobra" +) + +var exportCmd = &cobra.Command{ + Use: "export", + Short: "Export Kontor Database", + Long: "Export Kontor Database to given file", + // Args: cobra.ExactArgs(1), + Run: func(cmd *cobra.Command, args []string) { + slog.Info("export kontor") + slog.Info("Verbosity level", "level", verbose) + }, +} + +func init() { + rootCmd.AddCommand(exportCmd) +} diff --git a/kontor-gin/internal/cmd/import.go b/kontor-gin/internal/cmd/import.go new file mode 100644 index 0000000..b06bc2d --- /dev/null +++ b/kontor-gin/internal/cmd/import.go @@ -0,0 +1,21 @@ +package cmd + +import ( + "log/slog" + + "github.com/spf13/cobra" +) + +var importCmd = &cobra.Command{ + Use: "import", + Short: "Import Kontor Database", + Long: "Import Kontor Database from given file", + // Args: cobra.ExactArgs(1), + Run: func(cmd *cobra.Command, args []string) { + slog.Info("import kontor") + }, +} + +func init() { + rootCmd.AddCommand(importCmd) +} diff --git a/kontor-gin/internal/cmd/root.go b/kontor-gin/internal/cmd/root.go new file mode 100644 index 0000000..24220de --- /dev/null +++ b/kontor-gin/internal/cmd/root.go @@ -0,0 +1,42 @@ +package cmd + +import ( + "fmt" + "log/slog" + "os" + + "github.com/spf13/cobra" +) + +var cfgFile string +var verbose int + +// rootCmd represents the base command when called without any subcommands +var rootCmd = &cobra.Command{ + Use: "kontor-cli", + Short: "A brief description of your application", + Long: `A longer description that spans multiple lines and likely contains +examples and usage of using your application. For example: + +Cobra is a CLI library for Go that empowers applications. +This application is a tool to generate the needed files +to quickly create a Cobra application.`, + // Uncomment the following line if your bare application + // has an action associated with it: + Run: func(cmd *cobra.Command, args []string) { + cmd.Help() + slog.Info("Verbosity level", "level", verbose) + }, +} + +func Execute() { + if err := rootCmd.Execute(); err != nil { + fmt.Fprintf(os.Stderr, "Oops. An error while executing Zero '%s'\n", err) + os.Exit(1) + } +} + +func init() { + rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.myapp.yaml)") + rootCmd.PersistentFlags().CountVarP(&verbose, "verbose", "v", "increase verbosity (-v, -vv, -vvv)") +} diff --git a/kontor-gin/internal/cmd/sync.go b/kontor-gin/internal/cmd/sync.go new file mode 100644 index 0000000..ee54cab --- /dev/null +++ b/kontor-gin/internal/cmd/sync.go @@ -0,0 +1,21 @@ +package cmd + +import ( + "log/slog" + + "github.com/spf13/cobra" +) + +var syncCmd = &cobra.Command{ + Use: "sync", + Short: "Sync Kontor Database", + Long: "Sync Kontor Database", + // Args: cobra.ExactArgs(2), + Run: func(cmd *cobra.Command, args []string) { + slog.Info("sync kontor") + }, +} + +func init() { + rootCmd.AddCommand(syncCmd) +} diff --git a/kontor-gin/internal/handlers/auth.go b/kontor-gin/internal/handlers/auth.go index a3f756f..2e8bd00 100644 --- a/kontor-gin/internal/handlers/auth.go +++ b/kontor-gin/internal/handlers/auth.go @@ -1,9 +1,11 @@ package handlers import ( + "kontor-api-gin/internal/helpers" "kontor-api-gin/internal/service" "net/http" + "github.com/gin-contrib/slog" "github.com/gin-gonic/gin" ) @@ -12,5 +14,10 @@ type AuthHandler struct { } func (handler *AuthHandler) Login(c *gin.Context) { - c.JSON(http.StatusOK, gin.H{"token": "bla"}) + token, err := helpers.GenerateToken("bla") + logger := slog.Get(c) + if err != nil { + logger.Info("Login", "GenerateToken error", err.Error()) + } + c.JSON(http.StatusOK, gin.H{"token": token}) } diff --git a/kontor-gin/internal/helpers/token.go b/kontor-gin/internal/helpers/token.go index c9a61e3..ec54d12 100644 --- a/kontor-gin/internal/helpers/token.go +++ b/kontor-gin/internal/helpers/token.go @@ -20,7 +20,7 @@ func GenerateToken(profile_id string) (string, error) { "name": "Thomas Peetz", "admin": true, "authorized": true, - "profile_id": profile_id, + "sub": profile_id, "exp": time.Now().Add(time.Hour * 72).Unix(), } // claims["authorized"] = true diff --git a/kontor-gin/internal/repository/comic.go b/kontor-gin/internal/repository/comic.go index 73778c5..986983a 100644 --- a/kontor-gin/internal/repository/comic.go +++ b/kontor-gin/internal/repository/comic.go @@ -1,6 +1,12 @@ package repository -import "gorm.io/gorm" +import ( + "context" + "kontor-api-gin/internal/models/comics" + "log/slog" + + "gorm.io/gorm" +) type ComicRepository struct { db *gorm.DB @@ -10,3 +16,12 @@ func NewComicRepository(db *gorm.DB) *ComicRepository { repo := &ComicRepository{db: db} return repo } + +func (repository *ComicRepository) List(context context.Context) ([]comics.Comic, error) { + var comics []comics.Comic + + result := repository.db.Find(&comics) + slog.Info("ComicRepository#List", "count", result.RowsAffected) + + return comics, nil +} diff --git a/kontor-gin/internal/service/comic.go b/kontor-gin/internal/service/comic.go index b94f610..d350521 100644 --- a/kontor-gin/internal/service/comic.go +++ b/kontor-gin/internal/service/comic.go @@ -4,6 +4,7 @@ import ( "context" "kontor-api-gin/internal/models/comics" "kontor-api-gin/internal/repository" + "log/slog" ) type ComicService struct { @@ -16,5 +17,6 @@ func NewComicService(repo *repository.ComicRepository) *ComicService { } func (service *ComicService) List(context context.Context) ([]comics.Comic, error) { - return nil, nil + slog.Info("ComicService#List") + return service.repository.List(context) } diff --git a/kontor-gin/internal/schema/admin.go b/kontor-gin/pkg/schema/admin.go similarity index 100% rename from kontor-gin/internal/schema/admin.go rename to kontor-gin/pkg/schema/admin.go diff --git a/kontor-gin/internal/schema/base.go b/kontor-gin/pkg/schema/base.go similarity index 100% rename from kontor-gin/internal/schema/base.go rename to kontor-gin/pkg/schema/base.go diff --git a/kontor-gin/internal/schema/database.go b/kontor-gin/pkg/schema/database.go similarity index 100% rename from kontor-gin/internal/schema/database.go rename to kontor-gin/pkg/schema/database.go diff --git a/kontor-gin/internal/schema/media.go b/kontor-gin/pkg/schema/media.go similarity index 100% rename from kontor-gin/internal/schema/media.go rename to kontor-gin/pkg/schema/media.go