Ejemplo n.º 1
0
def deleteUser(request):
    try:
        args = request.args
        Userid = getUserList(request)[args.get('Userid')]
        if request.args.get('Userid') == None:
            return encode({"status": "400|missing necessary key Userid"}, 400)
        url = "http://{host_ip}/permit/enterprise/{enterprise}/user/{Userid}/delete_user".format(
            host_ip=const.MANAGE_USER_API_IP,
            enterprise=const.ENTERPRISE,
            Userid=request.args.get('Userid'))
        log.info('deleteUser url: ' + url)
        headers = {
            "Content-Type": "application/json",
            "Authorization": "Bearer " + getBearerToken(request)
        }
        data = {"id": request.args.get('Userid'), "status": 0}
        callApi = service_sso.CallApi()
        response = callApi.post_request(url, headers, data)
        log.info(response.text)
        dic_resp = json.loads(response.text)
        log.info(dic_resp.get('result'))
        return dic_resp.get('result')
    except Exception as e:
        log.error("getRoleList error: " + utils.except_raise(e))
        return utils.except_raise(e)
Ejemplo n.º 2
0
def getUserList(request):
    try:
        url = "http://{host_ip}/permit/enterprise/{enterprise}/users".format(
            host_ip=const.MANAGE_USER_API_IP, enterprise=const.ENTERPRISE)
        log.info('getUserList: ' + url)
        headers = {
            "Content-Type": "application/json",
            "Authorization": "Bearer " + getBearerToken(request)
        }
        # data = {"enterpriseId": const.ENTERPRISE}
        callApi = service_sso.CallApi()
        response = callApi.get_request(url, headers)
        dic_resp = json.loads(response.text)
        log.debug(str(json.dumps(dic_resp.get('result'))))

        args = request.args

        log.info('getUserList with objectType:' + str(args.get('objectType')) +
                 ', Userid:' + str(args.get('Userid')))

        if args.get('objectType') == None or args.get('objectType') == u'User':
            user_map = {}
            for user in dic_resp.get('result'):
                user_map[user.get('user_name')] = user.get('id')
            return user_map
        if args.get('objectType') == u'UserAuth':
            result = ''
            for user in dic_resp.get('result'):
                if user.get('user_name') == args.get('Userid'):
                    result = user
            log.debug(str(json.dumps(result)))
            if result == '':
                return encode({'ReturnStatus': '403|Userid not exist'}, 403)

            if result.get('type') == 1:
                return encode({
                    'ReturnStatus': '0|success',
                    'Role': 'ADMIN'
                }, 200)
            elif result.get('type') == 2:
                role = 'MEMBER'
                for roleObj in result.get('organization')[0].get(
                        'products')[1].get('roles').get('items'):
                    if roleObj.get('rolename') == 'CC_BOT_MANAGER':
                        role = 'MANAGER'
                return encode({'ReturnStatus': '0|success', 'Role': role}, 200)
            else:
                return encode({'ReturnStatus': '403|invalid user'}, 403)
        elif args.get('objectType') == u'RoleAuth':
            # return encode({'ReturnStatus':0}) + '&' + encode({'Role':'ADMIN'}) + '&' + encode({'Role':'MANAGER'}) + '&' + encode({'Role':'MEMBER'}, 200)
            resp = Response(
                response=
                "ReturnStatus=0|success&Role=MANAGER|MANAGER&Role=MEMBER|MEMBER",
                status=200,
                mimetype="text/plain")
            return resp

    except Exception as e:
        log.error("getUserList error: " + utils.except_raise(e))
        return utils.except_raise(e)
