/
TPTentClient.h
97 lines (82 loc) · 4.58 KB
/
TPTentClient.h
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
89
90
91
92
93
94
95
96
//
// TPTentClient.h
//
// Copyright (c) 2012 Ben Stovold http://thoughtfulpixel.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 "TPTentHTTPClient.h"
@protocol TPTentClientDelegate;
@interface TPTentClient : NSObject <TPTentHTTPDelegate>
@property (nonatomic, weak) id<TPTentClientDelegate> delegate;
@property (nonatomic, strong) NSString *customURLScheme;
@property (nonatomic, strong) NSString *appName;
@property (nonatomic, strong) NSString *appDescription;
@property (nonatomic, strong) NSURL *appWebsiteURL;
@property (nonatomic, strong) NSDictionary *scopes;
// Discovery
- (void)discoverCanonicalURLsForEntityURL:(NSURL *)url
success:(void (^)(NSURL *canonicalServerURL, NSURL *canonicalEntityURL))success
failure:(void (^)(NSError *error))failure;
// OAuth
- (BOOL)isAuthorizedForTentServer:(NSURL *)url;
- (void)authorizeForTentServerURL:(NSURL *)url;
- (void)authorizeForTentServerURL:(NSURL *)url
success:(void (^)())success
failure:(void (^)(NSError *error))failure;
- (BOOL)handleOpenURL:(NSURL *)url;
// Retrieving Representations
- (void)getProfileRepresentationForEntityURL:(NSURL *)entityURL
success:(void (^)(NSDictionary *basicInfo))success
failure:(void (^)(NSError *error))failure;
- (void)getPostRepresentationsWithSuccess:(void (^)(NSArray *statusRepresentations))success
failure:(void (^)(NSError *error))failure;
// Creating Resources
- (void)postStatusWithText:(NSString *)text permissions:(NSDictionary *)permissions
success:(void (^)(void))success
failure:(void (^)(NSError *error))failure;
- (void)postPostWithType:(NSString *)postType permissions:(NSDictionary *)permissions content:(NSDictionary *)content
success:(void (^)(void))success
failure:(void (^)(NSError *error))failure;
@end
// Supported tent types
//extern NSString * const TPTentClientProfileInfoTypeCore;
extern NSString * const TPTentClientProfileInfoTypeBasic;
extern NSString * const TPTentClientPostTypeStatus;
//extern NSString * const TPTentClientPostTypeEssay;
//extern NSString * const TPTentClientPostTypePhoto;
//extern NSString * const TPTentClientPostTypeAlbum;
//extern NSString * const TPTentClientPostTypeRepost;
//extern NSString * const TPTentClientPostTypeProfileModification;
//extern NSString * const TPTentClientPostTypeDeleteNotification;
// Notifications and UserInfo dict keys
extern NSString * const TPTentServerDiscoveryCheckingHeadResponseForProfileLinkNotification;
extern NSString * const TPTentServerDiscoveryFellBackToGetResponseForProfileLinkNotification;
extern NSString * const TPTentServerDiscoveryFetchingCanonicalURLsFromProfileNotification;
extern NSString * const TPTentServerDiscoveryFailureNotification;
extern NSString * const TPTentServerDiscoverySuccessNotification;
extern NSString * const TPTentServerDiscoverySuccessNotificationCanonicalServerURLKey;
extern NSString * const TPTentServerDiscoverySuccessNotificationCanonicalEntityURLKey;
extern NSString * const TPTentClientWillAuthorizeWithTentServerNotification;
extern NSString * const TPTentClientDidAuthorizeWithTentServerNotification;
extern NSString * const TPTentClientAuthorizingWithTentServerURLKey;
@protocol TPTentClientDelegate <NSObject>
@optional
// TODO: notes and delegate calls should map one-to-one
- (void)tentClient:(TPTentClient *)tentClient didAuthorizeWithTentServerURL:(NSURL *)canonicalServerURL;
@end