hank
2018-04-18 b80c10222a4be80d825c3367b4b92c34d6776942
1
2
3
4
5
6
7
8
9
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
//
//  VKError.h
//
//  Copyright (c) 2014 VK.com
//
//  Permission is hereby granted, free of charge, to any person obtaining a copy of
//  this software and associated documentation files (the "Software"), to deal in
//  the Software without restriction, including without limitation the rights to
//  use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
//  the Software, and to permit persons to whom the Software is furnished to do so,
//  subject to the following conditions:
//
//  The above copyright notice and this permission notice shall be included in all
//  copies or substantial portions of the Software.
//
//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
//  FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
//  COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
//  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
//  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
#import <Foundation/Foundation.h>
#import "VKObject.h"
#import "VKApiConst.h"
 
static int const VK_API_ERROR = -101;
static int const VK_API_CANCELED = -102;
static int const VK_API_REQUEST_NOT_PREPARED = -103;
static int const VK_RESPONSE_STRING_PARSING_ERROR = -104;
static int const VK_AUTHORIZE_CONTROLLER_CANCEL = -105;
 
@class VKRequest;
 
/**
Class for presenting VK SDK and VK API errors
*/
@interface VKError : VKObject
/// Contains system HTTP error
@property(nonatomic, strong) NSError *httpError;
/// Describes API error
@property(nonatomic, strong) VKError *apiError;
/// Request which caused error
@property(nonatomic, strong) VKRequest *request;
 
/// May contains such errors:\n <b>HTTP status code</b> if HTTP error occured;\n <b>VK_API_ERROR</b> if API error occured;\n <b>VK_API_CANCELED</b> if request was canceled;\n <b>VK_API_REQUEST_NOT_PREPARED</b> if error occured while preparing request;
@property(nonatomic, assign) NSInteger errorCode;
/// API error message
@property(nonatomic, strong) NSString *errorMessage;
/// Reason for authorization fail
@property(nonatomic, strong) NSString *errorReason;
// Localized error text from server if there is one
@property(nonatomic, strong) NSString *errorText;
/// API parameters passed to request
@property(nonatomic, strong) NSDictionary *requestParams;
/// Captcha identifier for captcha-check
@property(nonatomic, strong) NSString *captchaSid;
/// Image for captcha-check
@property(nonatomic, strong) NSString *captchaImg;
/// Redirection address if validation check required
@property(nonatomic, strong) NSString *redirectUri;
 
@property(nonatomic, strong) id json;
 
/**
Generate new error with code
@param errorCode positive if it's an HTTP error. Negative if it's API or SDK error
*/
+ (instancetype)errorWithCode:(NSInteger)errorCode;
 
/**
Generate API error from JSON
@param JSON Json description of VK API error
*/
+ (instancetype)errorWithJson:(id)JSON;
 
/**
Generate API error from HTTP-query
@param queryParams key-value parameters
*/
+ (instancetype)errorWithQuery:(NSDictionary *)queryParams;
 
/**
Repeats failed captcha request with user entered answer to captcha
@param userEnteredCode answer for captcha
*/
- (void)answerCaptcha:(NSString *)userEnteredCode;
@end