diff --git a/library/Source/API/methods/VKApiConst.h b/library/Source/API/methods/VKApiConst.h index 0daeb8e2..06658c9c 100644 --- a/library/Source/API/methods/VKApiConst.h +++ b/library/Source/API/methods/VKApiConst.h @@ -121,3 +121,7 @@ typedef NS_ENUM(NSInteger, VKProgressType) { VKProgressTypeDownload }; +extern NSString *const VK_API_DOMAIN; +extern NSString *const VK_API_FILTER; +extern NSString *const VK_API_RANDOM_ID; + diff --git a/library/Source/API/methods/VKApiConst.m b/library/Source/API/methods/VKApiConst.m index b2550845..1a1d5cd4 100644 --- a/library/Source/API/methods/VKApiConst.m +++ b/library/Source/API/methods/VKApiConst.m @@ -101,3 +101,8 @@ //Events NSString *const VKCaptchaAnsweredEvent = @"VKCaptchaAnsweredEvent"; + +NSString *const VK_API_DOMAIN = @"domain"; +NSString *const VK_API_FILTER = @"filter"; +NSString *const VK_API_RANDOM_ID = @"random_id"; + diff --git a/library/Source/API/methods/VKApiFriends.h b/library/Source/API/methods/VKApiFriends.h index ff74dcf5..cde4153a 100755 --- a/library/Source/API/methods/VKApiFriends.h +++ b/library/Source/API/methods/VKApiFriends.h @@ -29,4 +29,8 @@ Builds requests for API.users part - (VKRequest *)get; - (VKRequest *)get:(NSDictionary *)params; + +- (VKRequest *)getWithCount:(NSInteger)count + offset:(NSInteger)offset + fields:(NSArray *)fields; @end diff --git a/library/Source/API/methods/VKApiFriends.m b/library/Source/API/methods/VKApiFriends.m index 9b100eb2..6ffbe2dc 100755 --- a/library/Source/API/methods/VKApiFriends.m +++ b/library/Source/API/methods/VKApiFriends.m @@ -32,4 +32,18 @@ - (VKRequest *)get:(NSDictionary *)params { return [self prepareRequestWithMethodName:@"get" parameters:params modelClass:[VKUsersArray class]]; } +- (VKRequest *)getWithCount:(NSInteger)count + offset:(NSInteger)offset + fields:(NSArray *)fields { + NSString *mStringFields = [fields componentsJoinedByString:@","]; + return [self prepareRequestWithMethodName:@"get" + parameters: + @{ + VK_API_COUNT : @(count), + VK_API_OFFSET : @(offset), + VK_API_FIELDS : mStringFields + } + modelClass:[VKApiFriends class]]; +} + @end diff --git a/library/Source/API/methods/VKApiWall.h b/library/Source/API/methods/VKApiWall.h index 621a8159..9795191f 100755 --- a/library/Source/API/methods/VKApiWall.h +++ b/library/Source/API/methods/VKApiWall.h @@ -22,6 +22,14 @@ #import "VKApiBase.h" +typedef enum { + VKSdkWallFilterAll = 0, + VKSdkWallFilterSuggests = 1, + VKSdkWallFilterPostponed = 2, + VKSdkWallFilterOwner = 3, + VKSdkWallFilterOthers = 4 +} VKSdkWallFilter; + /** Builds requests for API.wall part */ @@ -32,4 +40,25 @@ Builds requests for API.wall part @return Request for execution */ - (VKRequest *)post:(NSDictionary *)params; + + +/** + https://vk.com/dev/wall.get + @param params Use parameters from description with VK_API prefix + @return Request for execution + */ +- (VKRequest *)getByOwnerId:(NSInteger)ownerId + domain:(NSString *)domain + offset:(NSInteger)offset + count:(NSInteger)count + filter:(VKSdkWallFilter)filter + extended:(BOOL)extended + fields:(NSArray *)fields; + + +- (VKRequest *)getByOwnerId:(NSInteger)ownerId + domain:(NSString *)domain + offset:(NSInteger)offset + count:(NSInteger)count; + @end diff --git a/library/Source/API/methods/VKApiWall.m b/library/Source/API/methods/VKApiWall.m index 167c454e..beb8b55b 100755 --- a/library/Source/API/methods/VKApiWall.m +++ b/library/Source/API/methods/VKApiWall.m @@ -27,4 +27,64 @@ - (VKRequest *)post:(NSDictionary *)params { return [self prepareRequestWithMethodName:@"post" parameters:params]; } +- (VKRequest *)getByOwnerId:(NSInteger)ownerId + domain:(NSString *)domain + offset:(NSInteger)offset + count:(NSInteger)count { + return [self getByOwnerId:ownerId + domain:domain + offset:offset + count:count + filter:VKSdkWallFilterAll + extended:NO + fields:@[]]; +} + +- (VKRequest *)getByOwnerId:(NSInteger)ownerId + domain:(NSString *)domain + offset:(NSInteger)offset + count:(NSInteger)count + filter:(VKSdkWallFilter)filter + extended:(BOOL)extended + fields:(NSArray *)fields { + return [self prepareRequestWithMethodName:@"get" + parameters: + @{ + VK_API_OWNER_ID : @(ownerId), + VK_API_DOMAIN : domain, + VK_API_COUNT : @(count), + VK_API_OFFSET : @(offset), + VK_API_FILTER : [self filterNameForEnum:filter], + VK_API_EXTENDED : @(extended), + VK_API_FIELDS : fields + } + modelClass:[VKDocsArray class]]; +} + + +- (NSString *)filterNameForEnum:(VKSdkWallFilter)filter { + NSString *result = nil; + switch (filter) { + case VKSdkWallFilterAll: + result = @"all"; + break; + case VKSdkWallFilterSuggests: + result = @"suggests"; + break; + case VKSdkWallFilterOthers: + result = @"others"; + break; + case VKSdkWallFilterOwner: + result = @"owner"; + break; + case VKSdkWallFilterPostponed: + result = @"postponed"; + break; + default: + result = @""; + break; + } + return result; +} + @end