Completed
Push — master ( bfd75d...9200b0 )
by Manas
01:53
created

team_to_dict()   A

Complexity

Conditions 2

Size

Total Lines 9

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 2
dl 0
loc 9
rs 9.6666
1
from st2common.util import isotime
2
3
__all__ = [
4
    'issue_to_dict',
5
    'label_to_dict',
6
    'user_to_dict'
7
]
8
9
10
def issue_to_dict(issue):
11
    result = {}
12
13
    author = user_to_dict(issue.user)
14
    assignee = user_to_dict(issue.assignee)
15
    closed_by = user_to_dict(issue.closed_by)
16
17
    if issue.pull_request:
18
        is_pull_request = True
19
    else:
20
        is_pull_request = False
21
22
    result['id'] = issue.id
23
    result['repository'] = issue.repository.name
24
    result['author'] = author
25
    result['assign'] = assignee
26
    result['title'] = issue.title
27
    result['body'] = issue.body
28
    result['url'] = issue.html_url
29
    result['state'] = issue.state
30
    result['is_pull_request'] = is_pull_request
31
32
    if issue.labels:
33
        labels = [label_to_dict(label) for label in issue.labels]
34
    else:
35
        labels = []
36
37
    result['labels'] = labels
38
39
    # Note: We convert it to a serialize type (string)
40
    if issue.created_at:
41
        created_at = isotime.format(issue.created_at)
42
    else:
43
        created_at = None
44
45
    if issue.closed_at:
46
        closed_at = isotime.format(issue.closed_at)
47
    else:
48
        closed_at = None
49
50
    result['created_at'] = created_at
51
    result['closed_at'] = closed_at
52
    result['closed_by'] = closed_by
53
    return result
54
55
56
def label_to_dict(label):
57
    result = {}
58
59
    result['name'] = label.name
60
    result['color'] = label.color
61
    result['url'] = label.url
62
63
    return result
64
65
66
def user_to_dict(user):
67
    if not user:
68
        return None
69
70
    result = {}
71
    result['name'] = user.name
72
    result['login'] = user.login
73
    return result
74
75
def team_to_dict(team):
76
    if not team:
77
        return None
78
79
    result = {}
80
    result['id'] = team.id
81
    result['name'] = team.name
82
    result['members_count'] = team.members_count
83
    return result
84