42 lines
909 B
Python
42 lines
909 B
Python
from typing import TypedDict
|
|
|
|
import requests
|
|
|
|
from config import DOCSEAL_API, DOCSEAL_KEY
|
|
|
|
headers = {
|
|
'X-Auth-Token': DOCSEAL_KEY,
|
|
}
|
|
|
|
Submitter = TypedDict('Submitter', {'role': str, 'name': str, 'email': str})
|
|
EmailMessage = TypedDict('EmailMessage', {'subject': str, 'body': str})
|
|
|
|
|
|
def create_submission_from_pdf(
|
|
filename: str,
|
|
file: str,
|
|
submitters: list[Submitter],
|
|
email_message: EmailMessage,
|
|
**kwargs,
|
|
):
|
|
r = requests.post(
|
|
url=f'{DOCSEAL_API}/api/submissions/pdf',
|
|
json={
|
|
'name': filename,
|
|
'documents': [
|
|
{
|
|
'name': filename,
|
|
'file': file,
|
|
}
|
|
],
|
|
'message': email_message,
|
|
'submitters': submitters,
|
|
**kwargs,
|
|
},
|
|
headers=headers,
|
|
timeout=6,
|
|
)
|
|
r.raise_for_status()
|
|
|
|
return True
|