Ejemplo n.º 3
0
def hide_user(request, status):
    try:
        args = request.args
        user_uuid = getUserList(request)[args.get('Userid')]
        log.info('user_uuid:' + user_uuid)
        url = "http://{host_ip}/permit/enterprise/{enterprise}/user/{user_uuid}/put_status".format(
            host_ip=const.MANAGE_USER_API_IP,
            enterprise=const.ENTERPRISE,
            user_uuid=user_uuid)
        log.info('disable user url: ' + url)
        headers = {
            "Content-Type": "application/json",
            "Authorization": "Bearer " + getBearerToken(request)
        }

        data = {"id": user_uuid, "status": status}
        callApi = service_sso.CallApi()
        response = callApi.post_request(url, headers, data)
        log.info(response.text)
        dic_resp = json.loads(response.text)
        if dic_resp.get('status') == 0:
            return encode({'ReturnStatus': '0|success'}, 200)
        elif dic_resp.get('status') == -1:
            return encode({'ReturnStatus': '403|delete user fail'}, 403)
        else:
            return encode(
                {
                    'ReturnStatus':
                    str(dic_resp.get('status')) + '|' + dic_resp.get('result')
                }, dic_resp.get('status'))
    except Exception as e:
        log.error("delete_user error: " + utils.except_raise(e))
        return encode({'ReturnStatus': '500|' + utils.except_raise(e)}, 500)
Ejemplo n.º 4
0
    def post(self):
        json_from_request = json.loads(
            Converter('zh-hans').convert(
                request.stream.read().decode('utf-8')))
        user_execute_work = json_from_request['task_info']['bot_execute']
        log.info(json.dumps(json_from_request))
        app_id = json_from_request['app_id']
        log.info('app_id: ' + app_id)
        work_stats = 0
        update_kv_map = {}
        try:
            conn = pymysql.Connect(host=const.DB_HOST,
                                   user=const.DB_ACCOUNT,
                                   passwd=const.DB_PASSWORD,
                                   charset='utf8')
            data = dao.Database(conn).query_bot_work_list(app_id)
            log.debug(data)
            if len(data) == 1:
                work_stats = data[0][1]
        except Exception as e:
            log.info("query_bot_work_list occured some error: " +
                     utils.except_raise(e))
        finally:
            conn.close()

        if work_stats == 0:
            try:
                data = {}
                data['bot_id'] = json_from_request['app_id']
                data['work'] = user_execute_work
                conn = pymysql.Connect(host=const.DB_HOST,
                                       user=const.DB_ACCOUNT,
                                       passwd=const.DB_PASSWORD,
                                       charset='utf8')
                update_row = dao.Database(conn).insert_work_to_bot_work_list(
                    data)
            except Exception as e:
                log.info("insert_work_to_bot_work_list occured some error: " +
                         utils.except_raise(e))
            finally:
                conn.close()
            log.info(user_execute_work)
            update_kv_map = {
                "bot_response":
                work_num_to_str(int(user_execute_work)) + '派車,成功'
            }
        else:
            update_kv_map = {
                "bot_response":
                '正在執行' + work_num_to_str(work_stats) + '任務,請稍後在下命令'
            }

        ret = encapsule_rtn_format(update_kv_map, None)
        return Response(json.dumps(ret), status=200)
Ejemplo n.º 5
0
def migrate_db_test():
    try:
        conn = pymysql.Connect(host='0.0.0.0',user='******',passwd='password',charset='utf8')
        dao.Database(conn).executeScriptsFromFile('./migrate/010200001_init.db')
    except Exception as e:
        log.info("SQL occured some error: "+utils.except_raise(e))
    finally:
        try:
            conn.close()
        except Exception as e:
            log.info("SQL occured some error: "+utils.except_raise(e))
Ejemplo n.º 6
0
def valid_update_role(request):
    try:
        url = "http://{host_ip}/permit/enterprise/{enterprise}/users".format(
            host_ip=const.MANAGE_USER_API_IP, enterprise=const.ENTERPRISE)
        log.info('getUserList: ' + url)
        headers = {
            "Content-Type": "application/json",
            "Authorization": "Bearer " + getBearerToken(request)
        }
        # data = {"enterpriseId": const.ENTERPRISE}
        callApi = service_sso.CallApi()
        response = callApi.get_request(url, headers)
        dic_resp = json.loads(response.text)
        log.debug(str(json.dumps(dic_resp.get('result'))))

        args = request.args
        input_role = args.get('Role')

        result = ''
        role = ''
        for user in dic_resp.get('result'):
            if user.get('user_name') == args.get('Userid'):
                result = user
        log.debug(str(json.dumps(result)))
        if result == '':
            return False
        if result.get('type') == 1:
            role = "ADMIN"
        elif result.get('type') == 2:
            role = 'MEMBER'
            for roleObj in result.get('organization')[0].get(
                    'products')[1].get('roles').get('items'):
                if roleObj.get('rolename') == 'CC_BOT_MANAGER':
                    role = 'MANAGER'
        else:
            return False

        log.info('input_role: ' + str(input_role) + ', original_role: ' +
                 str(role))

        if input_role == 'ADMIN' and role == 'MANAGER':
            return False
        elif input_role == 'ADMIN' and role == 'MEMBER':
            return False
        elif input_role == 'MANAGER' and role == 'ADMIN':
            return False
        elif input_role == 'MEMBER' and role == 'ADMIN':
            return False
        else:
            return True
    except Exception as e:
        log.error("getUserList error: " + utils.except_raise(e))
        return utils.except_raise(e)
