diff --git a/myems-api/reports/ticket.py b/myems-api/reports/ticket.py index ef8cc505..8df84ab0 100644 --- a/myems-api/reports/ticket.py +++ b/myems-api/reports/ticket.py @@ -7,17 +7,24 @@ import re from core.useractivity import user_logger, access_control import requests -# BASE_API = 'http://172.16.203.116/' -BASE_API = 'http://192.168.1.4/' +BASE_API = 'http://172.16.203.116/' +# BASE_API = 'http://192.168.1.4/' +default_password = '123456' - -def login(): +def login(acount): + """ + :param acount: + { + "user_name": "admin", + } + :return: + """ url = BASE_API + "/api/v1.0/login" payload = json.dumps({ - "username": "admin", - "password": "123456", - "type": "account" + "username": acount["user_name"], + "password": default_password, + "type": 'account', }) headers = { 'Content-Type': 'application/json', @@ -78,36 +85,8 @@ class TicketApplicationListCollection: resp.status = falcon.HTTP_200 @staticmethod - def on_post(req, resp): - - try: - raw_json = req.stream.read().decode('utf-8') - except Exception as ex: - raise falcon.HTTPError(falcon.HTTP_400, title='API.ERROR', description=ex) - """ - { - "user_name": "admin", - }""" - new_values = json.loads(raw_json) - - checked_fields = [ - { - "name": "user_name", - "type": str - }, - ] - - for field in checked_fields: - _name = field['name'] - _type = field['type'] - if _name not in new_values.keys() or \ - not isinstance(new_values[_name], _type) or \ - len(str(new_values[_name])) == 0: - raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST', - description='API.INVALID_FIELD' + _name) - - payload = new_values - user_name = payload['user_name'] + def on_get(req, resp): + user_name = req.get_param('username') cnx = mysql.connector.connect(**config.loonflow) cursor = cnx.cursor() @@ -274,6 +253,7 @@ class TicketApplicationItem: @staticmethod def on_post(req, resp, id_): """Handles POST requests""" + try: raw_json = req.stream.read().decode('utf-8') except Exception as ex: @@ -283,7 +263,7 @@ class TicketApplicationItem: "title": "测试维修", "long_field": "测试维修", "transition_id": 29, - "workflow_id": 4 + "workflow_id": 4, }""" print("id_", id_) new_values = json.loads(raw_json) @@ -296,8 +276,7 @@ class TicketApplicationItem: { "name": "workflow_id", "type": int - }, - + } ] for field in checked_fields: @@ -311,7 +290,9 @@ class TicketApplicationItem: payload = new_values - session = login() + session = login({ + 'user_name': req.get_param('username') + }) url = BASE_API + "/api/v1.0/tickets" headers = { 'Content-Type': 'application/json', @@ -339,36 +320,9 @@ class TicketAgentListCollection: resp.status = falcon.HTTP_200 @staticmethod - def on_post(req, resp): + def on_get(req, resp): - try: - raw_json = req.stream.read().decode('utf-8') - except Exception as ex: - raise falcon.HTTPError(falcon.HTTP_400, title='API.ERROR', description=ex) - """ - { - "user_name": "admin", - }""" - new_values = json.loads(raw_json) - - checked_fields = [ - { - "name": "user_name", - "type": str - }, - ] - - for field in checked_fields: - _name = field['name'] - _type = field['type'] - if _name not in new_values.keys() or \ - not isinstance(new_values[_name], _type) or \ - len(str(new_values[_name])) == 0: - raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST', - description='API.INVALID_FIELD' + _name) - - payload = new_values - user_name = payload['user_name'] + user_name = req.get_param('username') cnx = mysql.connector.connect(**config.loonflow) cursor = cnx.cursor() @@ -676,9 +630,13 @@ class TicketStatusItem: def on_get(req, resp, id_): if not id_.isdigit() or int(id_) <= 0: raise falcon.HTTPError(falcon.HTTP_400, '400 Bad Request') - + print(req.get_param('username')) ticket_id = int(id_) - session = login() + session = login( + { + 'user_name': req.get_param('username') + } + ) url = BASE_API + "/api/v1.0/tickets/"+id_+"/flowsteps" headers = { 'Content-Type': 'application/json', @@ -688,61 +646,61 @@ class TicketStatusItem: print("content", content) resp.text = json.dumps(content) - @staticmethod - def on_post(req, resp, id_): - """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) - """ - { - "title": "测试维修", - "long_field": "测试维修", - "transition_id": 29, - "workflow_id": 4 - }""" - print("id_", id_) - new_values = json.loads(raw_json) - - checked_fields = [ - { - "name": "transition_id", - "type": int - }, - { - "name": "workflow_id", - "type": int - }, - - ] - - for field in checked_fields: - _name = field['name'] - _type = field['type'] - if _name not in new_values.keys() or \ - not isinstance(new_values[_name], _type) or \ - len(str(new_values[_name])) == 0: - raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST', - description='API.INVALID_FIELD' + _name) - - payload = new_values - - session = login() - url = BASE_API + "/api/v1.0/tickets" - headers = { - 'Content-Type': 'application/json', - } - resp = session.post(url, headers=headers, data=json.dumps(payload)) - content = json.loads(resp.text) - print("content", content) - new_ticket_id = content.get('ticket_id') - print(resp.status_code) - if resp.status_code != 200: - raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_COOKIE', - description='API.INVALID_STATUS_CODE:' + str(resp.status_code)) - resp.status = falcon.HTTP_201 - resp.location = '/tickets/' + str(new_ticket_id) + # @staticmethod + # def on_post(req, resp, id_): + # """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) + # """ + # { + # "title": "测试维修", + # "long_field": "测试维修", + # "transition_id": 29, + # "workflow_id": 4 + # }""" + # print("id_", id_) + # new_values = json.loads(raw_json) + # + # checked_fields = [ + # { + # "name": "transition_id", + # "type": int + # }, + # { + # "name": "workflow_id", + # "type": int + # }, + # + # ] + # + # for field in checked_fields: + # _name = field['name'] + # _type = field['type'] + # if _name not in new_values.keys() or \ + # not isinstance(new_values[_name], _type) or \ + # len(str(new_values[_name])) == 0: + # raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST', + # description='API.INVALID_FIELD' + _name) + # + # payload = new_values + # + # session = login() + # url = BASE_API + "/api/v1.0/tickets" + # headers = { + # 'Content-Type': 'application/json', + # } + # resp = session.post(url, headers=headers, data=json.dumps(payload)) + # content = json.loads(resp.text) + # print("content", content) + # new_ticket_id = content.get('ticket_id') + # print(resp.status_code) + # if resp.status_code != 200: + # raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_COOKIE', + # description='API.INVALID_STATUS_CODE:' + str(resp.status_code)) + # resp.status = falcon.HTTP_201 + # resp.location = '/tickets/' + str(new_ticket_id) class TicketFieldItem: @@ -761,7 +719,7 @@ class TicketFieldItem: raise falcon.HTTPError(falcon.HTTP_400, '400 Bad Request') ticket_id = int(id_) - session = login() + session = login({'user_name': req.get_param('username')}) url = BASE_API + "api/v1.0/tickets/" + id_ headers = { 'Content-Type': 'application/json', @@ -788,7 +746,11 @@ class TicketTransitionItem: raise falcon.HTTPError(falcon.HTTP_400, '400 Bad Request') ticket_id = int(id_) - session = login() + session = login( + { + 'user_name': req.get_param('username') + } + ) url = BASE_API + "api/v1.0/tickets/" + id_ + "/transitions" headers = { 'Content-Type': 'application/json', @@ -828,7 +790,7 @@ class TicketAgentItem: payload = new_values ticket_id = int(id_) - session = login() + session = login({'user_name': req.get_param('username')}) url = BASE_API + "api/v1.0/tickets/" + id_ headers = { 'Content-Type': 'application/json', @@ -839,6 +801,36 @@ class TicketAgentItem: resp.text = json.dumps(content) +class TicketListCollection: + @staticmethod + def __init__(): + """"Initializes ContactCollection""" + pass + + @staticmethod + def on_options(req, resp): + resp.status = falcon.HTTP_200 + + @staticmethod + def on_get(req, resp): + + session = login( + { + 'user_name': req.get_param('username') + } + ) + url = BASE_API + "api/v1.0/tickets?category=owner" + headers = { + 'Content-Type': 'application/json', + } + get_resp = session.get(url, headers=headers) + print(get_resp) + print(get_resp.text) + content = json.loads(get_resp.text) + print("TicketListCollection content", content) + resp.text = json.dumps(content) + + class ContactItem: @staticmethod def __init__(): diff --git a/myems-web/src/components/MyEMS/Ticket/TicketAgent.js b/myems-web/src/components/MyEMS/Ticket/TicketAgent.js index 4cb8535f..99aaadf0 100644 --- a/myems-web/src/components/MyEMS/Ticket/TicketAgent.js +++ b/myems-web/src/components/MyEMS/Ticket/TicketAgent.js @@ -83,7 +83,7 @@ const TicketAggent = ({ setRedirect, setRedirectUrl, t }) => { useEffect(() => { let isResponseOK = false; // Get Ticket Type - fetch(APIBaseURL + '/ticket/types', { + fetch(APIBaseURL + '/ticket/types' + '?username=admin', { method: 'GET', headers: { 'Content-type': 'application/json' @@ -115,14 +115,12 @@ const TicketAggent = ({ setRedirect, setRedirectUrl, t }) => { useEffect(() => { let isResponseOK = false; // Get Ticket List - fetch(APIBaseURL + '/ticket/list/agent', { - method: 'POST', + fetch(APIBaseURL + '/ticket/list/agent' + '?username=admin', { + method: 'GET', headers: { 'Content-type': 'application/json' }, - body: JSON.stringify({ - user_name: 'admin' - }) + body: null }) .then(response => { console.log(response); @@ -168,7 +166,7 @@ const TicketAggent = ({ setRedirect, setRedirectUrl, t }) => { setTicketId(id); // Get Ticket Status let isResponseOK = false; - fetch(APIBaseURL + '/ticket/status/' + id, { + fetch(APIBaseURL + '/ticket/status/' + id + '?username=admin', { method: 'GET', headers: { 'Content-type': 'application/json' @@ -211,7 +209,7 @@ const TicketAggent = ({ setRedirect, setRedirectUrl, t }) => { // Get Ticket Field isResponseOK = false; - fetch(APIBaseURL + '/ticket/fields/' + id, { + fetch(APIBaseURL + '/ticket/fields/' + id + '?username=admin', { method: 'GET', headers: { 'Content-type': 'application/json' @@ -242,7 +240,7 @@ const TicketAggent = ({ setRedirect, setRedirectUrl, t }) => { // Get Ticket Transition Field isResponseOK = false; - fetch(APIBaseURL + '/ticket/transition/' + id, { + fetch(APIBaseURL + '/ticket/transition/' + id + '?username=admin', { method: 'GET', headers: { 'Content-type': 'application/json' @@ -377,13 +375,13 @@ const TicketAggent = ({ setRedirect, setRedirectUrl, t }) => { ticketFields.value.field_list.map(item => { let item_key = item.field_key; let value = item.field_value; - let temp = {} + let temp = {}; temp[item_key] = value; setTicketBody({ ...ticketBody, ...temp }); }); let isResponseOK = false; - fetch(APIBaseURL + '/ticket/agent/' + ticketId, { + fetch(APIBaseURL + '/ticket/agent/' + ticketId + '?username=admin', { method: 'PATCH', headers: { 'Content-type': 'application/json' diff --git a/myems-web/src/components/MyEMS/Ticket/TicketApplication.js b/myems-web/src/components/MyEMS/Ticket/TicketApplication.js index 3ac8f543..ebdcd73c 100644 --- a/myems-web/src/components/MyEMS/Ticket/TicketApplication.js +++ b/myems-web/src/components/MyEMS/Ticket/TicketApplication.js @@ -111,14 +111,12 @@ const TicketApplication = ({ setRedirect, setRedirectUrl, t }) => { useEffect(() => { let isResponseOK = false; // Get Ticket List - fetch(APIBaseURL + '/ticket/list/apply', { - method: 'POST', + fetch(APIBaseURL + '/ticket/list/apply' + '?username=admin', { + method: 'GET', headers: { 'Content-type': 'application/json' }, - body: JSON.stringify({ - user_name: 'admin' - }) + body: null }) .then(response => { console.log(response); @@ -142,16 +140,6 @@ const TicketApplication = ({ setRedirect, setRedirectUrl, t }) => { const DetailedDataTable = loadable(() => import('../common/DetailedDataTable')); - const nameFormatter = (dataField, { name }) => ( - - - -
{name}
-
-
- - ); - const actionFormatter = (dataField, { id }) => ( // Control your row with this id @@ -253,7 +241,7 @@ const TicketApplication = ({ setRedirect, setRedirectUrl, t }) => { console.log('You apply the ticket!!', selectedTicketType); let isResponseOK = false; - fetch(APIBaseURL + '/ticket/apply/' + selectedTicketType, { + fetch(APIBaseURL + '/ticket/apply/' + selectedTicketType + '?username=admin', { method: 'GET', headers: { 'Content-type': 'application/json' @@ -294,19 +282,19 @@ const TicketApplication = ({ setRedirect, setRedirectUrl, t }) => { console.log('submit----', ticketApplicationPayload); let isResponseOK = false; - fetch(APIBaseURL + '/ticket/apply/' + selectedTicketType, { + fetch(APIBaseURL + '/ticket/apply/' + selectedTicketType + '?username=admin', { method: 'POST', headers: { 'Content-type': 'application/json' }, - body: JSON.stringify(ticketApplicationPayload) + body: JSON.stringify({ ...ticketApplicationPayload }) }) .then(response => { console.log(response); if (response.ok) { isResponseOK = true; } - return response.json(); + return response.status; }) .then(json => { if (isResponseOK) { @@ -328,7 +316,7 @@ const TicketApplication = ({ setRedirect, setRedirectUrl, t }) => { console.log('View Ticket Status', id); // Get Ticket Status let isResponseOK = false; - fetch(APIBaseURL + '/ticket/status/' + id, { + fetch(APIBaseURL + '/ticket/status/' + id + '?username=admin', { method: 'GET', headers: { 'Content-type': 'application/json' @@ -377,7 +365,7 @@ const TicketApplication = ({ setRedirect, setRedirectUrl, t }) => { console.log('View Ticket Record', id); // Get Ticket Status let isResponseOK = false; - fetch(APIBaseURL + '/ticket/status/' + id, { + fetch(APIBaseURL + '/ticket/status/' + id + '?username=admin', { method: 'GET', headers: { 'Content-type': 'application/json' @@ -504,7 +492,7 @@ const TicketApplication = ({ setRedirect, setRedirectUrl, t }) => { {ticketStatus && ( - + {ticketStatus.value .filter(item => item.state_flow_log_list.length > 0) .map((item, index) => { @@ -518,7 +506,7 @@ const TicketApplication = ({ setRedirect, setRedirectUrl, t }) => { ); })} - + )}