- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
def parse_check_response(response_status, response_body, service):
"""
:param response_status: код
:type response_status: int
:param response_body: ответ
:type response_body: HTTPResponse
:param service_: определяет каким пользователям разрешена проверка (зарегестрированным или новым)
:type service_: str
Проверяет http ответ возвращаемый `` code_check``.
Если в ответе содержится ошибка то в ``resp['error']`` и ``resp['status']``
добавляется статус ошибки и её сообщение.
Примеры ошибок которые могут быть в ответе:
* Неверный код
* Срок действия кода истёк
* Данный код уже был использован
* ...
"""
if response_status != CHECK_STATUS_FOUND:
if not response_status == CHECK_STATUS_BAD_DATA and not response_status == CHECK_STATUS_NOT_FOUND:
raise CodeResponseException
return {
'status': response_status,
'error': EC_ERR_NOT_VALID
}
response_body_dict = json.loads(response_body)
resp = {'status': ERR_OK}
allowed_users = response_body_dict["codeset"]["allowed_users"]
if (
service == 'registration' and allowed_users == REGISTERED_USERS
or service == 'personal' and allowed_users == NEW_USERS
):
resp['status'] = EC_FORBIDDEN
resp['error'] = EC_ERR_NOT_VALID
if not response_body_dict['is_valid']:
error_code = response_body_dict['error_code']
if error_code in EC_NOT_VALID_GROUP:
resp['status'] = EC_NOT_VALID
resp['error'] = EC_ERR_NOT_VALID
elif error_code in EC_EXPIRED_GROUP:
resp['status'] = EC_EXPIRED
resp['error'] = EC_ERR_NOT_VALID
elif error_code in [EC_CANCELED, EC_NOT_FOUND, EC_UNKNOWN_REGION, EC_LIMIT_EXHAUSTED, EC_FORBIDDEN]:
resp['status'] = error_code
resp['error'] = EC_ERR_NOT_VALID
# If error_code == EC_FORBIDDEN we already
# have status and error message
elif error_code != EC_NO_ERRORS:
resp['status'] = EC_NOT_VALID
resp['error'] = EC_ERR_NOT_VALID
resp['response_data'] = response_body
return resp
Lure Of Chaos 23.10.2014 12:30 # 0
Vindicar 23.10.2014 13:49 # 0
guest 23.10.2014 14:07 # −1
Lure Of Chaos 23.10.2014 14:25 # 0
и получить франкенштейна из джавы, питона, си, хаскеля и ассемблера? (уже есть примеры, openoffice uno)
anonimb84a2f6fd141 23.10.2014 18:53 # −6
guest 24.10.2014 02:47 # +1
anonimb84a2f6fd141 23.10.2014 18:54 # −6
guest 23.10.2014 20:40 # 0
guest 24.10.2014 02:46 # 0