Skip to content

Commit b703a46

Browse files
first pass for system events and system history
1 parent 7125eb1 commit b703a46

3 files changed

Lines changed: 191 additions & 0 deletions

File tree

conSys/constants.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ class APITerms(Enum):
1313
CONTROL_STREAMS = 'controls'
1414
DATASTREAMS = 'datastreams'
1515
DEPLOYMENTS = 'deployments'
16+
EVENTS = 'events'
1617
FOIS = 'featuresOfInterest'
18+
HISTORY = 'history'
1719
ITEMS = 'items'
1820
OBSERVATIONS = 'observations'
1921
PROCEDURES = 'procedures'
@@ -22,6 +24,7 @@ class APITerms(Enum):
2224
SCHEMA = 'schema'
2325
STATUS = 'status'
2426
SYSTEMS = 'systems'
27+
SYSTEM_EVENTS = 'systemEvents'
2528
TASKING = 'controls'
2629
UNDEFINED = ''
2730

conSys/part_2/system_events.py

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
import requests
2+
from pydantic import HttpUrl
3+
4+
from conSys.con_sys_api import ConnectedSystemsRequestBuilder
5+
from conSys.constants import APITerms
6+
7+
8+
def list_system_events(server_addr: HttpUrl, api_root: str = APITerms.API.value):
9+
"""
10+
Lists all system events
11+
:return:
12+
"""
13+
builder = ConnectedSystemsRequestBuilder()
14+
api_request = (builder.with_server_url(server_addr)
15+
.with_api_root(api_root)
16+
.for_resource_type(APITerms.SYSTEM_EVENTS.value)
17+
.build_url_from_base()
18+
.build())
19+
resp = requests.get(api_request.url, params=api_request.body, headers=api_request.headers)
20+
return resp.json()
21+
22+
23+
def list_events_by_system_id(server_addr: HttpUrl, system_id: str, api_root: str = APITerms.API.value):
24+
"""
25+
Lists all events of a system
26+
:return:
27+
"""
28+
builder = ConnectedSystemsRequestBuilder()
29+
api_request = (builder.with_server_url(server_addr)
30+
.with_api_root(api_root)
31+
.for_resource_type(APITerms.SYSTEMS.value)
32+
.with_resource_id(system_id)
33+
.for_resource_type(APITerms.EVENTS.value)
34+
.build_url_from_base()
35+
.build())
36+
resp = requests.get(api_request.url, params=api_request.body, headers=api_request.headers)
37+
return resp.json()
38+
39+
def add_new_system_events(server_addr: HttpUrl, system_id: str, request_body: dict,
40+
api_root: str = APITerms.API.value):
41+
"""
42+
Adds a new system event to a system by its id
43+
:return:
44+
"""
45+
builder = ConnectedSystemsRequestBuilder()
46+
api_request = (builder.with_server_url(server_addr)
47+
.with_api_root(api_root)
48+
.for_resource_type(APITerms.SYSTEMS.value)
49+
.with_resource_id(system_id)
50+
.for_resource_type(APITerms.EVENTS.value)
51+
.with_request_body(request_body)
52+
.build_url_from_base()
53+
.build())
54+
resp = requests.post(api_request.url, params=api_request.body, headers=api_request.headers)
55+
return resp.json()
56+
57+
def retrieve_system_event_by_id(server_addr: HttpUrl, system_id: str, event_id: str, api_root: str = APITerms.API.value):
58+
"""
59+
Retrieves a system event by its id
60+
:return:
61+
"""
62+
builder = ConnectedSystemsRequestBuilder()
63+
api_request = (builder.with_server_url(server_addr)
64+
.with_api_root(api_root)
65+
.for_resource_type(APITerms.SYSTEMS.value)
66+
.with_resource_id(system_id)
67+
.for_resource_type(APITerms.EVENTS.value)
68+
.with_resource_id(event_id)
69+
.build_url_from_base()
70+
.build())
71+
resp = requests.get(api_request.url, params=api_request.body, headers=api_request.headers)
72+
return resp.json()
73+
74+
def update_system_event_by_id(server_addr: HttpUrl, system_id: str, event_id: str, request_body: dict,
75+
api_root: str = APITerms.API.value):
76+
"""
77+
Updates a system event by its id
78+
:return:
79+
"""
80+
builder = ConnectedSystemsRequestBuilder()
81+
api_request = (builder.with_server_url(server_addr)
82+
.with_api_root(api_root)
83+
.for_resource_type(APITerms.SYSTEMS.value)
84+
.with_resource_id(system_id)
85+
.for_resource_type(APITerms.EVENTS.value)
86+
.with_resource_id(event_id)
87+
.with_request_body(request_body)
88+
.build_url_from_base()
89+
.build())
90+
resp = requests.put(api_request.url, params=api_request.body, headers=api_request.headers)
91+
return resp.json()
92+
93+
def delete_system_event_by_id(server_addr: HttpUrl, system_id: str, event_id: str, api_root: str = APITerms.API.value):
94+
"""
95+
Deletes a system event by its id
96+
:return:
97+
"""
98+
builder = ConnectedSystemsRequestBuilder()
99+
api_request = (builder.with_server_url(server_addr)
100+
.with_api_root(api_root)
101+
.for_resource_type(APITerms.SYSTEMS.value)
102+
.with_resource_id(system_id)
103+
.for_resource_type(APITerms.EVENTS.value)
104+
.with_resource_id(event_id)
105+
.build_url_from_base()
106+
.build())
107+
resp = requests.delete(api_request.url, params=api_request.body, headers=api_request.headers)
108+
return resp.json()