Ejemplo n.º 7
0
    def get(self):
        bot_id = request.args.get('bot_id')
        if bot_id == None:
            return {
                'status': 422,
                'message': "Missing required parameters [bot_id]",
                'result': {},
            }, 422

        try:
            conn = pymysql.Connect(host=const.DB_HOST,
                                   user=const.DB_ACCOUNT,
                                   passwd=const.DB_PASSWORD,
                                   charset='utf8')
            data = dao.Database(conn).query_bot_work_list(bot_id)
            log.info(data)
            if len(data) == 1:
                return {
                    'status': 200,
                    'message': 'success',
                    'result': {
                        'bot_id': data[0][0],
                        'work': data[0][1],
                        'return_flag': data[0][2],
                        'return_finish': data[0][3]
                    },
                }, 200
            else:
                return {
                    'status': 204,
                    'message': "bot_id: " + bot_id + " doesn't exist",
                    'result': {},
                }, 204

        except Exception as e:
            log.info("query_bot_work_list occured some error: " +
                     utils.except_raise(e))
            return {
                'status': 500,
                'message': "[{}] {}".format(e.__class__.__name__, e.args[0])
            }, 500
        finally:
            try:
                conn.close()
            except Exception as e:
                log.info("close connection error: " + utils.except_raise(e))
                return {
                    'status': 500,
                    'message': "[{}] {}".format(e.__class__.__name__,
                                                e.args[0])
                }, 500
 def post(self):
     try:
         token = request.cookies.get('access_token')
         log.info(token)
         if utils.JWTdecode(token) == False:
             return redirect("/login", code=302)
         input_data = json.loads(request.data)
         log.info(input_data)
         univerList = dao_university.Database().getUniversity(input_data)
         if len(univerList) > 0:
             return {
                 "status": 400,
                 "message":
                 "新增失敗,學校 [ " + input_data.get('u_name') + " ] 已存在"
             }, 200
         result = dao_university.Database().addUniversity(input_data)
         if result:
             data = dao_university.Database().getUniversity(None)
             return {"data": data, "status": 200, "message": "success"}, 200
     except Exception as e:
         log.error("AddUniversity error: " + utils.except_raise(e))
         return {
             "status": 400,
             "message": "insert error: {}".format(e)
         }, 200
Ejemplo n.º 9
0
    def post_request(self, url, headers, data):
        try:
            if headers.get("Content-Type") == "application/json":
                log.debug("application/json")
                data = json.dumps(data)
            elif headers.get(
                    "Content-Type") == "application/x-www-form-urlencoded":
                log.debug("application/x-www-form-urlencoded")
                data = parse.urlencode(data)

            log.info("call api: " + str(url) + "\nwith data: " +
                     str(json.dumps(data)))
            log.info("header: " + str(json.dumps(headers)))
            response = requests.request("POST",
                                        url,
                                        data=data,
                                        headers=headers)
            if response.status_code != 200:
                raise Exception('Response status: ' +
                                str(response.status_code) + ', message: ' +
                                response.text)
            return response

        except Exception as e:
            log.error(utils.except_raise(e))
            raise Exception(e)
Ejemplo n.º 10
0
    def post(self):
        try:
            key='super-secret'
            payload={"id":"1","email":"*****@*****.**" }
            token = jwt.encode(payload, key)
            log.info (token)
            # decoded = jwt.decode(token, verify=False) 
            decoded = jwt.decode(token, options={"verify_signature": False}) # works in PyJWT >= v2.0
            log.info(decoded)
            log.info(decoded["user"])

        except Exception as e:
            log.error("Recaptcha error: "+utils.except_raise(e))
            return 'false'


