From bce0bc2989900cdbf4fe739f14415801564ab883 Mon Sep 17 00:00:00 2001 From: Thomas Peetz Date: Sun, 4 Oct 2026 16:13:35 +0200 Subject: [PATCH] add parameters for server and filename --- kontor-gin/internal/cmd/export.go | 84 +++++++++++++++++-------------- 1 file changed, 46 insertions(+), 38 deletions(-) diff --git a/kontor-gin/internal/cmd/export.go b/kontor-gin/internal/cmd/export.go index 31fba66..e56d0f0 100644 --- a/kontor-gin/internal/cmd/export.go +++ b/kontor-gin/internal/cmd/export.go @@ -12,7 +12,11 @@ import ( "resty.dev/v3" ) -var server string +var ( + server string + filename string + apiVersion string +) var exportCmd = &cobra.Command{ Use: "export", @@ -26,7 +30,7 @@ var exportCmd = &cobra.Command{ var login LoginResponse client := resty.New() - PostJSON(client, "http://127.0.0.1:8550/api/login", &login) + PostJSON(client, fmt.Sprintf("%s/%s/%s", server, "api", "login"), &login) type ExportData struct { Sport []models.SportDTO `json:"sport"` @@ -102,42 +106,42 @@ var exportCmd = &cobra.Command{ ) registry := map[string]any{ - "http://127.0.0.1:8550/api/v1/tysc/sports": &sports, - "http://127.0.0.1:8550/api/v1/tysc/players": &players, - "http://127.0.0.1:8550/api/v1/tysc/teams": &teams, - "http://127.0.0.1:8550/api/v1/tysc/positions": &positions, - "http://127.0.0.1:8550/api/v1/tysc/roosters": &roosters, - "http://127.0.0.1:8550/api/v1/tysc/vendors": &vendors, - "http://127.0.0.1:8550/api/v1/tysc/cardsets": &cardsets, - "http://127.0.0.1:8550/api/v1/tysc/cards": &cards, - "http://127.0.0.1:8550/api/v1/comics/artists": &artists, - "http://127.0.0.1:8550/api/v1/comics/publishers": &publishers, - "http://127.0.0.1:8550/api/v1/comics/worktypes": &worktypes, - "http://127.0.0.1:8550/api/v1/comics/comics": &comics, - "http://127.0.0.1:8550/api/v1/comics/volumes": &volumes, - "http://127.0.0.1:8550/api/v1/comics/storyarcs": &storyarcs, - "http://127.0.0.1:8550/api/v1/comics/issues": &issues, - "http://127.0.0.1:8550/api/v1/comics/tradepaperbacks": &tradepaperbacks, - "http://127.0.0.1:8550/api/v1/comics/comicworks": &comicworks, - "http://127.0.0.1:8550/api/v1/comics/issueworks": &issueworks, - "http://127.0.0.1:8550/api/v1/bookshelf/articles": &articles, - "http://127.0.0.1:8550/api/v1/bookshelf/publishers": &bookshelf_publishers, - "http://127.0.0.1:8550/api/v1/bookshelf/books": &books, - "http://127.0.0.1:8550/api/v1/bookshelf/authors": &autors, - "http://127.0.0.1:8550/api/v1/bookshelf/articleauthors": &article_authors, - "http://127.0.0.1:8550/api/v1/bookshelf/bookauthors": &book_authors, - "http://127.0.0.1:8550/api/v1/media/articles": &mediaarticles, - "http://127.0.0.1:8550/api/v1/media/videos": &mediavideos, - "http://127.0.0.1:8550/api/v1/media/actors": &mediaactors, - "http://127.0.0.1:8550/api/v1/media/files": &mediafiles, - "http://127.0.0.1:8550/api/v1/media/lofis": &medialofis, - "http://127.0.0.1:8550/api/v1/user/profiles": &profiles, - "http://127.0.0.1:8550/api/v1/user/permissions": &permissions, - "http://127.0.0.1:8550/api/v1/user/assignments": &assignments, - "http://127.0.0.1:8550/api/v1/user/tokens": &tokens, + "tysc/sports": &sports, + "tysc/players": &players, + "tysc/teams": &teams, + "tysc/positions": &positions, + "tysc/roosters": &roosters, + "tysc/vendors": &vendors, + "tysc/cardsets": &cardsets, + "tysc/cards": &cards, + "comics/artists": &artists, + "comics/publishers": &publishers, + "comics/worktypes": &worktypes, + "comics/comics": &comics, + "comics/volumes": &volumes, + "comics/storyarcs": &storyarcs, + "comics/issues": &issues, + "comics/tradepaperbacks": &tradepaperbacks, + "comics/comicworks": &comicworks, + "comics/issueworks": &issueworks, + "bookshelf/articles": &articles, + "bookshelf/publishers": &bookshelf_publishers, + "bookshelf/books": &books, + "bookshelf/authors": &autors, + "bookshelf/articleauthors": &article_authors, + "bookshelf/bookauthors": &book_authors, + "media/articles": &mediaarticles, + "media/videos": &mediavideos, + "media/actors": &mediaactors, + "media/files": &mediafiles, + "media/lofis": &medialofis, + "user/profiles": &profiles, + "user/permissions": &permissions, + "user/assignments": &assignments, + "user/tokens": &tokens, } - for url, value := range registry { - GetJSON(client, login.Token, url, value) + for path, value := range registry { + GetJSON(client, login.Token, fmt.Sprintf("%s/%s/%s", server, "api/v1", path), value) } export := ExportData{ Sport: sports, @@ -180,7 +184,7 @@ var exportCmd = &cobra.Command{ slog.Info("JSON MarshalIndent failed", "Error:", err) } // Write bytes to file - err = os.WriteFile("data.json", jsonData, 0644) + err = os.WriteFile(filename, jsonData, 0644) if err != nil { slog.Info("Error writing file:", "Error", err) } @@ -219,4 +223,8 @@ func init() { exportCmd.PersistentFlags().StringVarP(&server, "server", "s", "http://127.0.0.1:8550", "Define server to get Kontor items") viper.BindPFlag("server", exportCmd.PersistentFlags().Lookup("server")) + exportCmd.PersistentFlags().StringVarP(&filename, "file", "f", "/home/tpeetz/.sync/media/data-gin.json", "Filename to store data") + viper.BindPFlag("file", exportCmd.PersistentFlags().Lookup("file")) + exportCmd.PersistentFlags().StringVarP(&apiVersion, "api", "a", "api/v1", "API Version") + viper.BindPFlag("api", exportCmd.PersistentFlags().Lookup("api")) }