Skip to content

Commit 2aa83fe

Browse files
committed
Add Fetch to GQL remove REST
1 parent 5e7e4e8 commit 2aa83fe

6 files changed

Lines changed: 123 additions & 130 deletions

File tree

dimo/api/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from .auth import Auth
22
from .attestation import Attestation
33
from .device_definitions import DeviceDefinitions
4-
from .fetch import Fetch
54
from .token_exchange import TokenExchange
65
from .trips import Trips
76
from .valuations import Valuations
@@ -10,7 +9,6 @@
109
"Auth",
1110
"Attestation",
1211
"DeviceDefinitions",
13-
"Fetch",
1412
"TokenExchange",
1513
"Trips",
1614
"Valuations",

dimo/api/fetch.py

Lines changed: 0 additions & 123 deletions
This file was deleted.

dimo/dimo.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
from .api.conversations import Conversations
66
from .api.device_definitions import DeviceDefinitions
77
from .api.token_exchange import TokenExchange
8-
from .api.fetch import Fetch
98
from .api.trips import Trips
109
from .api.valuations import Valuations
1110
from .api.vehicle_triggers import VehicleTriggers
1211

12+
from .graphql.fetch import Fetch
1313
from .graphql.identity import Identity
1414
from .graphql.telemetry import Telemetry
1515

@@ -79,7 +79,7 @@ def __getattr__(self, name: str) -> Any:
7979
"auth": (Auth, ("request", "_get_auth_headers", "env", "self")),
8080
"conversations": (Conversations, ("request", "_get_auth_headers", "_get_full_path", "session")),
8181
"device_definitions": (DeviceDefinitions, ("request", "_get_auth_headers")),
82-
"fetch": (Fetch, ("request", "_get_auth_headers")),
82+
"fetch": (Fetch, ("self",)),
8383
"token_exchange": (
8484
TokenExchange,
8585
("request", "_get_auth_headers", "identity", "self"),

dimo/environments.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"Conversations": "https://conversations-api.dimo.zone",
66
"Identity": "https://identity-api.dimo.zone/query",
77
"DeviceDefinitions": "https://device-definitions-api.dimo.zone",
8-
"Fetch": "https://fetch-api.dimo.zone",
8+
"Fetch": "https://fetch-api.dimo.zone/query",
99
"Telemetry": "https://telemetry-api.dimo.zone/query",
1010
"TokenExchange": "https://token-exchange-api.dimo.zone",
1111
"Trips": "https://trips-api.dimo.zone",
@@ -19,7 +19,7 @@
1919
"Conversations": "https://conversations-api.dev.dimo.zone",
2020
"Identity": "https://identity-api.dev.dimo.zone/query",
2121
"DeviceDefinitions": "https://device-definitions-api.dev.dimo.zone",
22-
"Fetch": "https://fetch-api.dev.dimo.zone",
22+
"Fetch": "https://fetch-api.dev.dimo.zone/query",
2323
"Telemetry": "https://telemetry-api.dev.dimo.zone/query",
2424
"TokenExchange": "https://token-exchange-api.dev.dimo.zone",
2525
"Trips": "https://trips-api.dev.dimo.zone",

dimo/graphql/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1+
from .fetch import Fetch
12
from .identity import Identity
23
from .telemetry import Telemetry
34

4-
__all__ = ["Identity", "Telemetry"]
5+
__all__ = ["Fetch", "Identity", "Telemetry"]

dimo/graphql/fetch.py

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
class Fetch:
2+
def __init__(self, dimo_instance):
3+
self.dimo = dimo_instance
4+
5+
# Primary query method
6+
def query(self, query, vehicle_jwt):
7+
return self.dimo.query("Fetch", query, token=vehicle_jwt)
8+
9+
def get_index_keys(self, vehicle_jwt: str, did: str, limit=None, filter=None) -> dict:
10+
query = """
11+
query GetIndexes($did: String!, $limit: Int, $filter: CloudEventFilter) {
12+
indexes(did: $did, limit: $limit, filter: $filter) {
13+
header {
14+
id
15+
source
16+
producer
17+
specversion
18+
subject
19+
time
20+
type
21+
datacontenttype
22+
dataschema
23+
dataversion
24+
signature
25+
tags
26+
}
27+
indexKey
28+
}
29+
}"""
30+
variables = {"did": did}
31+
if limit is not None:
32+
variables["limit"] = limit
33+
if filter is not None:
34+
variables["filter"] = filter
35+
return self.dimo.query("Fetch", query, token=vehicle_jwt, variables=variables)
36+
37+
def get_latest_index_key(self, vehicle_jwt: str, did: str, filter=None) -> dict:
38+
query = """
39+
query GetLatestIndex($did: String!, $filter: CloudEventFilter) {
40+
latestIndex(did: $did, filter: $filter) {
41+
header {
42+
id
43+
source
44+
producer
45+
specversion
46+
subject
47+
time
48+
type
49+
datacontenttype
50+
dataschema
51+
dataversion
52+
signature
53+
tags
54+
}
55+
indexKey
56+
}
57+
}"""
58+
variables = {"did": did}
59+
if filter is not None:
60+
variables["filter"] = filter
61+
return self.dimo.query("Fetch", query, token=vehicle_jwt, variables=variables)
62+
63+
def get_latest_object(self, vehicle_jwt: str, did: str, filter=None) -> dict:
64+
query = """
65+
query GetLatestCloudEvent($did: String!, $filter: CloudEventFilter) {
66+
latestCloudEvent(did: $did, filter: $filter) {
67+
header {
68+
id
69+
source
70+
producer
71+
specversion
72+
subject
73+
time
74+
type
75+
datacontenttype
76+
dataschema
77+
dataversion
78+
signature
79+
tags
80+
}
81+
data
82+
dataBase64
83+
}
84+
}"""
85+
variables = {"did": did}
86+
if filter is not None:
87+
variables["filter"] = filter
88+
return self.dimo.query("Fetch", query, token=vehicle_jwt, variables=variables)
89+
90+
def get_objects(self, vehicle_jwt: str, did: str, limit=None, filter=None) -> dict:
91+
query = """
92+
query GetCloudEvents($did: String!, $limit: Int, $filter: CloudEventFilter) {
93+
cloudEvents(did: $did, limit: $limit, filter: $filter) {
94+
header {
95+
id
96+
source
97+
producer
98+
specversion
99+
subject
100+
time
101+
type
102+
datacontenttype
103+
dataschema
104+
dataversion
105+
signature
106+
tags
107+
}
108+
data
109+
dataBase64
110+
}
111+
}"""
112+
variables = {"did": did}
113+
if limit is not None:
114+
variables["limit"] = limit
115+
if filter is not None:
116+
variables["filter"] = filter
117+
return self.dimo.query("Fetch", query, token=vehicle_jwt, variables=variables)

0 commit comments

Comments
 (0)