# def secure_filename(filename):
#     if isinstance(filename, text_type):
#         from unicodedata import normalize
#         filename = normalize("NFKD", filename).encode("utf-8", "ignore")
#         if not PY2:
#             filename = filename.decode("utf-8")
#     for sep in os.path.sep, os.path.altsep:
#         if sep:
#             filename = filename.replace(sep, " ")
#     _filename_ascii_add_strip_re = re.compile(r'[^A-Za-z0-9_\u4E00-\u9FBF.-]')
#     filename = str(_filename_ascii_add_strip_re.sub('', '_'.join(filename.split()))).strip('._')
#     if (
#         os.name == "nt"
#         and filename
#         and filename.split(".")[0].upper() in _windows_device_files
#     ):
#         filename = "_" + filename

#     return filename
Ejemplo n.º 11
0
    def transmitToArms(self, dataForRakuten):
        # dataForRakuten['data'][0]['session_id'] = str(uuid.uuid4())
        log.info(dataForRakuten['data'][0]['session_id'])
        log.debug(json.dumps(dataForRakuten))

        # dataForRakuten['data'][0]['session_id'] = str(uuid.uuid4())
        # dataForRakuten['data'][0]['asr_result']=[{"session_id":"1eb7c32c-9333-11ea-bbff-119443b68c06","taskengine_session_id":"73007cd1-ef05-41ef-a051-72fa7775c293","user_id":"0919040448","user_q":".","score":100,"std_q":"","log_time":"2020-05-11 10:57:40","emotion":"中性","emotion_score":80,"intent":"","intent_score":0,"module":"task_engine","source":"","answer":"[[520.raw]]","raw_answer":"[{\"type\":\"text\",\"subType\":\"text\",\"value\":\"[[520.raw]]\",\"data\":[]}]","faq_cat_name":"","faq_robot_tag_name":"","feedback":"","custom_feedback":"","feedback_time":"","threshold":0,"tspan":139,"id":"37db5df14ec94190a035ffb5082537fe","is_marked":"false","is_ignored":"false"}]
        # dataForRakuten['data'][0]['extend_data']=[{"session_id": "1eb7c32c-9333-11ea-1234-119443b68c06","col_name": "同意二次聯繫","value": "-234/234"},{"session_id": "1eb7c32c-9333-11ea-1234-119443b68c06","col_name": "同意二次聯繫","value": "-234/234"}]
        # new_uuid = str(uuid.uuid4())
        # dataForRakuten['data'][0]['session_id'] = new_uuid
        # for val in dataForRakuten['data'][0]['asr_result']:
        #     val['session_id']=new_uuid
        # for val in dataForRakuten['data'][0]['customer_info']:
        #     val['session_id']=new_uuid
        # for val in dataForRakuten['data'][0]['extend_data']:
        #     val['session_id']=new_uuid

        # log.info(dataForRakuten)
        try:
            response = requests.request(
                "POST",
                url=const.ARMS_API,
                data=json.dumps(dataForRakuten),
                headers={'Content-type': 'application/json'})
        except Exception as e:
            log.error(utils.except_raise(e))
            raise Exception(e)
        return response
Ejemplo n.º 12
0
 def post(self):
     json_from_request = json.loads(
         Converter('zh-hans').convert(
             request.stream.read().decode('utf-8')))
     app_id = json_from_request['app_id']
     log.info('app_id: ' + app_id)
     try:
         conn = pymysql.Connect(host=const.DB_HOST,
                                user=const.DB_ACCOUNT,
                                passwd=const.DB_PASSWORD,
                                charset='utf8')
         data = dao.Database(conn).query_bot_work_list(app_id)
         log.info(data)
         if len(data) == 1:
             result = {
                 'bot_id': data[0][0],
                 'work': data[0][1],
                 'return_flag': data[0][2],
                 'return_finish': data[0][3]
             }
             log.info(result)
             update_kv_map = {
                 "bot_response":
                 work_num_to_str(data[0][1]) +
                 return_flag_to_str(data[0][2])
             }
             ret = encapsule_rtn_format(update_kv_map, None)
             return Response(json.dumps(ret), status=200)
     except Exception as e:
         log.info("query_bot_work_list occured some error: " +
                  utils.except_raise(e))
     finally:
         conn.close()
