company-data-collecter-api-.../common.py

170 lines
4.9 KiB
Python

"""
通用方法
"""
import functools
import json
import requests
from flask import request
from db import conserve_data
from setting import API_SECRET
def judege_api_code(code):
"""
判断状态码
Parameters:
code: 传入状态码,返回状态码对应状态说明
Returns:
状态码说明信息
"""
if code == 0:
return '请求成功'
elif code == 300000:
return '无数据'
elif code == 300001:
return '请求失败'
elif code == 300002:
return '账号失效'
elif code == 300003:
return '账号过期'
elif code == 300004:
return '访问频率过快'
elif code == 300005:
return '无权限访问此api'
elif code == 300006:
return '余额不足'
elif code == 300007:
return '剩余次数不足'
elif code == 300008:
return '缺少必要参数'
elif code == 300009:
return '账号信息有误'
elif code == 300010:
return 'URL不存在'
elif code == 300011:
return '此IP无权限访问此api'
elif code == 300012:
return '报告生成中'
def general_request(url, company, db, col):
"""
判断状态码
Parameters:
url: 传入请求链接,请求后判断状态码,
company: 企业名称
db: 数据库名称
col: 集合名称
Returns:
'保存成功'
"""
headers = {'Authorization': "5407573b-e41e-4ab4-9f46-daa0032ad0a4"}
# 根据传入url进行请求
res = json.loads(requests.get(url, headers=headers).text)
# 判断请求返回结果中的error_code
code = res['error_code']
status = judege_api_code(code)
# status为请求成功则保存result数据
if status == '请求成功':
if col == '十大股东':
insert = dict()
insert['timeList'] = res['result']['timeList']
insert['holderList'] = res['result']['holderList']
else:
insert = dict()
insert['result'] = res['result']['items']
insert['total'] = res['result']['total']
conserve_data(db, company, col, insert)
return '保存成功'
elif status == '无数据':
insert = dict()
conserve_data(db, company, col, insert)
return '保存成功'
else:
return status
def verify_token(func):
"""
校验token
"""
@functools.wraps(func)
def internal(*args, **kwargs):
try:
token = request.headers.get('token')
if token != API_SECRET:
return {"info": "接口密钥错误"}, 401
except Exception:
return {"info": "请求异常"}, 401
return func(*args, **kwargs)
return internal
def firest_request(url, company, db, col):
"""
翻页接口首次调用
Parameters:
url: 传入请求链接,请求后判断状态码,
company: 企业名称
db: 数据库名称
col: 集合名称
Returns:
'保存成功'
"""
headers = {'Authorization': "5407573b-e41e-4ab4-9f46-daa0032ad0a4"}
# 根据传入url进行请求
res = json.loads(requests.get(url, headers=headers).text)
# 判断请求返回结果中的error_code
code = res['error_code']
status = judege_api_code(code)
# status为请求成功则保存result数据
if status == '请求成功':
# 保存首次数据,判断页码
insert = dict()
insert['result'] = res['result']['items']
insert['total'] = res['result']['total']
conserve_data(db, company, col, insert)
if insert['total'] > 20:
return insert['taotal']
else:
return '保存成功'
elif status == '无数据':
insert = dict()
conserve_data(db, company, col, insert)
return '保存成功'
else:
return status
def page_request(url, company, db, col):
"""
翻页接口翻页调用
Parameters:
url: 传入请求链接,请求后判断状态码,
company: 企业名称
db: 数据库名称
col: 集合名称
Returns:
'保存成功'
"""
headers = {'Authorization': "5407573b-e41e-4ab4-9f46-daa0032ad0a4"}
# 根据传入url进行请求
res = json.loads(requests.get(url, headers=headers).text)
# 判断请求返回结果中的error_code
code = res['error_code']
status = judege_api_code(code)
# status为请求成功则保存result数据
if status == '请求成功':
# 保存首次数据,判断页码
insert = dict()
insert['result'] = res['result']['items']
insert['total'] = res['result']['total']
conserve_data(db, company, col, insert)
return '保存成功'
elif status == '无数据':
insert = dict()
conserve_data(db, company, col, insert)
return '保存成功'
else:
return status