# Photoprism Client Go Go client for the Photoprism Application. **Author**: [Kris NĂ³va](https://github.com/kris-nova) --- # Install ```bash go get git.zio.sh/astra/photoprism-client-go ``` # Supported Methods ```go func New(connURL *url.URL, token, downloadToken string) *V1Client func (v1 *V1Client) AddPhotosToAlbum(albumUUID string, photoIDs []string) error func (v1 *V1Client) ApprovePhoto(uuid string) error func (v1 *V1Client) CancelIndex() error func (v1 *V1Client) CloneAlbum(album Album) (Album, error) func (v1 *V1Client) CreateAlbum(album Album) (Album, error) func (v1 *V1Client) DeleteAlbums(albumUUIDs []string) error func (v1 *V1Client) DELETE(payload interface{}, endpointFormat string, a ...interface{}) *V1Response func (v1 *V1Client) DeletePhotosFromAlbum(albumUUID string, photoIDs []string) error func (v1 *V1Client) DislikeAlbum(uuid string) error func (v1 *V1Client) DislikePhoto(uuid string) error func (v1 *V1Client) Endpoint(str string) string func (v1 *V1Client) GetAlbumDownload(uuid string) ([]byte, error) func (v1 *V1Client) GetAlbums(options *AlbumOptions) ([]Album, error) func (v1 *V1Client) GetAlbum(uuid string) (Album, error) func (v1 *V1Client) GET(endpointFormat string, a ...interface{}) *V1Response func (v1 *V1Client) GetPhotoDownload(uuid string) ([]byte, error) func (v1 *V1Client) GetPhotos(options *PhotoOptions) ([]Photo, error) func (v1 *V1Client) GetPhoto(uuid string) (Photo, error) func (v1 *V1Client) GetPhotoYaml(uuid string) ([]byte, error) func (v1 *V1Client) Index() error func (v1 *V1Client) LikeAlbum(uuid string) error func (v1 *V1Client) LikePhoto(uuid string) error func (v1 *V1Client) PhotoPrimary(uuid, fileuuid string) error func (v1 *V1Client) POST(payload interface{}, endpointFormat string, a ...interface{}) *V1Response func (v1 *V1Client) PUT(payload interface{}, endpointFormat string, a ...interface{}) *V1Response func (v1 *V1Client) SetToken(token string) func (v1 *V1Client) UpdateAlbum(album Album) (Album, error) func (v1 *V1Client) UpdatePhoto(photo Photo) (Photo, error) ``` # Example Usage ```go package main import ( "fmt" "io/ioutil" "path" photoprism "git.zio.sh/astra/photoprism-client-go" "git.zio.sh/astra/logger" ) func main() logger.BitwiseLevel = logger.LogEverything uuid := "pqnzigq351j2fqgn" // This is a known ID client := photoprism.New("http://localhost:8080") err := client.Auth(photoprism.NewClientAuthLogin("admin", "missy")) if err != nil logger.Critical("Error logging into API: %v", err) os.Exit(1) } // ----------------- // GetPhoto() // photo, err := client.V1().GetPhoto(uuid) if err != nil logger.Critical("Error fetching photo: %v", err) os.Exit(1) } // ----------------- // UpdatePhoto() // photo.PhotoTitle = "A really great photo!" photo, err = client.V1().UpdatePhoto(photo) if err != nil logger.Critical("Error updating photo: %v", err) os.Exit(1) } // ----------------- // GetPhotoDownload() // file, err := client.V1().GetPhotoDownload(photo.UUID) if err != nil logger.Critical("Error getting photo download: %v", err) os.Exit(1) } for _, f := range photo.Files fileName := fmt.Sprintf("/tmp/%s", path.Base(f.FileName)) logger.Always(fileName) ioutil.WriteFile(fileName, file, 0666) } os.Exit(0) } ```