Merge branch '5856-read-exact' closes #5856
[arvados.git] / sdk / go / util / util.go
1 /* Helper methods for dealing with responses from API Server. */
2
3 package util
4
5 import (
6         "git.curoverse.com/arvados.git/sdk/go/arvadosclient"
7 )
8
9 func UserIsAdmin(arv arvadosclient.ArvadosClient) (is_admin bool, err error) {
10         type user struct {
11                 IsAdmin bool `json:"is_admin"`
12         }
13         var u user
14         err = arv.Call("GET", "users", "", "current", nil, &u)
15         return u.IsAdmin, err
16 }
17
18 // Returns the total count of a particular type of resource
19 //
20 //   resource - the arvados resource to count
21 // return
22 //   count - the number of items of type resource the api server reports, if no error
23 //   err - error accessing the resource, or nil if no error
24 func NumberItemsAvailable(client arvadosclient.ArvadosClient, resource string) (count int, err error) {
25         var response struct {
26                 ItemsAvailable int `json:"items_available"`
27         }
28         sdkParams := arvadosclient.Dict{"limit": 0}
29         err = client.List(resource, sdkParams, &response)
30         if err == nil {
31                 count = response.ItemsAvailable
32         }
33         return
34 }