grim/youtrack-import
Clone
Summary
Browse
Changes
Graph
replace [[br]] from trac with <br/>. Fixed YI-33
draft
2020-08-03, Gary Kramlich
6e41a2be36b1
replace [[br]] from trac with
. Fixed YI-33
package
bitbucket
import
(
"encoding/json"
"fmt"
"io/ioutil"
"keep.imfreedom.org/grim/youtrack-import/youtrack"
)
type
User
struct
{
FullName
string
`json:"fullName"`
Login
string
`json:"login"`
Email
string
`json:"email"`
}
func
(
u
*
User
)
ToYoutrack
()
*
youtrack
.
User
{
return
youtrack
.
NewUser
(
u
.
Login
,
u
.
FullName
,
u
.
Email
)
}
type
UsersMapData
struct
{
Users
[]
User
`json:"users"`
}
type
UsersMap
struct
{
users
map
[
string
]
User
}
func
NewUsersMap
(
filename
string
)
(
*
UsersMap
,
error
)
{
data
,
err
:=
ioutil
.
ReadFile
(
filename
)
if
err
!=
nil
{
return
nil
,
err
}
d
:=
UsersMapData
{}
if
err
:=
json
.
Unmarshal
(
data
,
&
d
);
err
!=
nil
{
return
nil
,
err
}
m
:=
&
UsersMap
{
users
:
map
[
string
]
User
{},
}
for
_
,
user
:=
range
d
.
Users
{
m
.
users
[
user
.
FullName
]
=
user
}
return
m
,
nil
}
func
(
m
*
UsersMap
)
Find
(
displayName
string
)
(
User
,
error
)
{
if
user
,
found
:=
m
.
users
[
displayName
];
found
{
return
user
,
nil
}
return
User
{},
fmt
.
Errorf
(
"no user found for %q"
,
displayName
)
}