conSys/part_2/system_history.py

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
import requests
2+
from pydantic import HttpUrl
3+
4+
from conSys.con_sys_api import ConnectedSystemsRequestBuilder
5+
from conSys.constants import APITerms
6+
7+
8+
def list_system_history(server_addr: HttpUrl, system_id: str, api_root: str = APITerms.API.value):
9+
"""
10+
Lists all history versions of a system
11+
:return:
12+
"""
13+
builder = ConnectedSystemsRequestBuilder()
14+
api_request = (builder.with_server_url(server_addr)
15+
.with_api_root(api_root)
16+
.for_resource_type(APITerms.SYSTEMS.value)
17+
.with_resource_id(system_id)
18+
.for_resource_type(APITerms.HISTORY.value)
19+
.build_url_from_base()
20+
.build())
21+
resp = requests.get(api_request.url, params=api_request.body, headers=api_request.headers)
22+
return resp.json()
23+
24+
25+
def retrieve_system_historical_description_by_id(server_addr: HttpUrl, system_id: str, history_id: str,
26+
api_root: str = APITerms.API.value):
27+
"""
28+
Retrieves a historical system description by its id
29+
:return:
30+
"""
31+
builder = ConnectedSystemsRequestBuilder()
32+
api_request = (builder.with_server_url(server_addr)
33+
.with_api_root(api_root)
34+
.for_resource_type(APITerms.SYSTEMS.value)
35+
.with_resource_id(system_id)
36+
.for_resource_type(APITerms.HISTORY.value)
37+
.with_secondary_resource_id(history_id)
38+
.build_url_from_base()
39+
.build())
40+
resp = requests.get(api_request.url, params=api_request.body, headers=api_request.headers)
41+
return resp.json()
42+
43+
44+
def update_system_historical_description(server_addr: HttpUrl, system_id: str, history_id: str, request_body: dict,
45+
api_root: str = APITerms.API.value):
46+
"""
47+
Updates a historical system description by its id
48+
:return:
49+
"""
50+
builder = ConnectedSystemsRequestBuilder()
51+
api_request = (builder.with_server_url(server_addr)
52+
.with_api_root(api_root)
53+
.for_resource_type(APITerms.SYSTEMS.value)
54+
.with_resource_id(system_id)
55+
.for_resource_type(APITerms.HISTORY.value)
56+
.with_secondary_resource_id(history_id)
57+
.with_request_body(request_body)
58+
.build_url_from_base()
59+
.build())
60+
resp = requests.put(api_request.url, params=api_request.body, headers=api_request.headers)
61+
return resp.json()
62+
63+
64+
def delete_system_historical_description_by_id(server_addr: HttpUrl, system_id: str, history_id: str,
65+
api_root: str = APITerms.API.value):
66+
"""
67+
Deletes a historical system description by its id
68+
:return:
69+
"""
70+
builder = ConnectedSystemsRequestBuilder()
71+
api_request = (builder.with_server_url(server_addr)
72+
.with_api_root(api_root)
73+
.for_resource_type(APITerms.SYSTEMS.value)
74+
.with_resource_id(system_id)
75+
.for_resource_type(APITerms.HISTORY.value)
76+
.with_secondary_resource_id(history_id)
77+
.build_url_from_base()
78+
.build())
79+
resp = requests.delete(api_request.url, params=api_request.body, headers=api_request.headers)
80+
return resp.json()

0 commit comments

Comments
 (0)