From 64bb8fb877badab398c32bdacd44afdfdb31fb78 Mon Sep 17 00:00:00 2001 From: Kuba Winnicki Date: Thu, 14 Nov 2024 18:48:55 +0100 Subject: [PATCH] Refactoring ifirma core --- python_ifirma/core.py | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/python_ifirma/core.py b/python_ifirma/core.py index 9773bb2..c55a953 100644 --- a/python_ifirma/core.py +++ b/python_ifirma/core.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- + import six import json import datetime @@ -50,17 +51,17 @@ class Client: "Ulica": self.address.street, "Miejscowosc": self.address.city, "Kraj": self.address.country, - #"Email": self.email, - #"Telefon": self.phone_number, + # "Email": self.email, + # "Telefon": self.phone_number, "OsobaFizyczna": False, } if self.export == "eu": d.update({"PrefiksUE": self.tax_id[:2]}) if self.export == "eu" or self.export == "yes": d.update({"NIP": self.tax_id[2:]}) - #if self.export == "eu": - #d.update({"PrefiksUE": self.tax_id[:2]}) - #elif self.export == "yes": + # if self.export == "eu": + # d.update({"PrefiksUE": self.tax_id[:2]}) + # elif self.export == "yes": d.update({"Kraj": self.tax_id[:2]}) else: d.update({"NIP": self.tax_id}) @@ -147,7 +148,7 @@ class NewInvoiceParams: d.update({ "DataObowiazkuPodatkowego": self.__get_issue_date(), "NazwaUslugi": "services", - "Waluta": self.currency, #"PLN", + "Waluta": self.currency, "Jezyk": "en", "KursWalutyWidoczny": False, "KursWalutyZDniaPoprzedzajacegoDzienWystawieniaFaktury": 1.00, @@ -195,7 +196,7 @@ class iFirmaAPI(): return response_dict - def __create_authentication_header_value(self, request_hash_text, key_value=""): + def __get_auth_header(self, request_hash_text, key_value=""): key_value = key_value or self.__invoice_key_value return "IAPIS user={}, hmac-sha1={}".format( self.__username, @@ -215,7 +216,7 @@ class iFirmaAPI(): headers = { "Accept": "application/json", "Content-type": "application/json; charset=UTF-8", - "Authentication": self.__create_authentication_header_value(request_hash_text) + "Authentication": self.__get_auth_header(request_hash_text) } response_dict = self.__execute_post_request(headers, request_content, url) @@ -253,11 +254,14 @@ class iFirmaAPI(): "Accept": "application/json", "Content-type": "application/json; charset=UTF-8", "Authentication": - self.__create_authentication_header_value(request_hash_text, self.__user_key_value) + self.__get_auth_header(request_hash_text, self.__user_key_value) } - resp = requests.get(url, headers=headers) - content = resp.content - return content + response = requests.get(url, headers=headers) + resp = json.loads(response.content.decode("utf-8")) + + month = resp['response']["MiesiacKsiegowy"] + year = resp['response']['RokKsiegowy'] + return year, month def __post_cost(self, cost_json, url): request_content = json.dumps(cost_json, separators=(',', ':')) @@ -270,7 +274,7 @@ class iFirmaAPI(): headers = { "Accept": "application/json", "Content-type": "application/json; charset=UTF-8", - "Authentication": self.__create_authentication_header_value(request_hash_text) + "Authentication": self.__get_auth_header(request_hash_text) } response_dict = self.__execute_post_request(headers, request_content, url) @@ -291,7 +295,7 @@ class iFirmaAPI(): headers = { "Accept": "application/json", "Content-type": "application/json; charset=UTF-8", - "Authentication": self.__create_authentication_header_value(request_hash_text) + "Authentication": self.__get_auth_header(request_hash_text) } params = {} if limit: @@ -301,7 +305,7 @@ class iFirmaAPI(): return rj def get_invoice(self, invoice_id): - url = "https://www.ifirma.pl/iapi/fakturaeksportuslug/{}.json".format(invoice_id) + url = f"https://www.ifirma.pl/iapi/fakturaeksportuslug/{invoice_id}.json" request_hash_text = "{}{}{}".format( url, self.__username, @@ -310,7 +314,7 @@ class iFirmaAPI(): headers = { "Accept": "application/json", "Content-type": "application/json; charset=UTF-8", - "Authentication": self.__create_authentication_header_value(request_hash_text) + "Authentication": self.__get_auth_header(request_hash_text) } resp = requests.get(url, headers=headers) rj = json.loads(resp.content.decode('utf-8')) @@ -320,11 +324,11 @@ class iFirmaAPI(): return rj def get_invoice_pdf(self, invoice_id): - url = "https://www.ifirma.pl/iapi/fakturakraj/{}.pdf".format(invoice_id) + url = f"https://www.ifirma.pl/iapi/fakturakraj/{invoice_id}.pdf" return self.__download_pdf(url) def __get_invoice_number(self, invoice_id): - url = "https://www.ifirma.pl/iapi/fakturakraj/{}.json".format(invoice_id) + url = f"https://www.ifirma.pl/iapi/fakturakraj/{invoice_id}.json" request_hash_text = "{}{}{}".format( url, self.__username, @@ -333,7 +337,7 @@ class iFirmaAPI(): headers = { "Accept": "application/json", "Content-type": "application/json; charset=UTF-8", - "Authentication": self.__create_authentication_header_value(request_hash_text) + "Authentication": self.__get_auth_header(request_hash_text) } resp = requests.get(url, headers=headers) rj = json.loads(resp.content.decode('utf-8')) @@ -351,7 +355,7 @@ class iFirmaAPI(): headers = { "Accept": "application/pdf", "Content-type": "application/pdf; charset=UTF-8", - "Authentication": self.__create_authentication_header_value(request_hash_text) + "Authentication": self.__get_auth_header(request_hash_text) } resp = requests.get(url, headers=headers)