11import io
2+ from urllib .parse import urljoin
3+
4+ import requests
5+ from urllib3 .filepost import encode_multipart_formdata
6+
7+ from ._authorization import authorization_header , rfc_1123_date
8+
29
310class CloudRecoService :
411 """
@@ -9,8 +16,8 @@ def __init__(
916 self ,
1017 client_access_key : str ,
1118 client_secret_key : str ,
12- # TODO - instead use vwq URL
13- base_vws_url : str = 'https://vws .vuforia.com' ,
19+ # TODO - instead use/call this vwq URL
20+ base_vws_url : str = 'https://cloudreco .vuforia.com' ,
1421 ) -> None :
1522 """
1623 Args:
@@ -29,4 +36,37 @@ def query(
2936 """
3037 TODO docstring
3138 """
32- pass
39+ image_content = image .getvalue ()
40+ body = {'image' : ('image.jpeg' , image_content , 'image/jpeg' )}
41+ date = rfc_1123_date ()
42+ request_path = '/v1/query'
43+ content , content_type_header = encode_multipart_formdata (body )
44+ method = 'POST'
45+
46+ authorization_string = authorization_header (
47+ access_key = self ._client_access_key ,
48+ secret_key = self ._client_secret_key ,
49+ method = method ,
50+ content = content ,
51+ # Note that this is not the actual Content-Type header value sent.
52+ content_type = 'multipart/form-data' ,
53+ date = date ,
54+ request_path = request_path ,
55+ )
56+
57+ headers = {
58+ 'Authorization' : authorization_string ,
59+ 'Date' : date ,
60+ 'Content-Type' : content_type_header ,
61+ }
62+
63+ response = requests .request (
64+ method = method ,
65+ url = urljoin (base = self ._base_vws_url , url = request_path ),
66+ headers = headers ,
67+ data = content ,
68+ )
69+
70+ return response .json ()['results' ]
71+ import pdb ; pdb .set_trace ()
72+ return response
0 commit comments