Ejemplo n.º 13
0
    def post(self):
        log.info(request.data)
        URIReCaptcha = 'https://www.google.com/recaptcha/api/siteverify'
        recaptchaResponse = None
        try:
            recaptchaResponse = json.loads(request.data).get(
                'g-recaptcha-response', None)
        except Exception as e:
            log.error("Recaptcha error: " + utils.except_raise(e))
            return 'false'
        if recaptchaResponse == None:
            return 'false'
        private_recaptcha = '6LellmQaAAAAAL705D1E8DkgNDHId8P0PFydI-Or'
        remote_ip = request.remote_addr
        params = urlencode({
            'secret': private_recaptcha,
            'response': recaptchaResponse,
            'remote_ip': remote_ip,
        })
        log.info(params)
        data = urlopen(URIReCaptcha, params.encode('utf-8')).read()
        result = json.loads(data)
        log.info(result)
        success = result.get('success', None)

        if success == True:
            log.info('reCaptcha passed')
            return 'success'
        else:
            log.info('recaptcha failed')
            return 'false'
Ejemplo n.º 14
0
def testGetChatRecords():
    try:
        callApi = service.CallApi()
        # s_reponse=callApi.getChatRecords(request).text.encode('utf8')
        # log.info(s_reponse)
        return callApi.getChatRecords("1eb7c32c-9333-11ea-bbff-119443b68c06")

    except Exception as e:
        log.error("transmitProcess error: " + utils.except_raise(e))
Ejemplo n.º 15
0
 def post(self):
     try:
         r = Response(json.dumps({"data": "log out success"}),
                      mimetype='application/json')
         r.set_cookie('access_token', '', expires=0)
         return r
     except Exception as e:
         log.error("validate JWT error: " + utils.except_raise(e))
         return redirect("/login", code=302)
Ejemplo n.º 16
0
def getRoleList(request):
    try:
        url = "http://{host_ip}/permit/roles/{enterprise}".format(
            host_ip=const.MANAGE_USER_API_IP, enterprise=const.ENTERPRISE)
        log.info('getWholeRobotId: ' + url)
        headers = {
            "Content-Type": "application/json",
            "Authorization": "Bearer " + getBearerToken(request)
        }
        # data = {"enterpriseId": const.ENTERPRISE}
        callApi = service_sso.CallApi()
        response = callApi.get_request(url, headers)
        dic_resp = json.loads(response.text)
        log.debug(dic_resp.get('result'))
        return dic_resp.get('result')
    except Exception as e:
        log.error("getRoleList error: " + utils.except_raise(e))
        return utils.except_raise(e)
Ejemplo n.º 17
0
def refreshBearToken(request):
    try:
        log.info('Refresh BearToken')
        url = "http://{host_ip}/auth/v3/login".format(
            host_ip=const.MANAGE_USER_API_IP)
        headers = {"Content-Type": "application/x-www-form-urlencoded"}
        data = {
            "account": "deployer",
            "passwd": "7e2ba10110f719dd65a0403305770b08"
        }
        callApi = service_sso.CallApi()
        response = callApi.post_request(url, headers, data)
        dic_resp = json.loads(response.text)
        token = dic_resp.get('result').get('token')
        log.debug(token)
        const.BEARER_TOKEN = token
    except Exception as e:
        log.error("refreshBearToken error: " + utils.except_raise(e))
        return utils.except_raise(e)
Ejemplo n.º 18
0
def query_bot_work_list_test():
    try:
        conn = pymysql.Connect(host='0.0.0.0',user='******',passwd='password',charset='utf8')
        data = dao.Database(conn).query_bot_work_list(None)
        log.info(len(data))
        log.info(data)
    except Exception as e:
        log.info("query_bot_work_list occured some error: "+utils.except_raise(e))
    finally:
        conn.close()
