1- # coding: utf-8
2-
3- from atlassian .rest_client import AtlassianRestAPI
4-
5-
6- class SchedulesApi (AtlassianRestAPI ):
7-
8- def __init__ (self , token , url = "https://api.eu.opsgenie.com/v2/" ):
9- super ().__init__ (url = url )
10- self ._session_add_headers_genie_key (token )
11-
12- def _session_add_headers_genie_key (self , token ):
13- self ._session .headers .update ({"Authorization" : "GenieKey {}" .format (token )})
14-
15- def get (self , path , ** kwargs ):
16- resp = super ().get (path , ** kwargs )
17- if 'data' not in resp :
18- return resp
19-
20- return resp ['data' ]
21-
22- # Schedules
23-
24- def get_schedules (self , identifier = None ):
25- """
26- Retrieves existing schedules.
27- """
28-
29- url = "/schedules"
30- if identifier :
31- url += f"/{ identifier } "
32- return self .get (url )
33-
34-
35- def get_schedule_timeline (self , identifier , identifierType = None , expand = None , interval = None , intervalUnit = None , date = None ):
36- """
37- Retrieves schedule timeline
38- """
39-
40- params = {}
41- if identifierType :
42- params ["identifierType" ] = identifierType
43- if expand :
44- params ["expand" ] = expand
45- if interval :
46- params ["interval" ] = interval
47- if intervalUnit :
48- params ["intervalUnit" ] = intervalUnit
49- if date :
50- params ["date" ] = date
51-
52- return self .get (f"/schedules/{ identifier } /timeline" , params = params )
53-
54-
55- def get_schedule_rotations (self , identifier ):
56- """
57- Retrieves schedule rotation.
58- """
59-
60- return self .get (f"/schedules/{ identifier } /rotations" )
61-
62-
63- def get_schedule_overrides (self , identifier ):
64- """
65- Retrieves schedule overrides.
66- """
67-
68- return self .get (f"/schedules/{ identifier } /overrides" )
69-
70-
71- def get_users (self , identifier = None ):
72- """
73- Retrieves users information.
74- """
75- url = "/users"
76- if identifier :
77- url += f"/{ identifier } "
1+ # coding: utf-8
2+
3+ from atlassian .rest_client import AtlassianRestAPI
4+
5+
6+ class Schedules (AtlassianRestAPI ):
7+
8+ def __init__ (self , token , url = "https://api.eu.opsgenie.com/v2/" ):
9+ super ().__init__ (url = url )
10+ self ._session_add_headers_genie_key (token )
11+
12+ def _session_add_headers_genie_key (self , token ):
13+ self ._session .headers .update ({"Authorization" : "GenieKey {}" .format (token )})
14+
15+ def get (self , path , ** kwargs ):
16+ resp = super ().get (path , ** kwargs )
17+ if 'data' not in resp :
18+ return resp
19+
20+ return resp ['data' ]
21+
22+ # Schedules
23+
24+ def get_schedules (self , identifier = None ):
25+ """
26+ Retrieves existing schedules.
27+ """
28+
29+ url = "/schedules"
30+ if identifier :
31+ url += f"/{ identifier } "
32+ return self .get (url )
33+
34+
35+ def get_schedule_timeline (self , identifier , identifierType = None , expand = None , interval = None , intervalUnit = None , date = None ):
36+ """
37+ Retrieves schedule timeline
38+ """
39+
40+ params = {}
41+ if identifierType :
42+ params ["identifierType" ] = identifierType
43+ if expand :
44+ params ["expand" ] = expand
45+ if interval :
46+ params ["interval" ] = interval
47+ if intervalUnit :
48+ params ["intervalUnit" ] = intervalUnit
49+ if date :
50+ params ["date" ] = date
51+
52+ return self .get (f"/schedules/{ identifier } /timeline" , params = params )
53+
54+
55+ def get_schedule_rotations (self , identifier ):
56+ """
57+ Retrieves schedule rotation.
58+ """
59+
60+ return self .get (f"/schedules/{ identifier } /rotations" )
61+
62+
63+ def get_schedule_overrides (self , identifier ):
64+ """
65+ Retrieves schedule overrides.
66+ """
67+
68+ return self .get (f"/schedules/{ identifier } /overrides" )
69+
70+
71+ def get_users (self , identifier = None ):
72+ """
73+ Retrieves users information.
74+ """
75+ url = "/users"
76+ if identifier :
77+ url += f"/{ identifier } "
7878 return self .get (url )
0 commit comments