feat: billing guest access
This commit is contained in:
		
							
								
								
									
										27
									
								
								external/billing/billing_client.py
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								external/billing/billing_client.py
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
import aiohttp
 | 
			
		||||
 | 
			
		||||
from .schemas import *
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class BillingClient:
 | 
			
		||||
    def __init__(self, api_key: str):
 | 
			
		||||
        self.api_key = api_key
 | 
			
		||||
        self.headers = {
 | 
			
		||||
            'Authorization': f'Bearer {self.api_key}'
 | 
			
		||||
        }
 | 
			
		||||
        self.base_url = 'https://billing.denco.store'
 | 
			
		||||
 | 
			
		||||
    async def _method(self, http_method, method, **kwargs):
 | 
			
		||||
        async with aiohttp.ClientSession(headers=self.headers) as session:
 | 
			
		||||
            async with session.request(http_method, self.base_url + method, **kwargs) as response:
 | 
			
		||||
                return await response.json()
 | 
			
		||||
 | 
			
		||||
    async def create(self, request: CreateBillRequestSchema) -> CreateBillingResponseSchema:
 | 
			
		||||
        json_data = request.model_dump()
 | 
			
		||||
        response = await self._method('POST', '/create', json=json_data)
 | 
			
		||||
        return CreateBillingResponseSchema.model_validate(response)
 | 
			
		||||
 | 
			
		||||
    async def notify_received(self, request: NotifyReceivedBillRequestSchema) -> NotifyReceivedBillResponseSchema:
 | 
			
		||||
        json_data = request.model_dump()
 | 
			
		||||
        response = await self._method('POST', '/notify-received', json=json_data)
 | 
			
		||||
        return NotifyReceivedBillResponseSchema.model_validate(response)
 | 
			
		||||
		Reference in New Issue
	
	Block a user