Ejemplo n.º 19
0
    def getCallResult(self, pageSize, pageNumber, request):
        try:
            data={}
            if request == None:
                now = datetime.now()
                timestamp = datetime.timestamp(now)
                startTime = datetime.fromtimestamp(timestamp - 3600 * float(const.START_TIME)).strftime("%Y-%m-%d %H:%M:%S")
                endTime = datetime.fromtimestamp(timestamp - 3600 * float(const.END_TIME)).strftime("%Y-%m-%d %H:%M:%S")
                # startTime = datetime.strftime(datetime.now() - timedelta(1), '%Y-%m-%d') + ' 00:00:00'
                # endTime = datetime.strftime(datetime.now(), '%Y-%m-%d') + ' 00:00:00'
                log.debug("startTime: " + startTime + ", endTime: " + endTime)
                data = {
                         "start_time": startTime,
                         "end_time": endTime,
                         "call_direction": const.CALL_DIRECTION,
                         "page_size": int(pageSize),
                         "page_number": int(pageNumber)
                       }
                if str(const.IS_TAG_API_V1)=='true':
                    data['phone_number']='66155400'
            else:
                log.debug("inputRequest:"+str(request))
                args = request.args
                # if args.get('page_size') == None : raise Exception("necessary param 'page_size'")
                data={"call_direction": const.CALL_DIRECTION}
                data['page_size']=int(pageSize)
                if args.get('start_time') != None : data['start_time'] = args.get('start_time')
                if args.get('end_time') != None : data['end_time'] = args.get('end_time')
                if args.get('call_direction') != None : data['call_direction'] = args.get('call_direction')
                if args.get('page_number') != None : data['page_number'] = int(args.get('page_number'))
                if args.get('session_id') != None : data['session_id'] = args.get('session_id')
                if str(const.IS_TAG_API_V1)=='true':
                    data['phone_number']='66155400'

            headers = {
                        'X-Enterprise': const.ENTERPRISE,
                        'X-UserID': const.USER_ID,
                        'Content-Type': "application/json",
                        'Connection': "keep-alive",
                        'cache-control': "no-cache"
                      }
            log.info("call api: " + const.GET_TAG_API + "\nwith data: " + str(data))
            response = requests.request("POST", const.GET_TAG_API, data=json.dumps(data), headers=headers)
            if response.status_code != 200:
                raise Exception('Response status: ' + str(response.status_code) + ', message: ' + response.text)
            const.CSV_FILE_BEG_TIME=data['start_time']
            const.CSV_FILE_END_TIME=data['end_time']

            return json.loads(response.text)
        except Exception as e:
            log.error(utils.except_raise(e))
            raise Exception(e)
Ejemplo n.º 20
0
def insert_bot_work_list_test():
    try:
        data = {}
        data['bot_id']='bot_id___'
        data['work']=1
        data['return_flag']=1
        data['return_finish']=1
        conn = pymysql.Connect(host='0.0.0.0',user='******',passwd='password',charset='utf8')
        dao.Database(conn).insert_bot_work_list( data )
    except Exception as e:
        log.info("insert_bot_work_list occured some error: "+utils.except_raise(e))
    finally:
        conn.close()
Ejemplo n.º 21
0
 def post(self):
     try:
         input_data = json.loads(request.data)
         log.info(input_data)
         data = dao_university.Database().delUniversity(input_data)
         log.info(data)
         if data:
             return {"status": 200, "message":"success"}, 200
         else:
             return {"status": 401, "message":"delete fail"}, 401
     except Exception as e:
         log.error("DelUniversity error: "+utils.except_raise(e))
         return {"status":400, "message":"delete error: {}".format(e)}, 200
Ejemplo n.º 22
0
    def get_request(self, url, headers):
        try:
            log.info("call api: " + url)
            log.debug("header: " + str(headers))
            response = requests.request("GET", url, headers=headers)
            if response.status_code != 200:
                raise Exception('Response status: ' +
                                str(response.status_code) + ', message: ' +
                                response.text)
            return response

        except Exception as e:
            log.error(utils.except_raise(e))
            raise Exception(e)
Ejemplo n.º 23
0
 def post(self):
     try:
         input_data = json.loads(request.data)
         log.info(input_data)
         univerList = dao_university.Database().getUniversity(input_data)
         if len(univerList) > 0:
             return {"status":400, "message":"新增失敗,學校 [ "+input_data.get('u_name')+" ] 已存在"},200
         result = dao_university.Database().addUniversity(input_data)
         if result:
             data = dao_university.Database().getUniversity(None)
             return {"data":data, "status": 200, "message":"success"}, 200
     except Exception as e:
         log.error("AddUniversity error: "+utils.except_raise(e))
         return {"status":400, "message":"insert error: {}".format(e)}, 200
