added aliyunsmsapi to api/core
parent
83e7e487ca
commit
447eb57202
|
@ -582,6 +582,15 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"response": []
|
"response": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "New Request",
|
||||||
|
"request": {
|
||||||
|
"method": "GET",
|
||||||
|
"header": [],
|
||||||
|
"url": null
|
||||||
|
},
|
||||||
|
"response": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -2693,37 +2702,37 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "GSM Modem",
|
"name": "Aliyun SMS API",
|
||||||
"item": [
|
"item": [
|
||||||
{
|
{
|
||||||
"name": "GET All GSM Modems",
|
"name": "GET All Aliyun SMS APIs",
|
||||||
"request": {
|
"request": {
|
||||||
"method": "GET",
|
"method": "GET",
|
||||||
"header": [],
|
"header": [],
|
||||||
"url": {
|
"url": {
|
||||||
"raw": "{{base_url}}/gsmmodems",
|
"raw": "{{base_url}}/aliyunsmsapis",
|
||||||
"host": [
|
"host": [
|
||||||
"{{base_url}}"
|
"{{base_url}}"
|
||||||
],
|
],
|
||||||
"path": [
|
"path": [
|
||||||
"gsmmodems"
|
"aliyunsmsapis"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"response": []
|
"response": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "GET a GSM Modem by ID",
|
"name": "GET an Aliyun SMS API by ID",
|
||||||
"request": {
|
"request": {
|
||||||
"method": "GET",
|
"method": "GET",
|
||||||
"header": [],
|
"header": [],
|
||||||
"url": {
|
"url": {
|
||||||
"raw": "{{base_url}}/gsmmodems/1",
|
"raw": "{{base_url}}/aliyunsmsapis/1",
|
||||||
"host": [
|
"host": [
|
||||||
"{{base_url}}"
|
"{{base_url}}"
|
||||||
],
|
],
|
||||||
"path": [
|
"path": [
|
||||||
"gsmmodems",
|
"aliyunsmsapis",
|
||||||
"1"
|
"1"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -2731,38 +2740,42 @@
|
||||||
"response": []
|
"response": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "POST Create New GSM Modem",
|
"name": "POST Create New Aliyun SMS API",
|
||||||
"request": {
|
"request": {
|
||||||
"method": "POST",
|
"method": "POST",
|
||||||
"header": [],
|
"header": [],
|
||||||
"body": {
|
"body": {
|
||||||
"mode": "raw",
|
"mode": "raw",
|
||||||
"raw": "{\"data\":{\"serial_port\":\"/dev/ttyS1\",\"baud_rate\":115200}}"
|
"raw": "{\"data\":{\"access_key_id\":\"xTAI5t8KUj8jXXXXXXXXXXXX\",\"access_key_secret\":\"fXXjFLA7GeXXXXXXXXXXXXXXXXXXXX\",\"endpoint\":\"https://dysmsapi.aliyuncs.com\",\"sign_name\":\"MYEMS\",\"template_code\":\"SMS_153055065\"}}"
|
||||||
},
|
},
|
||||||
"url": {
|
"url": {
|
||||||
"raw": "{{base_url}}/gsmmodems",
|
"raw": "{{base_url}}/aliyunsmsapis",
|
||||||
"host": [
|
"host": [
|
||||||
"{{base_url}}"
|
"{{base_url}}"
|
||||||
],
|
],
|
||||||
"path": [
|
"path": [
|
||||||
"gsmmodems"
|
"aliyunsmsapis"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"response": []
|
"response": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "PUT Update a GSM Modem",
|
"name": "PUT Update an Aliyun SMS API",
|
||||||
"request": {
|
"request": {
|
||||||
"method": "PUT",
|
"method": "PUT",
|
||||||
"header": [],
|
"header": [],
|
||||||
|
"body": {
|
||||||
|
"mode": "raw",
|
||||||
|
"raw": "{\"data\":{\"access_key_id\":\"LTAI5t8KUj8jXXXXXXXXXXXX\",\"access_key_secret\":\"fXXjFLA7GeXXXXXXXXXXXXXXXXXXXX\",\"endpoint\":\"https://dysmsapi.aliyuncs.com\",\"sign_name\":\"MYEMS\",\"template_code\":\"SMS_153055065\"}}"
|
||||||
|
},
|
||||||
"url": {
|
"url": {
|
||||||
"raw": "{{base_url}}/gsmmodems/1",
|
"raw": "{{base_url}}/aliyunsmsapis/1",
|
||||||
"host": [
|
"host": [
|
||||||
"{{base_url}}"
|
"{{base_url}}"
|
||||||
],
|
],
|
||||||
"path": [
|
"path": [
|
||||||
"gsmmodems",
|
"aliyunsmsapis",
|
||||||
"1"
|
"1"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -2770,17 +2783,17 @@
|
||||||
"response": []
|
"response": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "DELETE a GSM Modem by ID",
|
"name": "DELETE an Aliyun SMS API by ID",
|
||||||
"request": {
|
"request": {
|
||||||
"method": "DELETE",
|
"method": "DELETE",
|
||||||
"header": [],
|
"header": [],
|
||||||
"url": {
|
"url": {
|
||||||
"raw": "{{base_url}}/gsmmodems/2",
|
"raw": "{{base_url}}/aliyunsmsapis/2",
|
||||||
"host": [
|
"host": [
|
||||||
"{{base_url}}"
|
"{{base_url}}"
|
||||||
],
|
],
|
||||||
"path": [
|
"path": [
|
||||||
"gsmmodems",
|
"aliyunsmsapis",
|
||||||
"2"
|
"2"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import falcon
|
import falcon
|
||||||
from falcon_cors import CORS
|
from falcon_cors import CORS
|
||||||
from falcon_multipart.middleware import MultipartMiddleware
|
from falcon_multipart.middleware import MultipartMiddleware
|
||||||
from core import energyflowdiagram, privilege, textmessage, distributioncircuit, virtualmeter, \
|
from core import aliyunsmsapi, energyflowdiagram, privilege, textmessage, distributioncircuit, virtualmeter, \
|
||||||
costcenter, point, knowledgefile, meter, gsmmodem, tariff, user, storetype, timezone, \
|
costcenter, point, knowledgefile, meter, tariff, user, storetype, timezone, \
|
||||||
costfile, offlinemeterfile, version, contact, emailserver, combinedequipment, datasource, equipment, tenant, \
|
costfile, offlinemeterfile, version, contact, emailserver, combinedequipment, datasource, equipment, tenant, \
|
||||||
shopfloor, webmessage, distributionsystem, store, emailmessage, tenanttype, wechatmessage, space, gateway, \
|
shopfloor, webmessage, distributionsystem, store, emailmessage, tenanttype, wechatmessage, space, gateway, \
|
||||||
offlinemeter, rule, energycategory, sensor, energyitem, notification, menu
|
offlinemeter, rule, energycategory, sensor, energyitem, notification, menu
|
||||||
|
@ -99,9 +99,13 @@ api = falcon.API(middleware=[cors.middleware, MultipartMiddleware()])
|
||||||
|
|
||||||
|
|
||||||
########################################################################################################################
|
########################################################################################################################
|
||||||
# Routes for System Configuration
|
# Routes for System Core
|
||||||
########################################################################################################################
|
########################################################################################################################
|
||||||
|
|
||||||
|
api.add_route('/aliyunsmsapis',
|
||||||
|
aliyunsmsapi.AliyunSMSAPICollection())
|
||||||
|
api.add_route('/aliyunsmsapis/{id_}',
|
||||||
|
aliyunsmsapi.AliyunSMSAPIItem())
|
||||||
api.add_route('/combinedequipments',
|
api.add_route('/combinedequipments',
|
||||||
combinedequipment.CombinedEquipmentCollection())
|
combinedequipment.CombinedEquipmentCollection())
|
||||||
api.add_route('/combinedequipments/{id_}',
|
api.add_route('/combinedequipments/{id_}',
|
||||||
|
@ -232,11 +236,6 @@ api.add_route('/gateways/{id_}',
|
||||||
api.add_route('/gateways/{id_}/datasources',
|
api.add_route('/gateways/{id_}/datasources',
|
||||||
gateway.GatewayDataSourceCollection())
|
gateway.GatewayDataSourceCollection())
|
||||||
|
|
||||||
api.add_route('/gsmmodems',
|
|
||||||
gsmmodem.GSMModemCollection())
|
|
||||||
api.add_route('/gsmmodems/{id_}',
|
|
||||||
gsmmodem.GSMModemItem())
|
|
||||||
|
|
||||||
api.add_route('/knowledgefiles',
|
api.add_route('/knowledgefiles',
|
||||||
knowledgefile.KnowledgeFileCollection())
|
knowledgefile.KnowledgeFileCollection())
|
||||||
api.add_route('/knowledgefiles/{id_}',
|
api.add_route('/knowledgefiles/{id_}',
|
||||||
|
|
|
@ -0,0 +1,268 @@
|
||||||
|
import falcon
|
||||||
|
import json
|
||||||
|
import mysql.connector
|
||||||
|
import config
|
||||||
|
from core.userlogger import user_logger
|
||||||
|
|
||||||
|
|
||||||
|
class AliyunSMSAPICollection:
|
||||||
|
@staticmethod
|
||||||
|
def __init__():
|
||||||
|
"""Initializes AliyunSMSAPICollection"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def on_options(req, resp):
|
||||||
|
resp.status = falcon.HTTP_200
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def on_get(req, resp):
|
||||||
|
cnx = mysql.connector.connect(**config.myems_fdd_db)
|
||||||
|
cursor = cnx.cursor()
|
||||||
|
|
||||||
|
query = (" SELECT id, access_key_id, access_key_secret, endpoint, sign_name, template_code "
|
||||||
|
" FROM tbl_aliyun_sms_api ")
|
||||||
|
cursor.execute(query)
|
||||||
|
rows = cursor.fetchall()
|
||||||
|
cursor.close()
|
||||||
|
cnx.disconnect()
|
||||||
|
|
||||||
|
result = list()
|
||||||
|
if rows is not None and len(rows) > 0:
|
||||||
|
for row in rows:
|
||||||
|
meta_result = {"id": row[0],
|
||||||
|
"access_key_id": row[1],
|
||||||
|
"access_key_secret": row[2],
|
||||||
|
"endpoint": row[3],
|
||||||
|
"sign_name": row[4],
|
||||||
|
"template_code": row[5]}
|
||||||
|
result.append(meta_result)
|
||||||
|
|
||||||
|
resp.body = json.dumps(result)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
@user_logger
|
||||||
|
def on_post(req, resp):
|
||||||
|
"""Handles POST requests"""
|
||||||
|
try:
|
||||||
|
raw_json = req.stream.read().decode('utf-8')
|
||||||
|
except Exception as ex:
|
||||||
|
raise falcon.HTTPError(falcon.HTTP_400, title='API.ERROR', description=ex)
|
||||||
|
|
||||||
|
new_values = json.loads(raw_json)
|
||||||
|
|
||||||
|
if 'access_key_id' not in new_values['data'].keys() or \
|
||||||
|
not isinstance(new_values['data']['access_key_id'], str) or \
|
||||||
|
len(str.strip(new_values['data']['access_key_id'])) == 0:
|
||||||
|
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
||||||
|
description='API.INVALID_ALIYUN_SMS_API_ACCESS_KEY_ID')
|
||||||
|
access_key_id = str.strip(new_values['data']['access_key_id'])
|
||||||
|
|
||||||
|
if 'access_key_secret' not in new_values['data'].keys() or \
|
||||||
|
not isinstance(new_values['data']['access_key_secret'], str) or \
|
||||||
|
len(new_values['data']['access_key_secret']) == 0:
|
||||||
|
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
||||||
|
description='API.INVALID_ALIYUN_SMS_API_ACCESS_KEY_SECRET')
|
||||||
|
access_key_secret = new_values['data']['access_key_secret']
|
||||||
|
|
||||||
|
if 'endpoint' not in new_values['data'].keys() or \
|
||||||
|
not isinstance(new_values['data']['endpoint'], str) or \
|
||||||
|
len(new_values['data']['endpoint']) == 0:
|
||||||
|
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
||||||
|
description='API.INVALID_ALIYUN_SMS_API_ENDPOINT')
|
||||||
|
endpoint = new_values['data']['endpoint']
|
||||||
|
|
||||||
|
if 'sign_name' not in new_values['data'].keys() or \
|
||||||
|
not isinstance(new_values['data']['sign_name'], str) or \
|
||||||
|
len(new_values['data']['sign_name']) == 0:
|
||||||
|
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
||||||
|
description='API.INVALID_ALIYUN_SMS_API_SIGN_NAME')
|
||||||
|
sign_name = new_values['data']['sign_name']
|
||||||
|
|
||||||
|
if 'template_code' not in new_values['data'].keys() or \
|
||||||
|
not isinstance(new_values['data']['template_code'], str) or \
|
||||||
|
len(new_values['data']['template_code']) == 0:
|
||||||
|
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
||||||
|
description='API.INVALID_ALIYUN_SMS_API_TEMPLATE_CODE')
|
||||||
|
template_code = new_values['data']['template_code']
|
||||||
|
|
||||||
|
cnx = mysql.connector.connect(**config.myems_fdd_db)
|
||||||
|
cursor = cnx.cursor()
|
||||||
|
|
||||||
|
cursor.execute(" SELECT id "
|
||||||
|
" FROM tbl_aliyun_sms_api "
|
||||||
|
" WHERE access_key_id = %s ", (access_key_id,))
|
||||||
|
if cursor.fetchone() is not None:
|
||||||
|
cursor.close()
|
||||||
|
cnx.disconnect()
|
||||||
|
raise falcon.HTTPError(falcon.HTTP_404, title='API.BAD_REQUEST',
|
||||||
|
description='API.ALIYUN_SMS_API_ACCESS_KEY_ID_IS_ALREADY_IN_USE')
|
||||||
|
|
||||||
|
add_value = (" INSERT INTO tbl_aliyun_sms_api "
|
||||||
|
" (access_key_id, access_key_secret, endpoint, sign_name, template_code) "
|
||||||
|
" VALUES (%s, %s, %s, %s, %s) ")
|
||||||
|
cursor.execute(add_value, (access_key_id,
|
||||||
|
access_key_secret,
|
||||||
|
endpoint,
|
||||||
|
sign_name,
|
||||||
|
template_code))
|
||||||
|
new_id = cursor.lastrowid
|
||||||
|
cnx.commit()
|
||||||
|
cursor.close()
|
||||||
|
cnx.disconnect()
|
||||||
|
|
||||||
|
resp.status = falcon.HTTP_201
|
||||||
|
resp.location = '/aliyunsmsapis/' + str(new_id)
|
||||||
|
|
||||||
|
|
||||||
|
class AliyunSMSAPIItem:
|
||||||
|
@staticmethod
|
||||||
|
def __init__():
|
||||||
|
"""Initializes AliyunSMSAPIItem"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def on_options(req, resp, id_):
|
||||||
|
resp.status = falcon.HTTP_200
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def on_get(req, resp, id_):
|
||||||
|
if not id_.isdigit() or int(id_) <= 0:
|
||||||
|
raise falcon.HTTPError(falcon.HTTP_400, '400 Bad Request')
|
||||||
|
|
||||||
|
cnx = mysql.connector.connect(**config.myems_fdd_db)
|
||||||
|
cursor = cnx.cursor()
|
||||||
|
|
||||||
|
query = (" SELECT id, access_key_id, access_key_secret, endpoint, sign_name, template_code "
|
||||||
|
" FROM tbl_aliyun_sms_api "
|
||||||
|
" WHERE id = %s ")
|
||||||
|
cursor.execute(query, (id_,))
|
||||||
|
row = cursor.fetchone()
|
||||||
|
cursor.close()
|
||||||
|
cnx.disconnect()
|
||||||
|
if row is None:
|
||||||
|
raise falcon.HTTPError(falcon.HTTP_404, 'API.NOT_FOUND')
|
||||||
|
|
||||||
|
result = {"id": row[0],
|
||||||
|
"access_key_id": row[1],
|
||||||
|
"access_key_secret": row[2],
|
||||||
|
"endpoint": row[3],
|
||||||
|
"sign_name": row[4],
|
||||||
|
"template_code": row[5]}
|
||||||
|
resp.body = json.dumps(result)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
@user_logger
|
||||||
|
def on_delete(req, resp, id_):
|
||||||
|
if not id_.isdigit() or int(id_) <= 0:
|
||||||
|
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
||||||
|
description='API.INVALID_ALIYUN_SMS_API_ID')
|
||||||
|
|
||||||
|
cnx = mysql.connector.connect(**config.myems_fdd_db)
|
||||||
|
cursor = cnx.cursor()
|
||||||
|
|
||||||
|
cursor.execute(" SELECT access_key_id "
|
||||||
|
" FROM tbl_aliyun_sms_api "
|
||||||
|
" WHERE id = %s ", (id_,))
|
||||||
|
if cursor.fetchone() is None:
|
||||||
|
cursor.close()
|
||||||
|
cnx.disconnect()
|
||||||
|
raise falcon.HTTPError(falcon.HTTP_404, title='API.NOT_FOUND',
|
||||||
|
description='API.ALIYUN_SMS_API_NOT_FOUND')
|
||||||
|
|
||||||
|
cursor.execute(" DELETE FROM tbl_aliyun_sms_api WHERE id = %s ", (id_,))
|
||||||
|
cnx.commit()
|
||||||
|
|
||||||
|
cursor.close()
|
||||||
|
cnx.disconnect()
|
||||||
|
|
||||||
|
resp.status = falcon.HTTP_204
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
@user_logger
|
||||||
|
def on_put(req, resp, id_):
|
||||||
|
"""Handles PUT requests"""
|
||||||
|
try:
|
||||||
|
raw_json = req.stream.read().decode('utf-8')
|
||||||
|
except Exception as ex:
|
||||||
|
raise falcon.HTTPError(falcon.HTTP_400, title='API.EXCEPTION', description=ex)
|
||||||
|
|
||||||
|
if not id_.isdigit() or int(id_) <= 0:
|
||||||
|
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
||||||
|
description='API.INVALID_ALIYUN_SMS_API_ID')
|
||||||
|
|
||||||
|
new_values = json.loads(raw_json)
|
||||||
|
|
||||||
|
if 'access_key_id' not in new_values['data'].keys() or \
|
||||||
|
not isinstance(new_values['data']['access_key_id'], str) or \
|
||||||
|
len(str.strip(new_values['data']['access_key_id'])) == 0:
|
||||||
|
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
||||||
|
description='API.INVALID_ALIYUN_SMS_API_ACCESS_KEY_ID')
|
||||||
|
access_key_id = str.strip(new_values['data']['access_key_id'])
|
||||||
|
|
||||||
|
if 'access_key_secret' not in new_values['data'].keys() or \
|
||||||
|
not isinstance(new_values['data']['access_key_secret'], str) or \
|
||||||
|
len(new_values['data']['access_key_secret']) == 0:
|
||||||
|
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
||||||
|
description='API.INVALID_ALIYUN_SMS_API_ACCESS_KEY_SECRET')
|
||||||
|
access_key_secret = new_values['data']['access_key_secret']
|
||||||
|
|
||||||
|
if 'endpoint' not in new_values['data'].keys() or \
|
||||||
|
not isinstance(new_values['data']['endpoint'], str) or \
|
||||||
|
len(new_values['data']['endpoint']) == 0:
|
||||||
|
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
||||||
|
description='API.INVALID_ALIYUN_SMS_API_ENDPOINT')
|
||||||
|
endpoint = new_values['data']['endpoint']
|
||||||
|
|
||||||
|
if 'sign_name' not in new_values['data'].keys() or \
|
||||||
|
not isinstance(new_values['data']['sign_name'], str) or \
|
||||||
|
len(new_values['data']['sign_name']) == 0:
|
||||||
|
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
||||||
|
description='API.INVALID_ALIYUN_SMS_API_SIGN_NAME')
|
||||||
|
sign_name = new_values['data']['sign_name']
|
||||||
|
|
||||||
|
if 'template_code' not in new_values['data'].keys() or \
|
||||||
|
not isinstance(new_values['data']['template_code'], str) or \
|
||||||
|
len(new_values['data']['template_code']) == 0:
|
||||||
|
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
||||||
|
description='API.INVALID_ALIYUN_SMS_API_TEMPLATE_CODE')
|
||||||
|
template_code = new_values['data']['template_code']
|
||||||
|
|
||||||
|
cnx = mysql.connector.connect(**config.myems_fdd_db)
|
||||||
|
cursor = cnx.cursor()
|
||||||
|
|
||||||
|
cursor.execute(" SELECT access_key_id "
|
||||||
|
" FROM tbl_aliyun_sms_api "
|
||||||
|
" WHERE id = %s ",
|
||||||
|
(id_,))
|
||||||
|
if cursor.fetchone() is None:
|
||||||
|
cursor.close()
|
||||||
|
cnx.disconnect()
|
||||||
|
raise falcon.HTTPError(falcon.HTTP_404, title='API.NOT_FOUND',
|
||||||
|
description='API.ALIYUN_SMS_API_NOT_FOUND')
|
||||||
|
|
||||||
|
cursor.execute(" SELECT access_key_id "
|
||||||
|
" FROM tbl_aliyun_sms_api "
|
||||||
|
" WHERE access_key_id = %s AND id != %s ", (access_key_id, id_))
|
||||||
|
if cursor.fetchone() is not None:
|
||||||
|
cursor.close()
|
||||||
|
cnx.disconnect()
|
||||||
|
raise falcon.HTTPError(falcon.HTTP_404, title='API.BAD_REQUEST',
|
||||||
|
description='API.ALIYUN_SMS_API_ACCESS_KEY_ID_IS_ALREADY_IN_USE')
|
||||||
|
|
||||||
|
update_row = (" UPDATE tbl_aliyun_sms_api "
|
||||||
|
" SET access_key_id = %s, access_key_secret = %s, endpoint = %s, sign_name = %s, "
|
||||||
|
" template_code = %s "
|
||||||
|
" WHERE id = %s ")
|
||||||
|
cursor.execute(update_row, (access_key_id,
|
||||||
|
access_key_secret,
|
||||||
|
endpoint,
|
||||||
|
sign_name,
|
||||||
|
template_code,
|
||||||
|
id_,))
|
||||||
|
cnx.commit()
|
||||||
|
|
||||||
|
cursor.close()
|
||||||
|
cnx.disconnect()
|
||||||
|
|
||||||
|
resp.status = falcon.HTTP_200
|
|
@ -1,215 +0,0 @@
|
||||||
import falcon
|
|
||||||
import json
|
|
||||||
import mysql.connector
|
|
||||||
import config
|
|
||||||
from core.userlogger import user_logger
|
|
||||||
|
|
||||||
|
|
||||||
class GSMModemCollection:
|
|
||||||
@staticmethod
|
|
||||||
def __init__():
|
|
||||||
"""Initializes GSMModemCollection"""
|
|
||||||
pass
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def on_options(req, resp):
|
|
||||||
resp.status = falcon.HTTP_200
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def on_get(req, resp):
|
|
||||||
cnx = mysql.connector.connect(**config.myems_fdd_db)
|
|
||||||
cursor = cnx.cursor()
|
|
||||||
|
|
||||||
query = (" SELECT id, serial_port, baud_rate "
|
|
||||||
" FROM tbl_gsm_modems ")
|
|
||||||
cursor.execute(query)
|
|
||||||
rows = cursor.fetchall()
|
|
||||||
cursor.close()
|
|
||||||
cnx.disconnect()
|
|
||||||
|
|
||||||
result = list()
|
|
||||||
if rows is not None and len(rows) > 0:
|
|
||||||
for row in rows:
|
|
||||||
meta_result = {"id": row[0],
|
|
||||||
"serial_port": row[1],
|
|
||||||
"baud_rate": row[2]}
|
|
||||||
result.append(meta_result)
|
|
||||||
|
|
||||||
resp.body = json.dumps(result)
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
@user_logger
|
|
||||||
def on_post(req, resp):
|
|
||||||
"""Handles POST requests"""
|
|
||||||
try:
|
|
||||||
raw_json = req.stream.read().decode('utf-8')
|
|
||||||
except Exception as ex:
|
|
||||||
raise falcon.HTTPError(falcon.HTTP_400, title='API.ERROR', description=ex)
|
|
||||||
|
|
||||||
new_values = json.loads(raw_json)
|
|
||||||
|
|
||||||
if 'serial_port' not in new_values['data'].keys() or \
|
|
||||||
not isinstance(new_values['data']['serial_port'], str) or \
|
|
||||||
len(str.strip(new_values['data']['serial_port'])) == 0:
|
|
||||||
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
|
||||||
description='API.INVALID_SERIAL_PORT')
|
|
||||||
|
|
||||||
serial_port = str.strip(new_values['data']['serial_port'])
|
|
||||||
|
|
||||||
if 'baud_rate' not in new_values['data'].keys() or \
|
|
||||||
not isinstance(new_values['data']['baud_rate'], int) or \
|
|
||||||
new_values['data']['baud_rate'] <= 0:
|
|
||||||
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
|
||||||
description='API.INVALID_BAUD_RATE')
|
|
||||||
baud_rate = float(new_values['data']['baud_rate'])
|
|
||||||
|
|
||||||
cnx = mysql.connector.connect(**config.myems_fdd_db)
|
|
||||||
cursor = cnx.cursor()
|
|
||||||
|
|
||||||
cursor.execute(" SELECT id "
|
|
||||||
" FROM tbl_gsm_modems "
|
|
||||||
" WHERE serial_port = %s ", (serial_port,))
|
|
||||||
if cursor.fetchone() is not None:
|
|
||||||
cursor.close()
|
|
||||||
cnx.disconnect()
|
|
||||||
raise falcon.HTTPError(falcon.HTTP_404, title='API.BAD_REQUEST',
|
|
||||||
description='API.GSM_MODEM_SERIAL_PORT_IS_ALREADY_IN_USE')
|
|
||||||
|
|
||||||
add_value = (" INSERT INTO tbl_gsm_modems "
|
|
||||||
" (serial_port, baud_rate) "
|
|
||||||
" VALUES (%s, %s) ")
|
|
||||||
cursor.execute(add_value, (serial_port,
|
|
||||||
baud_rate))
|
|
||||||
new_id = cursor.lastrowid
|
|
||||||
cnx.commit()
|
|
||||||
cursor.close()
|
|
||||||
cnx.disconnect()
|
|
||||||
|
|
||||||
resp.status = falcon.HTTP_201
|
|
||||||
resp.location = '/gsmmodems/' + str(new_id)
|
|
||||||
|
|
||||||
|
|
||||||
class GSMModemItem:
|
|
||||||
@staticmethod
|
|
||||||
def __init__():
|
|
||||||
"""Initializes GSMModemItem"""
|
|
||||||
pass
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def on_options(req, resp, id_):
|
|
||||||
resp.status = falcon.HTTP_200
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def on_get(req, resp, id_):
|
|
||||||
if not id_.isdigit() or int(id_) <= 0:
|
|
||||||
raise falcon.HTTPError(falcon.HTTP_400, '400 Bad Request')
|
|
||||||
|
|
||||||
cnx = mysql.connector.connect(**config.myems_fdd_db)
|
|
||||||
cursor = cnx.cursor()
|
|
||||||
|
|
||||||
query = (" SELECT id, serial_port, baud_rate "
|
|
||||||
" FROM tbl_gsm_modems "
|
|
||||||
" WHERE id = %s ")
|
|
||||||
cursor.execute(query, (id_,))
|
|
||||||
row = cursor.fetchone()
|
|
||||||
cursor.close()
|
|
||||||
cnx.disconnect()
|
|
||||||
if row is None:
|
|
||||||
raise falcon.HTTPError(falcon.HTTP_404, 'API.NOT_FOUND')
|
|
||||||
|
|
||||||
result = {"id": row[0],
|
|
||||||
"serial_port": row[1],
|
|
||||||
"baud_rate": row[2]}
|
|
||||||
resp.body = json.dumps(result)
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
@user_logger
|
|
||||||
def on_delete(req, resp, id_):
|
|
||||||
if not id_.isdigit() or int(id_) <= 0:
|
|
||||||
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
|
||||||
description='API.INVALID_GSM_MODEM_ID')
|
|
||||||
|
|
||||||
cnx = mysql.connector.connect(**config.myems_fdd_db)
|
|
||||||
cursor = cnx.cursor()
|
|
||||||
|
|
||||||
cursor.execute(" SELECT serial_port "
|
|
||||||
" FROM tbl_gsm_modems "
|
|
||||||
" WHERE id = %s ", (id_,))
|
|
||||||
if cursor.fetchone() is None:
|
|
||||||
cursor.close()
|
|
||||||
cnx.disconnect()
|
|
||||||
raise falcon.HTTPError(falcon.HTTP_404, title='API.NOT_FOUND',
|
|
||||||
description='API.GSM_MODEM_NOT_FOUND')
|
|
||||||
|
|
||||||
cursor.execute(" DELETE FROM tbl_gsm_modems WHERE id = %s ", (id_,))
|
|
||||||
cnx.commit()
|
|
||||||
|
|
||||||
cursor.close()
|
|
||||||
cnx.disconnect()
|
|
||||||
|
|
||||||
resp.status = falcon.HTTP_204
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
@user_logger
|
|
||||||
def on_put(req, resp, id_):
|
|
||||||
"""Handles PUT requests"""
|
|
||||||
try:
|
|
||||||
raw_json = req.stream.read().decode('utf-8')
|
|
||||||
except Exception as ex:
|
|
||||||
raise falcon.HTTPError(falcon.HTTP_400, title='API.EXCEPTION', description=ex)
|
|
||||||
|
|
||||||
if not id_.isdigit() or int(id_) <= 0:
|
|
||||||
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
|
||||||
description='API.INVALID_GSM_MODEM_ID')
|
|
||||||
|
|
||||||
new_values = json.loads(raw_json)
|
|
||||||
|
|
||||||
if 'serial_port' not in new_values['data'].keys() or \
|
|
||||||
not isinstance(new_values['data']['serial_port'], str) or \
|
|
||||||
len(str.strip(new_values['data']['serial_port'])) == 0:
|
|
||||||
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
|
||||||
description='API.INVALID_SERIAL_PORT')
|
|
||||||
|
|
||||||
serial_port = str.strip(new_values['data']['serial_port'])
|
|
||||||
|
|
||||||
if 'baud_rate' not in new_values['data'].keys() or \
|
|
||||||
not isinstance(new_values['data']['baud_rate'], int) or \
|
|
||||||
new_values['data']['baud_rate'] <= 0:
|
|
||||||
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
|
|
||||||
description='API.INVALID_BAUD_RATE')
|
|
||||||
baud_rate = float(new_values['data']['baud_rate'])
|
|
||||||
|
|
||||||
cnx = mysql.connector.connect(**config.myems_fdd_db)
|
|
||||||
cursor = cnx.cursor()
|
|
||||||
|
|
||||||
cursor.execute(" SELECT serial_port "
|
|
||||||
" FROM tbl_gsm_modems "
|
|
||||||
" WHERE id = %s ",
|
|
||||||
(id_,))
|
|
||||||
if cursor.fetchone() is None:
|
|
||||||
cursor.close()
|
|
||||||
cnx.disconnect()
|
|
||||||
raise falcon.HTTPError(falcon.HTTP_404, title='API.NOT_FOUND',
|
|
||||||
description='API.GSM_MODEM_NOT_FOUND')
|
|
||||||
|
|
||||||
cursor.execute(" SELECT serial_port "
|
|
||||||
" FROM tbl_gsm_modems "
|
|
||||||
" WHERE serial_port = %s AND id != %s ", (serial_port, id_))
|
|
||||||
if cursor.fetchone() is not None:
|
|
||||||
cursor.close()
|
|
||||||
cnx.disconnect()
|
|
||||||
raise falcon.HTTPError(falcon.HTTP_404, title='API.BAD_REQUEST',
|
|
||||||
description='API.GSM_MODEM_SERIAL_PORT_IS_ALREADY_IN_USE')
|
|
||||||
|
|
||||||
update_row = (" UPDATE tbl_gsm_modems "
|
|
||||||
" SET serial_port = %s, baud_rate = %s "
|
|
||||||
" WHERE id = %s ")
|
|
||||||
cursor.execute(update_row, (serial_port,
|
|
||||||
baud_rate,
|
|
||||||
id_,))
|
|
||||||
cnx.commit()
|
|
||||||
|
|
||||||
cursor.close()
|
|
||||||
cnx.disconnect()
|
|
||||||
|
|
||||||
resp.status = falcon.HTTP_200
|
|
Loading…
Reference in New Issue