mirror of
				https://github.com/Eledio/superfaktura-client.git
				synced 2025-10-31 16:11:20 +01:00 
			
		
		
		
	Add basic API and Client structure
This commit is contained in:
		
							
								
								
									
										3
									
								
								.env.example
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.env.example
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | SUPERFAKTURA_API_KEY= | ||||||
|  | SUPERFAKTURA_API_URL= | ||||||
|  | SUPERFAKTURA_API_EMAIL= | ||||||
							
								
								
									
										2
									
								
								requirements.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								requirements.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | requests~=2.32.3 | ||||||
|  | python-dotenv~=1.0.1 | ||||||
							
								
								
									
										28
									
								
								superfaktura/api.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								superfaktura/api.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | |||||||
|  | from typing import Dict | ||||||
|  |  | ||||||
|  | import requests | ||||||
|  | import os | ||||||
|  | from dotenv import load_dotenv  # type: ignore | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class SuperFakturaAPI: | ||||||
|  |     def __init__(self) -> None: | ||||||
|  |         load_dotenv() | ||||||
|  |         _api_key = os.getenv("SUPERFAKTURA_API_KEY") | ||||||
|  |         self._api_url = os.getenv("SUPERFAKTURA_API_URL") | ||||||
|  |         _api_mail = os.getenv("SUPERFAKTURA_API_EMAIL") | ||||||
|  |         self._auth_header = { | ||||||
|  |             "Authorization": f"SFAPI email={_api_mail}&apikey={_api_key}" | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |     def get(self, endpoint: str) -> Dict: | ||||||
|  |         url = f"{self._api_url}/{endpoint}" | ||||||
|  |         req = requests.get(url=url, headers=self._auth_header) | ||||||
|  |         return req.json() | ||||||
|  |  | ||||||
|  |     def post(self, endpoint: str, data: dict) -> Dict: | ||||||
|  |         url = f"{self._api_url}/{endpoint}" | ||||||
|  |         print(url) | ||||||
|  |         print(data) | ||||||
|  |         req = requests.post(url=url, headers=self._auth_header, data=data) | ||||||
|  |         return req.json() | ||||||
							
								
								
									
										54
									
								
								superfaktura/client_contacts.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								superfaktura/client_contacts.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | |||||||
|  | import dataclasses | ||||||
|  | from pprint import pprint | ||||||
|  |  | ||||||
|  | from superfaktura.api import SuperFakturaAPI | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @dataclasses.dataclass | ||||||
|  | class ClientContactModel: | ||||||
|  |     name: str | ||||||
|  |     address: str = None | ||||||
|  |     bank_account: str = None | ||||||
|  |     bank_code: str = None | ||||||
|  |     city: str = None | ||||||
|  |     comment: str = None | ||||||
|  |     country: str = None | ||||||
|  |     country_id: int = None | ||||||
|  |     currency: str = None | ||||||
|  |     default_variable: str = None | ||||||
|  |     delivery_address: str = None | ||||||
|  |     delivery_city: str = None | ||||||
|  |     delivery_country: str = None | ||||||
|  |     delivery_country_id: int = None | ||||||
|  |     delivery_name: str = None | ||||||
|  |     delivery_phone: str = None | ||||||
|  |     delivery_zip: str = None | ||||||
|  |     dic: str = None | ||||||
|  |     discount: float = None | ||||||
|  |     due_date: int = None | ||||||
|  |     email: str = None | ||||||
|  |     fax: str = None | ||||||
|  |     iban: str = None | ||||||
|  |     ic_dph: str = None | ||||||
|  |     ico: str = None | ||||||
|  |     match_address: int = None | ||||||
|  |     phone: str = None | ||||||
|  |     swift: str = None | ||||||
|  |     tags: str = None | ||||||
|  |     uuid: str = None | ||||||
|  |     zip: str = None | ||||||
|  |     update: bool = None | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class ClientContact(SuperFakturaAPI): | ||||||
|  |     def __init__(self): | ||||||
|  |         super().__init__() | ||||||
|  |  | ||||||
|  |     def add_contact(self, contact: ClientContactModel): | ||||||
|  |         url = "clients/create" | ||||||
|  |         return self.post(endpoint=url, data=dataclasses.asdict(contact)) | ||||||
|  |  | ||||||
|  | if __name__ == "__main__": | ||||||
|  |     client = ClientContact() | ||||||
|  |     resp = client.add_contact(ClientContactModel(name="John Doe")) | ||||||
|  |     pprint(resp) | ||||||
		Reference in New Issue
	
	Block a user