Ejemplo n.º 24
0
def getOrganization(request, Role):
    try:
        bf_privilegeSet, bf_rolesList, bf_str_value, cc_privilegeSet, cc_rolesList, cc_roleids = parsingRoleListForAddUserAPI(
            getRoleList(request), getRobotIdList(request), Role)
        organization = [{
            "value":
            int(const.ENTERPRISE_SERIAL),
            "label":
            "凱基銀行電銷機器人",
            "type":
            1,
            "products": [{
                "productid": 1,
                "productname": "機器人平台",
                "privilegeSet": bf_privilegeSet,
                "rolesList": bf_rolesList,
                "roleids": [],
                "value": bf_str_value
            }, {
                "productid": 2,
                "productname": "電話機器人",
                "privilegeSet": cc_privilegeSet,
                "rolesList": cc_rolesList,
                "roleids": cc_roleids,
                "value": "{\"apps\":{},\"groups\":{}}"
            }],
            "orgid":
            int(const.ENTERPRISE_SERIAL),
            "orgtype":
            1
        }]

        return organization
    except Exception as e:
        log.error("transmitProcess error: " + utils.except_raise(e))
        return utils.except_raise(e)
Ejemplo n.º 25
0
def transmitProcessTest(request):
    try:
        callApi = service.CallApi()
        callArmsResponse = callApi.transmitToArmsTest()
        if callArmsResponse.status_code == 204:
            log.info('Transmit success')
            return 'success'
        else:
            log.info('Response status: ' + str(callArmsResponse.status_code) +
                     ', message: ' + callArmsResponse.text)
            return 'fail'
        log.info('process complete')

    except Exception as e:
        log.error("transmitProcess error: " + utils.except_raise(e))
Ejemplo n.º 26
0
 def getChatRecords(self, uuid):
     url = str(const.API_CHAT_RECORDS)
     data = {"uuid": [uuid]}
     try:
         headers = {
             'X-Enterprise': const.ENTERPRISE,
             'Content-Type': 'application/json'
         }
         log.info("call api: " + url + "\nwith data: " + str(data) + "\nheader: " + str(headers))
         response = requests.request("POST", url, data=json.dumps(data), headers=headers)
         if response.status_code != 200:
             raise Exception('Response status: ' + str(response.status_code) + ', message: ' + response.text)
         return json.loads(response.text)
     except Exception as e:
         log.error(utils.except_raise(e))
         raise Exception(e)
Ejemplo n.º 27
0
 def getTagByCallId(self, callID):
     url = str(const.API_CALL_RESULT)
     data={"session_id": callID}
     try:
         headers = {
             'X-Enterprise': const.ENTERPRISE,
             'Content-Type': 'application/json'
         }
         log.info("call api: " + url + "\nwith data: " + str(data))
         response = requests.request("POST", url, data=json.dumps(data), headers=headers)
         if response.status_code != 200:
             raise Exception('Response status: ' + str(response.status_code) + ', message: ' + response.text)
         return json.loads(response.text)
     except Exception as e:
         log.error(utils.except_raise(e))
         raise Exception(e)
Ejemplo n.º 28
0
 def post(self):
     try:
         data = {}
         if request.data :
             input_data = json.loads(request.data)
             if input_data.get("u_id"):
                 log.info(input_data)
                 data = dao_university.Database().getUniversity(input_data)
         else:
             data = dao_university.Database().getUniversity(None)
         log.info(data)
         # return {"data":data},200
         return {"data":data, "status": 200, "message":"success"}, 200
     except Exception as e:
         log.error("GetUniversity error: "+utils.except_raise(e))
         return {"status":400, "message":"get data error: {}".format(e)}, 200
Ejemplo n.º 29
0
 def post(self):
     try:
         input_data = json.loads(request.data)
         log.info(input_data)
         univerList = dao_university.Database().getUniversity(input_data)
         if len(univerList) < 1:
             return {"status":400, "message":"更新失敗,學校 [ "+input_data.get('u_name')+" ] 不存在"},200
         result = dao_university.Database().editUniversity(input_data)
         log.info('edit result:' + str(result))
         if result:
             data = dao_university.Database().getUniversity(input_data)
             log.info(data)
             return {"data":data, "status": 200, "message":"success"}, 200
     except Exception as e:
         log.error("EditUniversity error: "+utils.except_raise(e))
         return {"status":400, "message":"edit error: {}".format(e)}, 200
