@@ -1554,7 +1554,7 @@ - (NSURLSessionDataTask *)getReactions:(NSString *)reaction fromMessage:(NSInteg
15541554
15551555#pragma mark - Polls Controller
15561556
1557- - (NSURLSessionDataTask *)createPollWithQuestion : (NSString *)question options : (NSArray *)options resultMode : (NCPollResultMode)resultMode maxVotes : (NSInteger )maxVotes inRoom : (NSString *)token forAccount : (TalkAccount *)account withCompletionBlock : (PollCompletionBlock)block
1557+ - (NSURLSessionDataTask *)createPollWithQuestion : (NSString *)question options : (NSArray *)options resultMode : (NCPollResultMode)resultMode maxVotes : (NSInteger )maxVotes inRoom : (NSString *)token asDraft : ( BOOL ) asDraft forAccount : (TalkAccount *)account withCompletionBlock : (PollCompletionBlock)block
15581558{
15591559 NSString *encodedToken = [token stringByAddingPercentEncodingWithAllowedCharacters: [NSCharacterSet URLHostAllowedCharacterSet ]];
15601560 NSString *endpoint = [NSString stringWithFormat: @" poll/%@ " , encodedToken];
@@ -1563,6 +1563,7 @@ - (NSURLSessionDataTask *)createPollWithQuestion:(NSString *)question options:(N
15631563 NSDictionary *parameters = @{@" question" : question,
15641564 @" options" : options,
15651565 @" resultMode" : @(resultMode),
1566+ @" draft" : @(asDraft),
15661567 @" maxVotes" : @(maxVotes)
15671568 };
15681569 NCAPISessionManager *apiSessionManager = [_apiSessionManagers objectForKey: account.accountId];
@@ -1610,6 +1611,31 @@ - (NSURLSessionDataTask *)getPollWithId:(NSInteger)pollId inRoom:(NSString *)tok
16101611 return task;
16111612}
16121613
1614+ - (NSURLSessionDataTask *)getPollDraftsInRoom : (NSString *)token forAccount : (TalkAccount *)account withCompletionBlock : (PollDraftsCompletionBlock)block
1615+ {
1616+ NSString *encodedToken = [token stringByAddingPercentEncodingWithAllowedCharacters: [NSCharacterSet URLHostAllowedCharacterSet ]];
1617+ NSString *endpoint = [NSString stringWithFormat: @" poll/%@ /drafts" , encodedToken];
1618+ NSInteger pollsAPIVersion = [self pollsAPIVersionForAccount: account];
1619+ NSString *URLString = [self getRequestURLForEndpoint: endpoint withAPIVersion: pollsAPIVersion forAccount: account];
1620+
1621+ NCAPISessionManager *apiSessionManager = [_apiSessionManagers objectForKey: account.accountId];
1622+ NSURLSessionDataTask *task = [apiSessionManager GET: URLString parameters: nil progress: nil success: ^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
1623+ NSArray *pollDrafts = [[responseObject objectForKey: @" ocs" ] objectForKey: @" data" ];
1624+ if (block) {
1625+ NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)task.response ;
1626+ block (pollDrafts, nil , httpResponse.statusCode );
1627+ }
1628+ } failure: ^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
1629+ NSInteger statusCode = [self getResponseStatusCode: task.response];
1630+ [self checkResponseStatusCode: statusCode forAccount: account];
1631+ if (block) {
1632+ block (nil , error, statusCode);
1633+ }
1634+ }];
1635+
1636+ return task;
1637+ }
1638+
16131639- (NSURLSessionDataTask *)voteOnPollWithId : (NSInteger )pollId inRoom : (NSString *)token withOptions : (NSArray *)options forAccount : (TalkAccount *)account withCompletionBlock : (PollCompletionBlock)block
16141640{
16151641 NSString *encodedToken = [token stringByAddingPercentEncodingWithAllowedCharacters: [NSCharacterSet URLHostAllowedCharacterSet ]];
0 commit comments