grim/youtrack-import
Clone
Summary
Browse
Changes
Graph
use `unset` as the value when a state is moving to/from an unknown states. Fixes YI-27
2020-01-17, Gary Kramlich
741af4ca4d62
use `unset` as the value when a state is moving to/from an unknown states. Fixes YI-27
package
youtrack
import
(
"encoding/xml"
"fmt"
"net/http"
)
type
OwnedField
struct
{
Owner
string
`xml:"owner,attr"`
Description
string
`xml:"description,attr"`
Value
string
`xml:",cdata"`
}
type
OwnedFieldBundle
struct
{
XMLName
xml
.
Name
`xml:"ownedFieldBundle"`
Name
string
`xml:"name,attr"`
Fields
[]
OwnedField
`xml:"ownedField"`
}
func
(
c
*
Client
)
GetOwnedFieldBundle
(
name
string
)
(
*
OwnedFieldBundle
,
error
)
{
resp
,
err
:=
c
.
request
(
http
.
MethodGet
,
c
.
uri
+
"/admin/customfield/ownedFieldBundle/"
+
name
,
nil
,
)
if
err
!=
nil
{
return
nil
,
err
}
defer
resp
.
Body
.
Close
()
if
err
:=
c
.
checkStatus
(
resp
,
http
.
StatusOK
);
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"failed to get owned field bundle: %v"
,
err
)
}
bundle
:=
&
OwnedFieldBundle
{}
return
bundle
,
xml
.
NewDecoder
(
resp
.
Body
).
Decode
(
bundle
)
}
func
(
c
*
Client
)
AppendOwnedFieldBundle
(
name
,
value
string
)
error
{
resp
,
err
:=
c
.
request
(
http
.
MethodPut
,
c
.
uri
+
"/admin/customfield/ownedFieldBundle/"
+
name
+
"/"
+
value
,
nil
,
)
if
err
!=
nil
{
return
err
}
defer
resp
.
Body
.
Close
()
if
err
:=
c
.
checkStatus
(
resp
,
http
.
StatusCreated
);
err
!=
nil
{
return
fmt
.
Errorf
(
"failed to append %q to %q: %s"
,
value
,
name
,
err
)
}
return
nil
}