Ejemplo n.º 30
0
    def transmitToArmsTest(self):
        dataForRakutenTest={"data":[{"session_id":"1eb7c32c-9333-11ea-6634-119443b68c06","call_direction":"outbound","caller":"07010110688","callee":"0919040448","status":1,"calls_number":1,"talk_start_time":"2020-05-11 10:57:24","ring_duration":5,"talk_duration":18,"asr_result":[{"session_id":"1eb7c32c-9333-11ea-6634-119443b68c06","taskengine_session_id":"73007cd1-ef05-41ef-a051-72fa7775c293","user_id":"0919040448","user_q":".","score":100,"std_q":"","log_time":"2020-05-11 10:57:40","emotion":"中性","emotion_score":80,"intent":"","intent_score":0,"module":"task_engine","source":"","answer":"[[520.raw]]","raw_answer":"[{\"type\":\"text\",\"subType\":\"text\",\"value\":\"[[520.raw]]\",\"data\":[]}]","faq_cat_name":"","faq_robot_tag_name":"","feedback":"","custom_feedback":"","feedback_time":"","threshold":0,"tspan":139,"id":"37db5df14ec94190a035ffb5082537fe","is_marked":"false","is_ignored":"false"},{"session_id":"1eb7c32c-9333-11ea-6634-119443b68c06","taskengine_session_id":"73007cd1-ef05-41ef-a051-72fa7775c293","user_id":"0919040448","user_q":"M0","score":100,"std_q":"","log_time":"2020-05-11 10:57:24","emotion":"中性","emotion_score":80,"intent":"","intent_score":0,"module":"task_engine","source":"","answer":"[[520.raw]]testtest您好,這裏是樂天銀行信用卡,您本期信用卡帳單已過期限,請於今日立即繳納年月帳款,以避免有違約金,及利息產生,如您已繳納,請無需理會。","raw_answer":"[{\"type\":\"text\",\"subType\":\"text\",\"value\":\"[[520.raw]]testtest您好,這裏是樂天銀行信用卡,您本期信用卡帳單已過期限,請於今日立即繳納年月帳款,以避免有違約金,及利息產生,如您已繳納,請無需理會。\",\"data\":[]}]","faq_cat_name":"","faq_robot_tag_name":"","feedback":"","custom_feedback":"","feedback_time":"","threshold":0,"tspan":133,"id":"bd211408c29b446e96e0591bb145934e","is_marked":"false","is_ignored":"false"}],"extend_data":[{"session_id":"1eb7c32c-9333-11ea-6634-119443b68c06","col_name":"同意二次聯繫","value":"無"},{"session_id":"1eb7c32c-9333-11ea-6634-119443b68c06","col_name":" 客戶已繳款","value":"有表示"},{"session_id":"1eb7c32c-9333-11ea-6634-119443b68c06","col_name":" 客戶本人接聽","value":"yes"}],"customer_info":[{"session_id":"1eb7c32c-9333-11ea-6634-119443b68c06","col_name":"01.帳單月份","value":"test"},{"session_id":"1eb7c32c-9333-11ea-6634-119443b68c06","col_name":"02.名字","value":"test"},{"session_id":"1eb7c32c-9333-11ea-6634-119443b68c06","col_name":"03.身分證號","value":"test"}]}],"total_size":1}
        new_uuid = str(uuid.uuid4())
        dataForRakutenTest['data'][0]['session_id'] = new_uuid
        for val in dataForRakutenTest['data'][0]['asr_result']:
            val['session_id']=new_uuid
        for val in dataForRakutenTest['data'][0]['customer_info']:
            val['session_id']=new_uuid
        for val in dataForRakutenTest['data'][0]['extend_data']:
            val['session_id']=new_uuid
        log.info(dataForRakutenTest)
        log.info(dataForRakutenTest['data'][0]['session_id'])

        try:
            response = requests.request("POST", url=const.ARMS_API, data=json.dumps(dataForRakutenTest), headers={'Content-type': 'application/json'})
        except Exception as e:
            log.error(utils.except_raise(e))
            raise Exception(e)
        return response