grim/youtrack-import
Clone
Summary
Browse
Changes
Graph
Convert the custom DebianBug and GnomeBug links to their absolute urls. Fixes YI-47
draft
2020-08-17, Gary Kramlich
fa48081b3a1c
Convert the custom DebianBug and GnomeBug links to their absolute urls. Fixes YI-47
package
trac
import
(
"encoding/json"
"io/ioutil"
"strings"
"keep.imfreedom.org/grim/youtrack-import/youtrack"
)
type
sessionAttribute
struct
{
Sid
string
`db:"sid"`
Authenticated
bool
`db:"authenticated"`
Name
string
`db:"name"`
Value
string
`db:"value"`
}
type
importUsers
struct
{
Users
map
[
string
]
importUser
`json:"users"`
}
type
importUser
struct
{
Login
string
`json:"login"`
FullName
string
`json:"fullname"`
Email
string
`json:"email"`
}
func
loadImportUsers
(
importUsersFile
string
)
(
*
importUsers
,
error
)
{
data
,
err
:=
ioutil
.
ReadFile
(
importUsersFile
)
if
err
!=
nil
{
return
nil
,
err
}
importUsers
:=
&
importUsers
{}
err
=
json
.
Unmarshal
(
data
,
importUsers
)
return
importUsers
,
err
}
func
(
e
*
environment
)
loadUsers
(
importUsersFile
string
)
(
map
[
string
]
*
youtrack
.
User
,
error
)
{
var
err
error
importUsers
,
err
:=
loadImportUsers
(
importUsersFile
)
if
err
!=
nil
{
return
nil
,
err
}
users
:=
map
[
string
]
*
youtrack
.
User
{}
for
tracId
,
user
:=
range
importUsers
.
Users
{
users
[
tracId
]
=
&
youtrack
.
User
{
Login
:
strings
.
TrimSpace
(
user
.
Login
),
FullName
:
strings
.
TrimSpace
(
user
.
FullName
),
Email
:
strings
.
TrimSpace
(
user
.
Email
),
}
}
return
users
,
nil
}
func
mapUser
(
user
,
unknownUser
string
,
users
map
[
string
]
*
youtrack
.
User
)
string
{
if
user
==
""
{
return
user
}
if
ytUser
,
found
:=
users
[
user
];
found
{
return
ytUser
.
Login
}
return
unknownUser
}