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