Added POST Create New EmailMessage API 2
parent
d66cdd54d0
commit
1d88799907
|
@ -2,6 +2,7 @@ import falcon
|
||||||
import simplejson as json
|
import simplejson as json
|
||||||
import mysql.connector
|
import mysql.connector
|
||||||
import config
|
import config
|
||||||
|
import re
|
||||||
from datetime import datetime, timedelta, timezone
|
from datetime import datetime, timedelta, timezone
|
||||||
from core.useractivity import user_logger, access_control
|
from core.useractivity import user_logger, access_control
|
||||||
|
|
||||||
|
@ -97,9 +98,17 @@ class EmailMessageCollection:
|
||||||
def on_post(req, resp):
|
def on_post(req, resp):
|
||||||
"""Handles POST requests"""
|
"""Handles POST requests"""
|
||||||
access_control(req)
|
access_control(req)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
raw_json = req.stream.read().decode('utf-8')
|
upload = req.get_param('file')
|
||||||
|
# Read upload file as binary
|
||||||
|
attachment_file_object = upload.file.read()
|
||||||
|
# Retrieve filename
|
||||||
|
attachment_file_name = upload.filename
|
||||||
|
except Exception as ex:
|
||||||
|
raise falcon.HTTPError(falcon.HTTP_400, title='API.ERROR',
|
||||||
|
description='API.FAILED_TO_UPLOAD_ATTACHMENT_FILE')
|
||||||
|
try:
|
||||||
|
raw_json = req.get_param('req')
|
||||||
except Exception as ex:
|
except Exception as ex:
|
||||||
raise falcon.HTTPError(falcon.HTTP_400, title='API.ERROR', description=ex)
|
raise falcon.HTTPError(falcon.HTTP_400, title='API.ERROR', description=ex)
|
||||||
|
|
||||||
|
@ -126,6 +135,10 @@ class EmailMessageCollection:
|
||||||
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
||||||
description='API.INVALID_RECIPIENT_EMAIL')
|
description='API.INVALID_RECIPIENT_EMAIL')
|
||||||
recipient_email = str.strip(new_values['data']['recipient_email'])
|
recipient_email = str.strip(new_values['data']['recipient_email'])
|
||||||
|
match = re.match(r'^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$', recipient_email)
|
||||||
|
if match is None:
|
||||||
|
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
||||||
|
description='API.INVALID_EMAIL')
|
||||||
|
|
||||||
if 'subject' not in new_values['data'].keys() or \
|
if 'subject' not in new_values['data'].keys() or \
|
||||||
not isinstance(new_values['data']['subject'], str) or \
|
not isinstance(new_values['data']['subject'], str) or \
|
||||||
|
@ -141,27 +154,6 @@ class EmailMessageCollection:
|
||||||
description='API.INVALID_MESSAGE_VALUE')
|
description='API.INVALID_MESSAGE_VALUE')
|
||||||
message = str.strip(new_values['data']['message'])
|
message = str.strip(new_values['data']['message'])
|
||||||
|
|
||||||
if 'attachment_file_name' not in new_values['data'].keys() or \
|
|
||||||
not isinstance(new_values['data']['attachment_file_name'], str) or \
|
|
||||||
len(str.strip(new_values['data']['attachment_file_name'])) == 0:
|
|
||||||
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
|
||||||
description='API.INVALID_ATTACHMENT_FILE_NAME')
|
|
||||||
attachment_file_name = str.strip(new_values['data']['attachment_file_name'])
|
|
||||||
|
|
||||||
if 'attachment_file_object' not in new_values['data'].keys() or \
|
|
||||||
not isinstance(new_values['data']['attachment_file_object'], str) or \
|
|
||||||
len(str.strip(new_values['data']['attachment_file_object'])) == 0:
|
|
||||||
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
|
||||||
description='API.INVALID_ATTACHMENT_FILE_OBJECT')
|
|
||||||
attachment_file_object = str.strip(new_values['data']['attachment_file_object'])
|
|
||||||
|
|
||||||
if 'attachment_file_object' not in new_values['data'].keys() or \
|
|
||||||
not isinstance(new_values['data']['attachment_file_object'], str) or \
|
|
||||||
len(str.strip(new_values['data']['attachment_file_object'])) == 0:
|
|
||||||
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
|
||||||
description='API.INVALID_ATTACHMENT_FILE_OBJECT')
|
|
||||||
attachment_file_object = str.strip(new_values['data']['attachment_file_object'])
|
|
||||||
|
|
||||||
if 'created_datetime' not in new_values['data'].keys() or \
|
if 'created_datetime' not in new_values['data'].keys() or \
|
||||||
not isinstance(new_values['data']['created_datetime'], str) or \
|
not isinstance(new_values['data']['created_datetime'], str) or \
|
||||||
len(str.strip(new_values['data']['created_datetime'])) == 0:
|
len(str.strip(new_values['data']['created_datetime'])) == 0:
|
||||||
|
|
Loading…
Reference in New Issue