From 00fa46a37d6bab299b6bd7f2512c931c5c19fab8 Mon Sep 17 00:00:00 2001 From: Ricardo DG Date: Sun, 18 Dec 2022 23:02:41 -0600 Subject: [PATCH 1/2] [NJ][Feature][IOS] Solved a get error on the last version of micropython - v1.19.1 --- .gitignore | 1 + ufirestore/ufirestore.py | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index b6e4761..99efc91 100644 --- a/.gitignore +++ b/.gitignore @@ -127,3 +127,4 @@ dmypy.json # Pyre type checker .pyre/ +.DS_Store diff --git a/ufirestore/ufirestore.py b/ufirestore/ufirestore.py index ebec4e6..a8f760c 100644 --- a/ufirestore/ufirestore.py +++ b/ufirestore/ufirestore.py @@ -48,8 +48,7 @@ def send_request(path, method="get", params=dict(), data=None, dump=True): if FIREBASE_GLOBAL_VAR.ACCESS_TOKEN: headers["Authorization"] = "Bearer " + FIREBASE_GLOBAL_VAR.ACCESS_TOKEN - response = urequests.request( - method, path, params=params, headers=headers, json=data) + response = urequests.request(method, path, data=params, json=data, headers=headers) if dump == True: if response.status_code < 200 or response.status_code > 299: From 17265eba362209c662657714ca7aa3b22c334548 Mon Sep 17 00:00:00 2001 From: Ricardo DG Date: Fri, 23 Dec 2022 00:31:37 -0600 Subject: [PATCH 2/2] [Bugfix][IOS] Solved problems to write to firestore --- ufirestore/json.py | 5 ++--- ufirestore/ufirestore.py | 34 ++++++++++++++++++---------------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/ufirestore/json.py b/ufirestore/json.py index 4369f0f..6d29f41 100644 --- a/ufirestore/json.py +++ b/ufirestore/json.py @@ -120,9 +120,8 @@ def cb(cur, s): return self.cursor(path, cb) - def process(self, name): + def process(self): return { - "name": name, "fields": self.data } @@ -208,4 +207,4 @@ def where(self, field, op, value): return self def process(self): - return self.data + return self.data \ No newline at end of file diff --git a/ufirestore/ufirestore.py b/ufirestore/ufirestore.py index a8f760c..e67d614 100644 --- a/ufirestore/ufirestore.py +++ b/ufirestore/ufirestore.py @@ -1,7 +1,6 @@ import ujson -import urequests import _thread - +import urequests class FirestoreException(Exception): def __init__(self, message, code=400): @@ -42,37 +41,39 @@ def get_resource_name(url): return url[url.find("projects"):] -def send_request(path, method="get", params=dict(), data=None, dump=True): +def send_request(path, method="GET", params=dict(), data=None, dump=True): headers = {} - if FIREBASE_GLOBAL_VAR.ACCESS_TOKEN: headers["Authorization"] = "Bearer " + FIREBASE_GLOBAL_VAR.ACCESS_TOKEN - - response = urequests.request(method, path, data=params, json=data, headers=headers) + if method == "POST": + response = urequests.request(method, path, data=None, json=data) + else: + response = urequests.request(method, path, headers=headers) if dump == True: if response.status_code < 200 or response.status_code > 299: print(response.text) raise FirestoreException(response.reason, response.status_code) - json = response.json() - if json.get("error"): + jsonResponse = response.json() + if jsonResponse.get("error"): error = json["error"] code = error["code"] message = error["message"] raise FirestoreException(message, code) - return json + return jsonResponse class INTERNAL: + def patch(DOCUMENT_PATH, DOC, cb, update_mask=None): PATH = construct_url(DOCUMENT_PATH) LOCAL_PARAMS = to_url_params() if update_mask: for field in update_mask: - LOCAL_PARAMS += "updateMask.fieldPaths=" + field - DATA = DOC.process(get_resource_name(PATH)) - LOCAL_OUTPUT = send_request(PATH+LOCAL_PARAMS, "post", data=DATA) + LOCAL_PARAMS += "updateMask=" + field + DATA = DOC.process() + LOCAL_OUTPUT = send_request(PATH, "POST", data=DATA) if cb: try: return cb(LOCAL_OUTPUT) @@ -85,7 +86,7 @@ def create(COLLECTION_PATH, DOC, cb, document_id=None): PATH = construct_url(COLLECTION_PATH) PARAMS = {"documentId": document_id} DATA = DOC.process(get_resource_name(PATH)) - LOCAL_OUTPUT = send_request(PATH, "post", PARAMS, DATA) + LOCAL_OUTPUT = send_request(PATH, "POST", PARAMS, DATA) if cb: try: return cb(LOCAL_OUTPUT) @@ -100,7 +101,7 @@ def get(DOCUMENT_PATH, cb, mask=None): if mask: for field in mask: LOCAL_PARAMS += "mask.fieldPaths=" + field - LOCAL_OUTPUT = send_request(PATH+LOCAL_PARAMS, "get") + LOCAL_OUTPUT = send_request(PATH+LOCAL_PARAMS, "GET") if cb: try: return cb(LOCAL_OUTPUT) @@ -166,7 +167,7 @@ def list_collection_ids(DOCUMENT_PATH, cb, page_size=None, page_token=None): "pageSize": page_size, "pageToken": page_token } - LOCAL_OUTPUT = send_request(PATH, "post", data=DATA) + LOCAL_OUTPUT = send_request(PATH, "POST", data=DATA) if cb: try: return cb(LOCAL_OUTPUT.get("collectionIds"), @@ -182,7 +183,7 @@ def run_query(DOCUMENT_PATH, query, cb): DATA = { "structuredQuery": query.data } - LOCAL_OUTPUT = send_request(PATH, "post", data=DATA) + LOCAL_OUTPUT = send_request(PATH, "POST", data=DATA) if cb: try: return cb(LOCAL_OUTPUT.get("document")) @@ -266,3 +267,4 @@ def run_query(PATH, query, bg=True, cb=None): INTERNAL.run_query, [PATH, query, cb]) else: return INTERNAL.run_query(PATH, query, cb) +