/go-workday

Workday client written in Go

Primary LanguageGoOtherNOASSERTION

At the moment there is only an interface for assets implemented, this can easily be extended thought.

Example:

package main

import (
    "fmt"
    "log"

    "github/mickep76/go-workday"
)

const (
    Tenant   = "My tenant"
    Username = "My user"
    Password = "My password"
)

func main() {
    clnt := client.NewClient(client.Config{Username: Username, Password: Password, Tenant: Tenant})

    hdlr := client.NewRequestGetAssets(clnt)

    // Request references
    hdlr.Request.CompanyReference = client.NewObjectList()
    hdlr.Request.CompanyReference.Add("", []*client.RequestObjectID{
        {Type: "Company_Reference_ID", Value: "1234"},
    })

    hdlr.Request.WorktagReference = client.NewObjectList()
    hdlr.Request.WorktagReference.Add("", []*client.RequestObjectID{
        {Type: "Cost_Center_Reference_ID", Value: "1234"},
    })

    hdlr.Request.AssetStatusReference = client.NewObjectList()
    hdlr.Request.AssetStatusReference.Add("", []*client.RequestObjectID{
        {Type: "Document_Status_ID", Value: "IN_SERVICE"},
    })

    // Print XML request
    buf, err := hdlr.GetRequestXML()
    if err != nil {
        log.Fatal(err)
    }

    fmt.Printf("Request: \n\n%s\n\n", string(buf))

    // Print response
    count := 0
    for !hdlr.Last() {
        if err := hdlr.GetNext(); err != nil {
            log.Fatal(err)
        }
        for _, a := range hdlr.Response.Assets {
            fmt.Println(count, a)
            count++
        }
    }
}