API Reference

Setup

newUserClient(systemkey, systemsecret, email, password string) *UserClient

    systemKey // string
        Required. The systemKey of the system to connect to. Retrievable from the Console's System Settings.
    systemSecret // string
        Required. The systemSecret of the system to connect to. Retrievable from the Console's System Settings.
    email // string
        Email of non-dev user to connect to system as. If registerUser key is not provided, the user must be registered through the Auth tab of the console, and given appropriate roles.
    password // string
        Password of non-dev user to connect to system as.

Authentication

userClient.Authenticate() error

Authenticates credentials set on userClient and sets session token

userClient.Register(username, password string) error

Register a new user with the platform.

    username // string
        Email of the new user
    password // string
        Password of the new user

userClient.RegisterUser(username, password string) (map[string]interface{}, error)

Register a new user with the platform, and return response with token

    username // string
        Email of the new user
    password // string
        Password of the new user

userClient.Logout() error

End session for current user

Data

userClient.InsertData(collection_id string, data interface{}) error

Insert new item in the collection

    collection_id // string
        ID assigned to the collection by the system
    data // interface
        Representatation of data object to be inserted

userClient.CreateData(collection_id string, data interface{}) ([]interface{}, error)

Insert new item in the collection and return the response

    collection_id // string
        ID assigned to the collection by the system
    data // interface
        Representation of data object to be inserted

userClient.GetData(collectionId string, query *GoSDK.Query) (map[string]interface{}, error)

Retrieve array of items from the collection using the collection ID

    collectionId // string
        ID assigned to the collection by the system
    query // *GoSDK.Query
        Custom query created using this SDK

userClient.GetDataByName(collectionName string, query *GoSDK.Query) (map[string]interface{}, error)

Retrieve array of items from the collection using the collection name

    collectionName // string
        Name assigned to the collection by the developer
    query // *GoSDK.Query
        Custom query created using this SDK

userClient.UpdateData(collection_id string, query *GoSDK.Query, changes map[string]interface{}) error

Updates existing items in the collection that match the provided query

    collectionId // string
        ID assigned to the collection by the system
    query // *GoSDK.Query
        Custom query created using this SDK
    changes // map[string]interface{}
        Key-value pairs representing column names to be updated and new values

userClient.DeleteData(collection_id string, query *GoSDK.Query) error

Removes every item in the collection that match the provided query

    collectionId // string
        ID assigned to the collection by the system
    query // *GoSDK.Query
        Custom query created using this SDK

userClient.GetColumns(collection_id string) ([]interface{}, error)

Retrieves column names, types and primary keys for a collection

    collectionId // string
        ID assigned to the collection by the system

Queries

query := NewQuery() *GoSDK.Query

Returns new Query to be used in Data operations

query.EqualTo(field string, value interface{})

Select where field is equal to value

    field // string
        Field / column name in collection
    value // interface{}
        Data to match in field

query.GreaterThan(field string, value interface{})

Select where field is > to value

    field // string
        Field / column name in collection
    value // interface{}
        Data to match in field

query.GreaterThanEqualTo(field string, value interface{})

Select where field is >= to value

    field // string
        Field / column name in collection
    value // interface{}
        Data to match in field

query.LessThan(field string, value interface{})

Select where field is < to value

    field // string
        Field / column name in collection
    value // interface{}
        Data to match in field

query.LessThanEqualTo(field string, value interface{})

Select where field is <= to value

    field // string
        Field / column name in collection
    value // interface{}
        Data to match in field

query.NotEqualTo(field string, value interface{})

Select where field is != to value

    field // string
        Field / column name in collection
    value // interface{}
        Data to match in field

query.Matches(field string, value interface{})

Query where field is ~ than value using regex

    field // string
        Field / column name in collection
    value // interface{}
        Data to match in field

query.Or(orQuery *GoSDK.Query)

Join two queries together with OR condition

    orQuery // *GoSDK.Query
        Second GoSDk.Query

Code Services

userClient.CallService(systemKey, name string, params map[string]interface{}) (map[string]interface{}, error)

Run a named code service that exists on the system with options, and returns the response object or an error

    systemKey // string
        Key to system that contains desired code service
    name // string
        Name of code service to be executed
    params // map[string]interface{}
        Request object to be passed to code service function on execution

Messaging

userClient.InitializeMQTT(clientid string, ignore string, timeout int) error

Set required MQTT options on user client

    clientid // string
        MQTT client id
    ignore // string
        Not used, default to ""
    timeout // int
        Timeout value for MQTT client in Seconds

userClient.ConnectMQTT(ssl *tls.Config, lastWill *GoSDK.LastWillPacket) error

Establish MQTT connection for set user

    clientid // *tls.Config,
    lastWill // *GoSDK.LastWillPacket, 

userClient.Publish(topic string, message []byte, qos int) error

Publish message on MQTT topic

    topic // string
        MQTT topic to publish on
    message // []byte
        Byte-seralized message
    qos // int
        QOS priority for message

userClient.Subscribe(topic string, qos int) (<-chan *mqtt.Publish, error)

Asynchronoulsy subscribe to MQTT topic and push messages onto channel as they arrive

    topic // string
        MQTT topic to subscribe
    qos // int
        QOS priority for message

userClient.Unsubscribe(topic string) error

Stop subscription to MQTT topic

    topic // string
        MQTT topic to unsusbcribe

userClient.Disconnect() error

End MQTT connection for set user