Merge branch '19092-upload-crunchstat_summary-to-pypi'
[arvados-dev.git] / lib / redmine / user.go
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: Apache-2.0
4
5 package redmine
6
7 import (
8         "errors"
9         "strconv"
10 )
11
12 type userWrapper struct {
13         User User `json:"user"`
14 }
15
16 type User struct {
17         ID          int    `json:"id"`
18         FirstName   string `json:"firstname"`
19         LastName    string `json:"lastname"`
20         Mail        string `json:"mail"`
21         CreatedOn   string `json:"created_on"`
22         LastLoginOn string `json:"last_login_on"`
23 }
24
25 func (c *Client) User(id int) (*User, error) {
26         res, err := c.Get("/users/" + strconv.Itoa(id) + ".json")
27         if err != nil {
28                 return nil, err
29         }
30         defer res.Body.Close()
31
32         if res.StatusCode == 404 {
33                 return nil, errors.New("Not Found")
34         }
35
36         var r userWrapper
37         err = responseHelper(res, &r, 200)
38         if err != nil {
39                 return nil, err
40         }
41         return &r.User, nil
42 }