-
Notifications
You must be signed in to change notification settings - Fork 120
/
Copy pathsettings_resource.py
78 lines (63 loc) · 3.01 KB
/
settings_resource.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
from mhq.service.settings.models import (
ConfigurationSettings,
IncidentSettings,
ExcludedPRsSetting,
IncidentTypesSetting,
IncidentSourcesSetting,
DefaultSyncDaysSetting,
IncidentPrsSetting,
)
from mhq.store.models import EntityType
def adapt_configuration_settings_response(config_settings: ConfigurationSettings):
def _add_entity(config_settings: ConfigurationSettings, response):
if config_settings.entity_type == EntityType.USER:
response["user_id"] = str(config_settings.entity_id)
if config_settings.entity_type == EntityType.TEAM:
response["team_id"] = str(config_settings.entity_id)
if config_settings.entity_type == EntityType.ORG:
response["org_id"] = str(config_settings.entity_id)
return response
def _add_setting_data(config_settings: ConfigurationSettings, response):
if isinstance(config_settings.specific_settings, IncidentSettings):
response["setting"] = {
"title_includes": config_settings.specific_settings.title_filters
}
if isinstance(config_settings.specific_settings, ExcludedPRsSetting):
response["setting"] = {
"excluded_pr_ids": config_settings.specific_settings.excluded_pr_ids
}
if isinstance(config_settings.specific_settings, IncidentTypesSetting):
response["setting"] = {
"incident_types": [
incident_type.value
for incident_type in config_settings.specific_settings.incident_types
]
}
if isinstance(config_settings.specific_settings, IncidentSourcesSetting):
response["setting"] = {
"incident_sources": [
source.value
for source in config_settings.specific_settings.incident_sources
]
}
if isinstance(config_settings.specific_settings, DefaultSyncDaysSetting):
response["setting"] = {
"default_sync_days": config_settings.specific_settings.default_sync_days
}
if isinstance(config_settings.specific_settings, IncidentPrsSetting):
response["setting"] = {
"include_revert_prs": config_settings.specific_settings.include_revert_prs,
"title_filters": config_settings.specific_settings.title_filters,
"head_branch_filters": config_settings.specific_settings.head_branch_filters,
"pr_mapping_field": config_settings.specific_settings.pr_mapping_field,
"pr_mapping_pattern": config_settings.specific_settings.pr_mapping_pattern,
}
# ADD NEW API ADAPTER HERE
return response
response = {
"created_at": config_settings.created_at.isoformat(),
"updated_at": config_settings.updated_at.isoformat(),
}
response = _add_entity(config_settings, response)
response = _add_setting_data(config_settings, response)
return response