From 5b53dae3c4cf6fea1f1d31970d0f5a83f54de1a6 Mon Sep 17 00:00:00 2001 From: celogeek <65178+celogeek@users.noreply.github.com> Date: Thu, 16 Dec 2021 11:49:16 +0100 Subject: [PATCH] add images details --- internal/piwigocli/images.go | 11 +++++++++ internal/piwigocli/images_details.go | 34 ++++++++++++++++++++++++++++ internal/piwigocli/session.go | 4 ++-- internal/piwigocli/session_login.go | 4 ++-- internal/piwigocli/session_status.go | 4 ++-- 5 files changed, 51 insertions(+), 6 deletions(-) create mode 100644 internal/piwigocli/images.go create mode 100644 internal/piwigocli/images_details.go diff --git a/internal/piwigocli/images.go b/internal/piwigocli/images.go new file mode 100644 index 0000000..13b4984 --- /dev/null +++ b/internal/piwigocli/images.go @@ -0,0 +1,11 @@ +package piwigocli + +type ImagesGroup struct { + Details ImagesDetailsCommand `command:"details" description:"Details of the images"` +} + +var imagesGroup ImagesGroup + +func init() { + parser.AddCommand("images", "Image management", "", &imagesGroup) +} diff --git a/internal/piwigocli/images_details.go b/internal/piwigocli/images_details.go new file mode 100644 index 0000000..c159e74 --- /dev/null +++ b/internal/piwigocli/images_details.go @@ -0,0 +1,34 @@ +package piwigocli + +import ( + "net/url" + + "github.com/celogeek/piwigo-cli/internal/piwigo" +) + +type ImagesDetailsCommand struct { + Id string `short:"i" long:"id" description:"ID of the images" required:"true"` +} + +type GetImagesDetailsResponse struct { +} + +func (c *ImagesDetailsCommand) Execute(args []string) error { + p := piwigo.Piwigo{} + if err := p.LoadConfig(); err != nil { + return err + } + + _, err := p.Login() + if err != nil { + return err + } + + var resp GetImagesDetailsResponse + if err := p.Post("pwg.images.getInfo", &url.Values{ + "image_id": []string{c.Id}, + }, &resp); err != nil { + return err + } + return nil +} diff --git a/internal/piwigocli/session.go b/internal/piwigocli/session.go index d05db3a..19853b6 100644 --- a/internal/piwigocli/session.go +++ b/internal/piwigocli/session.go @@ -1,8 +1,8 @@ package piwigocli type SessionGroup struct { - Login LoginCommand `command:"login" description:"Initialize a connection to a piwigo instance"` - Status StatusCommand `command:"status" description:"Get the status of your session"` + Login SessionLoginCommand `command:"login" description:"Initialize a connection to a piwigo instance"` + Status SessionStatusCommand `command:"status" description:"Get the status of your session"` } var sessionGroup SessionGroup diff --git a/internal/piwigocli/session_login.go b/internal/piwigocli/session_login.go index 25a7c4f..a35a60a 100644 --- a/internal/piwigocli/session_login.go +++ b/internal/piwigocli/session_login.go @@ -6,13 +6,13 @@ import ( "github.com/celogeek/piwigo-cli/internal/piwigo" ) -type LoginCommand struct { +type SessionLoginCommand struct { Url string `short:"u" long:"url" description:"Url of the instance" required:"true"` Login string `short:"l" long:"login" description:"Login" required:"true"` Password string `short:"p" long:"password" description:"Password" required:"true"` } -func (c *LoginCommand) Execute(args []string) error { +func (c *SessionLoginCommand) Execute(args []string) error { fmt.Printf("Login on %s...\n", c.Url) p := piwigo.Piwigo{ diff --git a/internal/piwigocli/session_status.go b/internal/piwigocli/session_status.go index cdc81fb..b38432b 100644 --- a/internal/piwigocli/session_status.go +++ b/internal/piwigocli/session_status.go @@ -7,10 +7,10 @@ import ( "github.com/jedib0t/go-pretty/v6/table" ) -type StatusCommand struct { +type SessionStatusCommand struct { } -func (c *StatusCommand) Execute(args []string) error { +func (c *SessionStatusCommand) Execute(args []string) error { p := piwigo.Piwigo{} if err := p.LoadConfig(); err != nil { return err