Parse.com API Client Library
This package provides a client for Parse's REST API. So far, it supports most of the query operations provided by Parse's Javascript library, with a few exceptions (listed below under TODO).
###Installation
go get github.com/ihoukai/parse-go ###Documentation Full documentation is provided by godoc.org
###Usage:
package main
import ( "fmt" "time"
parse "github.com/ihoukai/parse-go"
)
func main() { parse.Initialize("APP_ID", "REST_KEY", "MASTER_KEY") // master key is optional
user := parse.User{}
q, err := parse.NewQuery(&user)
if err != nil {
panic(err)
}
q.EqualTo("email", "kylemcc@gmail.com")
q.GreaterThan("numFollowers", 10).OrderBy("-createdAt") // API is chainable
err := q.First()
if err != nil {
if pe, ok := err.(parse.ParseError); ok {
fmt.Printf("Error querying parse: %d - %s\n", pe.Code(), pe.Message())
}
}
fmt.Printf("Retrieved user with id: %s\n", u.Id)
q2, _ := parse.NewQuery(&parse.User{})
q2.GreaterThan("createdAt", time.Date(2014, 01, 01, 0, 0, 0, 0, time.UTC))
rc := make(chan *parse.User)
// .Each will retrieve all results for a query and send them to the provided channel
// The iterator returned allows for early cancelation of the iteration process, and
// stores any error that triggers early termination
iterator, err := q2.Each(rc)
for u := range rc{
fmt.Printf("received user: %v\n", u)
// Do something
if err := process(u); err != nil {
// Cancel if there was an error
iterator.Cancel()
}
}
// An error occurred - not all rows were processed
if it.Error() != nil {
panic(it.Error())
}
} ###TODO
Missing query operations Related to Missing CRUD operations: Update Field ops (__op): AddRelation RemoveRelation Roles Background Jobs Analytics File upload/retrieval Batch operations