You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							67 lines
						
					
					
						
							1.4 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							67 lines
						
					
					
						
							1.4 KiB
						
					
					
				
								from __future__ import annotations
							 | 
						|
								
							 | 
						|
								import json
							 | 
						|
								from typing import Any, Dict
							 | 
						|
								
							 | 
						|
								from requests import Session
							 | 
						|
								
							 | 
						|
								from ..todoist_api_python.headers import create_headers
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								def get(
							 | 
						|
								    session: Session,
							 | 
						|
								    url: str,
							 | 
						|
								    token: str | None = None,
							 | 
						|
								    params: Dict[str, Any] | None = None,
							 | 
						|
								):
							 | 
						|
								    response = session.get(url, params=params, headers=create_headers(token=token))
							 | 
						|
								
							 | 
						|
								    if response.status_code == 200:
							 | 
						|
								        return response.json()
							 | 
						|
								
							 | 
						|
								    response.raise_for_status()
							 | 
						|
								    return response.ok
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								def post(
							 | 
						|
								    session: Session,
							 | 
						|
								    url: str,
							 | 
						|
								    token: str | None = None,
							 | 
						|
								    data: Dict[str, Any] | None = None,
							 | 
						|
								):
							 | 
						|
								    request_id = data.pop("request_id", None) if data else None
							 | 
						|
								
							 | 
						|
								    headers = create_headers(
							 | 
						|
								        token=token, with_content=True if data else False, request_id=request_id
							 | 
						|
								    )
							 | 
						|
								
							 | 
						|
								    response = session.post(
							 | 
						|
								        url,
							 | 
						|
								        headers=headers,
							 | 
						|
								        data=json.dumps(data) if data else None,
							 | 
						|
								    )
							 | 
						|
								
							 | 
						|
								    if response.status_code == 200:
							 | 
						|
								        return response.json()
							 | 
						|
								
							 | 
						|
								    response.raise_for_status()
							 | 
						|
								    return response.ok
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								def delete(
							 | 
						|
								    session: Session,
							 | 
						|
								    url: str,
							 | 
						|
								    token: str | None = None,
							 | 
						|
								    args: Dict[str, Any] | None = None,
							 | 
						|
								):
							 | 
						|
								    request_id = args.pop("request_id", None) if args else None
							 | 
						|
								
							 | 
						|
								    headers = create_headers(token=token, request_id=request_id)
							 | 
						|
								
							 | 
						|
								    response = session.delete(
							 | 
						|
								        url,
							 | 
						|
								        headers=headers,
							 | 
						|
								    )
							 | 
						|
								
							 | 
						|
								    response.raise_for_status()
							 | 
						|
								    return response.ok
							 | 
						|
								
							 |