Adding docs and ready for 1.0.0
Signed-off-by: Kris Nóva <kris@nivenly.com>
This commit is contained in:
parent
c78e3d199e
commit
94dde03103
63 changed files with 394 additions and 5616 deletions
115
README.md
115
README.md
|
|
@ -1,5 +1,118 @@
|
|||
# Photoprism Client Go
|
||||
|
||||
Go client for the Photoprism Application.
|
||||
*Author*: Kris Nóva <kris@nivenly.com>
|
||||
|
||||
Bugs: Kris Nóva <kris@nivenly.com>
|
||||
---
|
||||
|
||||
# Install
|
||||
|
||||
```bash
|
||||
|
||||
go get github.com/kris-nova/photoprism-client-go
|
||||
|
||||
```
|
||||
|
||||
# Supported Methods
|
||||
|
||||
```go
|
||||
func (v1 *V1Client) GetAlbums(options *AlbumOptions) ([]Album, error)
|
||||
func (v1 *V1Client) GetAlbum(uuid string) (Album, error)
|
||||
func (v1 *V1Client) CreateAlbum(album Album) (Album, error)
|
||||
func (v1 *V1Client) UpdateAlbum(album Album) (Album, error)
|
||||
func (v1 *V1Client) DeleteAlbums(albumUUIDs []string) error
|
||||
func (v1 *V1Client) LikeAlbum(uuid string) error
|
||||
func (v1 *V1Client) DislikeAlbum(uuid string) error
|
||||
func (v1 *V1Client) CloneAlbum(album Album) (Album, error)
|
||||
func (v1 *V1Client) AddPhotosToAlbum(albumUUID string, photoIDs []string) error
|
||||
func (v1 *V1Client) DeletePhotosFromAlbum(albumUUID string, photoIDs []string) error
|
||||
func (v1 *V1Client) GetAlbumDownload(uuid string) ([]byte, error)
|
||||
func New(connURL *url.URL, token, downloadToken string) *V1Client
|
||||
func (v1 *V1Client) GET(endpointFormat string, a ...interface{}) *V1Response
|
||||
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) DELETE(payload interface{}, endpointFormat string, a ...interface{}) *V1Response
|
||||
func (v1 *V1Client) Endpoint(str string) string
|
||||
func (v1 *V1Client) SetToken(token string)
|
||||
func (v1 *V1Client) Index() error
|
||||
func (v1 *V1Client) CancelIndex() error
|
||||
func (v1 *V1Client) GetPhoto(uuid string) (Photo, error)
|
||||
func (v1 *V1Client) GetPhotos(options *PhotoOptions) ([]Photo, error)
|
||||
func (v1 *V1Client) UpdatePhoto(photo Photo) (Photo, error)
|
||||
func (v1 *V1Client) GetPhotoDownload(uuid string) ([]byte, error)
|
||||
func (v1 *V1Client) GetPhotoYaml(uuid string) ([]byte, error)
|
||||
func (v1 *V1Client) ApprovePhoto(uuid string) error
|
||||
func (v1 *V1Client) LikePhoto(uuid string) error
|
||||
func (v1 *V1Client) DislikePhoto(uuid string) error
|
||||
func (v1 *V1Client) PhotoPrimary(uuid, fileuuid string) error
|
||||
```
|
||||
|
||||
# Example Usage
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"path"
|
||||
|
||||
photoprism "github.com/kris-nova/client-go"
|
||||
"github.com/kris-nova/logger"
|
||||
)
|
||||
|
||||
func main() {
|
||||
logger.Level = 4
|
||||
|
||||
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)
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
# Pipeline
|
||||
|
||||
- [ ] Upload photo methods/tests
|
||||
- [ ] Code generation
|
||||
- [ ] Finish the remaining methods
|
||||
Loading…
Add table
Add a link
Reference in a new issue