PageRenderTime 55ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 1ms

/samples/client/wordnik-api/objc/client/NIKWordApi.m

https://github.com/sforce100/swagger-codegen
Objective C | 1088 lines | 815 code | 152 blank | 121 comment | 285 complexity | 0e351b9c9ad5b293632761ad430a8f62 MD5 | raw file
  1. #import "NIKWordApi.h"
  2. #import "NIKDefinition.h"
  3. #import "NIKTextPron.h"
  4. #import "NIKExample.h"
  5. #import "NIKSyllable.h"
  6. #import "NIKAudioFile.h"
  7. #import "NIKExampleSearchResults.h"
  8. #import "NIKWordObject.h"
  9. #import "NIKBigram.h"
  10. #import "NIKRelated.h"
  11. #import "NIKFrequencySummary.h"
  12. @implementation NIKWordApi
  13. static NSString * basePath = @"http://api.wordnik.com/v4";
  14. @synthesize queue = _queue;
  15. @synthesize api = _api;
  16. - (id) init {
  17. self = [super init];
  18. _queue = [[NSOperationQueue alloc] init];
  19. _api = [[NIKApiInvoker alloc] init];
  20. return self;
  21. }
  22. -(void) addHeader:(NSString*) value
  23. forKey:(NSString*)key {
  24. [_api addHeader:value forKey:key];
  25. }
  26. /**
  27. *
  28. * returnTypeIsPrimitive:
  29. * returnBaseType: NIKExampleSearchResults
  30. * returnContainer:
  31. *
  32. **/
  33. -(void) getExamplesWithCompletionBlock :(NSString*) word includeDuplicates:(NSString*) includeDuplicates useCanonical:(NSString*) useCanonical skip:(NSNumber*) skip limit:(NSNumber*) limit
  34. completionHandler:(void (^)(NIKExampleSearchResults*, NSError *))completionBlock{
  35. NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/word.{format}/{word}/examples", basePath];
  36. // remove format in URL if needed
  37. if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
  38. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@".json"];
  39. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"word", @"}"]] withString: [_api escapeString:word]];
  40. NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
  41. if(includeDuplicates != nil)
  42. [queryParams setValue:includeDuplicates forKey:@"includeDuplicates"];
  43. if(useCanonical != nil)
  44. [queryParams setValue:useCanonical forKey:@"useCanonical"];
  45. if(skip != nil)
  46. [queryParams setValue:skip forKey:@"skip"];
  47. if(limit != nil)
  48. [queryParams setValue:limit forKey:@"limit"];
  49. NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init];
  50. id bodyDictionary = nil;
  51. if(word == nil) {
  52. // error
  53. }
  54. [_api dictionaryWithCompletionBlock: requestUrl
  55. method: @"GET"
  56. queryParams: queryParams
  57. body: bodyDictionary
  58. headerParams: headerParams
  59. completionHandler: ^(NSDictionary *data, NSError *error) {
  60. if (error) {
  61. completionBlock(nil, error);return;
  62. }
  63. completionBlock( [[NIKExampleSearchResults alloc]initWithValues: data], nil);}];
  64. }
  65. /**
  66. *
  67. * returnTypeIsPrimitive:
  68. * returnBaseType: NIKWordObject
  69. * returnContainer:
  70. *
  71. **/
  72. -(void) getWordWithCompletionBlock :(NSString*) word useCanonical:(NSString*) useCanonical includeSuggestions:(NSString*) includeSuggestions
  73. completionHandler:(void (^)(NIKWordObject*, NSError *))completionBlock{
  74. NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/word.{format}/{word}", basePath];
  75. // remove format in URL if needed
  76. if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
  77. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@".json"];
  78. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"word", @"}"]] withString: [_api escapeString:word]];
  79. NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
  80. if(useCanonical != nil)
  81. [queryParams setValue:useCanonical forKey:@"useCanonical"];
  82. if(includeSuggestions != nil)
  83. [queryParams setValue:includeSuggestions forKey:@"includeSuggestions"];
  84. NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init];
  85. id bodyDictionary = nil;
  86. if(word == nil) {
  87. // error
  88. }
  89. [_api dictionaryWithCompletionBlock: requestUrl
  90. method: @"GET"
  91. queryParams: queryParams
  92. body: bodyDictionary
  93. headerParams: headerParams
  94. completionHandler: ^(NSDictionary *data, NSError *error) {
  95. if (error) {
  96. completionBlock(nil, error);return;
  97. }
  98. completionBlock( [[NIKWordObject alloc]initWithValues: data], nil);}];
  99. }
  100. /**
  101. *
  102. * returnTypeIsPrimitive:
  103. * returnBaseType: NIKDefinition
  104. * returnContainer: List
  105. *
  106. **/
  107. -(void) getDefinitionsWithCompletionBlock :(NSString*) word partOfSpeech:(NSString*) partOfSpeech sourceDictionaries:(NSString*) sourceDictionaries limit:(NSNumber*) limit includeRelated:(NSString*) includeRelated useCanonical:(NSString*) useCanonical includeTags:(NSString*) includeTags
  108. completionHandler:(void (^)(NSArray*, NSError *))completionBlock{
  109. NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/word.{format}/{word}/definitions", basePath];
  110. // remove format in URL if needed
  111. if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
  112. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@".json"];
  113. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"word", @"}"]] withString: [_api escapeString:word]];
  114. NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
  115. if(limit != nil)
  116. [queryParams setValue:limit forKey:@"limit"];
  117. if(partOfSpeech != nil)
  118. [queryParams setValue:partOfSpeech forKey:@"partOfSpeech"];
  119. if(includeRelated != nil)
  120. [queryParams setValue:includeRelated forKey:@"includeRelated"];
  121. if(sourceDictionaries != nil)
  122. [queryParams setValue:sourceDictionaries forKey:@"sourceDictionaries"];
  123. if(useCanonical != nil)
  124. [queryParams setValue:useCanonical forKey:@"useCanonical"];
  125. if(includeTags != nil)
  126. [queryParams setValue:includeTags forKey:@"includeTags"];
  127. NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init];
  128. id bodyDictionary = nil;
  129. if(word == nil) {
  130. // error
  131. }
  132. [_api dictionaryWithCompletionBlock: requestUrl
  133. method: @"GET"
  134. queryParams: queryParams
  135. body: bodyDictionary
  136. headerParams: headerParams
  137. completionHandler: ^(NSDictionary *data, NSError *error) {
  138. if (error) {
  139. completionBlock(nil, error);return;
  140. }
  141. if([data isKindOfClass:[NSArray class]]){
  142. NSMutableArray * objs = [[NSMutableArray alloc] initWithCapacity:[data count]];
  143. for (NSDictionary* dict in (NSArray*)data) {
  144. NIKDefinition* d = [[NIKDefinition alloc]initWithValues: dict];
  145. [objs addObject:d];
  146. }
  147. completionBlock(objs, nil);
  148. }
  149. }];
  150. }
  151. /**
  152. *
  153. * returnTypeIsPrimitive:
  154. * returnBaseType: NIKExample
  155. * returnContainer:
  156. *
  157. **/
  158. -(void) getTopExampleWithCompletionBlock :(NSString*) word useCanonical:(NSString*) useCanonical
  159. completionHandler:(void (^)(NIKExample*, NSError *))completionBlock{
  160. NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/word.{format}/{word}/topExample", basePath];
  161. // remove format in URL if needed
  162. if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
  163. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@".json"];
  164. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"word", @"}"]] withString: [_api escapeString:word]];
  165. NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
  166. if(useCanonical != nil)
  167. [queryParams setValue:useCanonical forKey:@"useCanonical"];
  168. NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init];
  169. id bodyDictionary = nil;
  170. if(word == nil) {
  171. // error
  172. }
  173. [_api dictionaryWithCompletionBlock: requestUrl
  174. method: @"GET"
  175. queryParams: queryParams
  176. body: bodyDictionary
  177. headerParams: headerParams
  178. completionHandler: ^(NSDictionary *data, NSError *error) {
  179. if (error) {
  180. completionBlock(nil, error);return;
  181. }
  182. completionBlock( [[NIKExample alloc]initWithValues: data], nil);}];
  183. }
  184. /**
  185. *
  186. * returnTypeIsPrimitive:
  187. * returnBaseType: NIKRelated
  188. * returnContainer: List
  189. *
  190. **/
  191. -(void) getRelatedWordsWithCompletionBlock :(NSString*) word relationshipTypes:(NSString*) relationshipTypes useCanonical:(NSString*) useCanonical limitPerRelationshipType:(NSNumber*) limitPerRelationshipType
  192. completionHandler:(void (^)(NSArray*, NSError *))completionBlock{
  193. NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/word.{format}/{word}/relatedWords", basePath];
  194. // remove format in URL if needed
  195. if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
  196. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@".json"];
  197. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"word", @"}"]] withString: [_api escapeString:word]];
  198. NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
  199. if(useCanonical != nil)
  200. [queryParams setValue:useCanonical forKey:@"useCanonical"];
  201. if(relationshipTypes != nil)
  202. [queryParams setValue:relationshipTypes forKey:@"relationshipTypes"];
  203. if(limitPerRelationshipType != nil)
  204. [queryParams setValue:limitPerRelationshipType forKey:@"limitPerRelationshipType"];
  205. NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init];
  206. id bodyDictionary = nil;
  207. if(word == nil) {
  208. // error
  209. }
  210. [_api dictionaryWithCompletionBlock: requestUrl
  211. method: @"GET"
  212. queryParams: queryParams
  213. body: bodyDictionary
  214. headerParams: headerParams
  215. completionHandler: ^(NSDictionary *data, NSError *error) {
  216. if (error) {
  217. completionBlock(nil, error);return;
  218. }
  219. if([data isKindOfClass:[NSArray class]]){
  220. NSMutableArray * objs = [[NSMutableArray alloc] initWithCapacity:[data count]];
  221. for (NSDictionary* dict in (NSArray*)data) {
  222. NIKRelated* d = [[NIKRelated alloc]initWithValues: dict];
  223. [objs addObject:d];
  224. }
  225. completionBlock(objs, nil);
  226. }
  227. }];
  228. }
  229. /**
  230. *
  231. * returnTypeIsPrimitive:
  232. * returnBaseType: NIKTextPron
  233. * returnContainer: List
  234. *
  235. **/
  236. -(void) getTextPronunciationsWithCompletionBlock :(NSString*) word sourceDictionary:(NSString*) sourceDictionary typeFormat:(NSString*) typeFormat useCanonical:(NSString*) useCanonical limit:(NSNumber*) limit
  237. completionHandler:(void (^)(NSArray*, NSError *))completionBlock{
  238. NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/word.{format}/{word}/pronunciations", basePath];
  239. // remove format in URL if needed
  240. if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
  241. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@".json"];
  242. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"word", @"}"]] withString: [_api escapeString:word]];
  243. NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
  244. if(useCanonical != nil)
  245. [queryParams setValue:useCanonical forKey:@"useCanonical"];
  246. if(sourceDictionary != nil)
  247. [queryParams setValue:sourceDictionary forKey:@"sourceDictionary"];
  248. if(typeFormat != nil)
  249. [queryParams setValue:typeFormat forKey:@"typeFormat"];
  250. if(limit != nil)
  251. [queryParams setValue:limit forKey:@"limit"];
  252. NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init];
  253. id bodyDictionary = nil;
  254. if(word == nil) {
  255. // error
  256. }
  257. [_api dictionaryWithCompletionBlock: requestUrl
  258. method: @"GET"
  259. queryParams: queryParams
  260. body: bodyDictionary
  261. headerParams: headerParams
  262. completionHandler: ^(NSDictionary *data, NSError *error) {
  263. if (error) {
  264. completionBlock(nil, error);return;
  265. }
  266. if([data isKindOfClass:[NSArray class]]){
  267. NSMutableArray * objs = [[NSMutableArray alloc] initWithCapacity:[data count]];
  268. for (NSDictionary* dict in (NSArray*)data) {
  269. NIKTextPron* d = [[NIKTextPron alloc]initWithValues: dict];
  270. [objs addObject:d];
  271. }
  272. completionBlock(objs, nil);
  273. }
  274. }];
  275. }
  276. /**
  277. *
  278. * returnTypeIsPrimitive:
  279. * returnBaseType: NIKSyllable
  280. * returnContainer: List
  281. *
  282. **/
  283. -(void) getHyphenationWithCompletionBlock :(NSString*) word sourceDictionary:(NSString*) sourceDictionary useCanonical:(NSString*) useCanonical limit:(NSNumber*) limit
  284. completionHandler:(void (^)(NSArray*, NSError *))completionBlock{
  285. NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/word.{format}/{word}/hyphenation", basePath];
  286. // remove format in URL if needed
  287. if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
  288. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@".json"];
  289. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"word", @"}"]] withString: [_api escapeString:word]];
  290. NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
  291. if(useCanonical != nil)
  292. [queryParams setValue:useCanonical forKey:@"useCanonical"];
  293. if(sourceDictionary != nil)
  294. [queryParams setValue:sourceDictionary forKey:@"sourceDictionary"];
  295. if(limit != nil)
  296. [queryParams setValue:limit forKey:@"limit"];
  297. NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init];
  298. id bodyDictionary = nil;
  299. if(word == nil) {
  300. // error
  301. }
  302. [_api dictionaryWithCompletionBlock: requestUrl
  303. method: @"GET"
  304. queryParams: queryParams
  305. body: bodyDictionary
  306. headerParams: headerParams
  307. completionHandler: ^(NSDictionary *data, NSError *error) {
  308. if (error) {
  309. completionBlock(nil, error);return;
  310. }
  311. if([data isKindOfClass:[NSArray class]]){
  312. NSMutableArray * objs = [[NSMutableArray alloc] initWithCapacity:[data count]];
  313. for (NSDictionary* dict in (NSArray*)data) {
  314. NIKSyllable* d = [[NIKSyllable alloc]initWithValues: dict];
  315. [objs addObject:d];
  316. }
  317. completionBlock(objs, nil);
  318. }
  319. }];
  320. }
  321. /**
  322. *
  323. * returnTypeIsPrimitive:
  324. * returnBaseType: NIKFrequencySummary
  325. * returnContainer:
  326. *
  327. **/
  328. -(void) getWordFrequencyWithCompletionBlock :(NSString*) word useCanonical:(NSString*) useCanonical startYear:(NSNumber*) startYear endYear:(NSNumber*) endYear
  329. completionHandler:(void (^)(NIKFrequencySummary*, NSError *))completionBlock{
  330. NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/word.{format}/{word}/frequency", basePath];
  331. // remove format in URL if needed
  332. if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
  333. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@".json"];
  334. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"word", @"}"]] withString: [_api escapeString:word]];
  335. NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
  336. if(useCanonical != nil)
  337. [queryParams setValue:useCanonical forKey:@"useCanonical"];
  338. if(startYear != nil)
  339. [queryParams setValue:startYear forKey:@"startYear"];
  340. if(endYear != nil)
  341. [queryParams setValue:endYear forKey:@"endYear"];
  342. NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init];
  343. id bodyDictionary = nil;
  344. if(word == nil) {
  345. // error
  346. }
  347. [_api dictionaryWithCompletionBlock: requestUrl
  348. method: @"GET"
  349. queryParams: queryParams
  350. body: bodyDictionary
  351. headerParams: headerParams
  352. completionHandler: ^(NSDictionary *data, NSError *error) {
  353. if (error) {
  354. completionBlock(nil, error);return;
  355. }
  356. completionBlock( [[NIKFrequencySummary alloc]initWithValues: data], nil);}];
  357. }
  358. /**
  359. *
  360. * returnTypeIsPrimitive:
  361. * returnBaseType: NIKBigram
  362. * returnContainer: List
  363. *
  364. **/
  365. -(void) getPhrasesWithCompletionBlock :(NSString*) word limit:(NSNumber*) limit wlmi:(NSNumber*) wlmi useCanonical:(NSString*) useCanonical
  366. completionHandler:(void (^)(NSArray*, NSError *))completionBlock{
  367. NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/word.{format}/{word}/phrases", basePath];
  368. // remove format in URL if needed
  369. if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
  370. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@".json"];
  371. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"word", @"}"]] withString: [_api escapeString:word]];
  372. NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
  373. if(limit != nil)
  374. [queryParams setValue:limit forKey:@"limit"];
  375. if(wlmi != nil)
  376. [queryParams setValue:wlmi forKey:@"wlmi"];
  377. if(useCanonical != nil)
  378. [queryParams setValue:useCanonical forKey:@"useCanonical"];
  379. NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init];
  380. id bodyDictionary = nil;
  381. if(word == nil) {
  382. // error
  383. }
  384. [_api dictionaryWithCompletionBlock: requestUrl
  385. method: @"GET"
  386. queryParams: queryParams
  387. body: bodyDictionary
  388. headerParams: headerParams
  389. completionHandler: ^(NSDictionary *data, NSError *error) {
  390. if (error) {
  391. completionBlock(nil, error);return;
  392. }
  393. if([data isKindOfClass:[NSArray class]]){
  394. NSMutableArray * objs = [[NSMutableArray alloc] initWithCapacity:[data count]];
  395. for (NSDictionary* dict in (NSArray*)data) {
  396. NIKBigram* d = [[NIKBigram alloc]initWithValues: dict];
  397. [objs addObject:d];
  398. }
  399. completionBlock(objs, nil);
  400. }
  401. }];
  402. }
  403. /**
  404. *
  405. * returnTypeIsPrimitive: true
  406. * returnBaseType: NSString
  407. * returnContainer: List
  408. *
  409. **/
  410. -(void) getEtymologiesWithCompletionBlock :(NSString*) word useCanonical:(NSString*) useCanonical
  411. completionHandler:(void (^)(NSArray*, NSError *))completionBlock{
  412. NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/word.{format}/{word}/etymologies", basePath];
  413. // remove format in URL if needed
  414. if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
  415. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@".json"];
  416. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"word", @"}"]] withString: [_api escapeString:word]];
  417. NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
  418. if(useCanonical != nil)
  419. [queryParams setValue:useCanonical forKey:@"useCanonical"];
  420. NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init];
  421. id bodyDictionary = nil;
  422. if(word == nil) {
  423. // error
  424. }
  425. [_api dictionaryWithCompletionBlock: requestUrl
  426. method: @"GET"
  427. queryParams: queryParams
  428. body: bodyDictionary
  429. headerParams: headerParams
  430. completionHandler: ^(NSDictionary *data, NSError *error) {
  431. if (error) {
  432. completionBlock(nil, error);return;
  433. }
  434. if([data isKindOfClass:[NSArray class]]){
  435. NSMutableArray * objs = [[NSMutableArray alloc] initWithCapacity:[data count]];
  436. for (NSDictionary* dict in (NSArray*)data) {
  437. NSString* d = [[NSString alloc]initWithString: data];
  438. [objs addObject:d];
  439. }
  440. completionBlock(objs, nil);
  441. }
  442. }];
  443. }
  444. /**
  445. *
  446. * returnTypeIsPrimitive:
  447. * returnBaseType: NIKAudioFile
  448. * returnContainer: List
  449. *
  450. **/
  451. -(void) getAudioWithCompletionBlock :(NSString*) word useCanonical:(NSString*) useCanonical limit:(NSNumber*) limit
  452. completionHandler:(void (^)(NSArray*, NSError *))completionBlock{
  453. NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/word.{format}/{word}/audio", basePath];
  454. // remove format in URL if needed
  455. if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
  456. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@".json"];
  457. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"word", @"}"]] withString: [_api escapeString:word]];
  458. NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
  459. if(useCanonical != nil)
  460. [queryParams setValue:useCanonical forKey:@"useCanonical"];
  461. if(limit != nil)
  462. [queryParams setValue:limit forKey:@"limit"];
  463. NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init];
  464. id bodyDictionary = nil;
  465. if(word == nil) {
  466. // error
  467. }
  468. [_api dictionaryWithCompletionBlock: requestUrl
  469. method: @"GET"
  470. queryParams: queryParams
  471. body: bodyDictionary
  472. headerParams: headerParams
  473. completionHandler: ^(NSDictionary *data, NSError *error) {
  474. if (error) {
  475. completionBlock(nil, error);return;
  476. }
  477. if([data isKindOfClass:[NSArray class]]){
  478. NSMutableArray * objs = [[NSMutableArray alloc] initWithCapacity:[data count]];
  479. for (NSDictionary* dict in (NSArray*)data) {
  480. NIKAudioFile* d = [[NIKAudioFile alloc]initWithValues: dict];
  481. [objs addObject:d];
  482. }
  483. completionBlock(objs, nil);
  484. }
  485. }];
  486. }
  487. -(void) getExamplesAsJsonWithCompletionBlock :(NSString*) word includeDuplicates:(NSString*) includeDuplicates useCanonical:(NSString*) useCanonical skip:(NSNumber*) skip limit:(NSNumber*) limit
  488. completionHandler:(void (^)(NSString*, NSError *))completionBlock{
  489. NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/word.{format}/{word}/examples", basePath];
  490. // remove format in URL if needed
  491. if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
  492. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@""];
  493. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"word", @"}"]] withString: [_api escapeString:word]];
  494. NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
  495. if(includeDuplicates != nil)
  496. [queryParams setValue:includeDuplicates forKey:@"includeDuplicates"];
  497. if(useCanonical != nil)
  498. [queryParams setValue:useCanonical forKey:@"useCanonical"];
  499. if(skip != nil)
  500. [queryParams setValue:skip forKey:@"skip"];
  501. if(limit != nil)
  502. [queryParams setValue:limit forKey:@"limit"];
  503. NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init];
  504. id bodyDictionary = nil;
  505. if(word == nil) {
  506. // error
  507. }
  508. [_api dictionaryWithCompletionBlock: requestUrl
  509. method: @"GET"
  510. queryParams: queryParams
  511. body: bodyDictionary
  512. headerParams: headerParams
  513. completionHandler: ^(NSDictionary *data, NSError *error) {
  514. if (error) {
  515. completionBlock(nil, error);return;
  516. }
  517. NSData * responseData = nil;
  518. if([data isKindOfClass:[NSDictionary class]]){
  519. responseData = [NSJSONSerialization dataWithJSONObject:data
  520. options:kNilOptions error:&error];
  521. }
  522. else if ([data isKindOfClass:[NSArray class]]){
  523. responseData = [NSJSONSerialization dataWithJSONObject:data
  524. options:kNilOptions error:&error];
  525. }
  526. NSString * json = [[NSString alloc]initWithData:responseData encoding:NSUTF8StringEncoding];
  527. completionBlock(json, nil);
  528. }];
  529. }
  530. -(void) getWordAsJsonWithCompletionBlock :(NSString*) word useCanonical:(NSString*) useCanonical includeSuggestions:(NSString*) includeSuggestions
  531. completionHandler:(void (^)(NSString*, NSError *))completionBlock{
  532. NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/word.{format}/{word}", basePath];
  533. // remove format in URL if needed
  534. if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
  535. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@""];
  536. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"word", @"}"]] withString: [_api escapeString:word]];
  537. NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
  538. if(useCanonical != nil)
  539. [queryParams setValue:useCanonical forKey:@"useCanonical"];
  540. if(includeSuggestions != nil)
  541. [queryParams setValue:includeSuggestions forKey:@"includeSuggestions"];
  542. NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init];
  543. id bodyDictionary = nil;
  544. if(word == nil) {
  545. // error
  546. }
  547. [_api dictionaryWithCompletionBlock: requestUrl
  548. method: @"GET"
  549. queryParams: queryParams
  550. body: bodyDictionary
  551. headerParams: headerParams
  552. completionHandler: ^(NSDictionary *data, NSError *error) {
  553. if (error) {
  554. completionBlock(nil, error);return;
  555. }
  556. NSData * responseData = nil;
  557. if([data isKindOfClass:[NSDictionary class]]){
  558. responseData = [NSJSONSerialization dataWithJSONObject:data
  559. options:kNilOptions error:&error];
  560. }
  561. else if ([data isKindOfClass:[NSArray class]]){
  562. responseData = [NSJSONSerialization dataWithJSONObject:data
  563. options:kNilOptions error:&error];
  564. }
  565. NSString * json = [[NSString alloc]initWithData:responseData encoding:NSUTF8StringEncoding];
  566. completionBlock(json, nil);
  567. }];
  568. }
  569. -(void) getDefinitionsAsJsonWithCompletionBlock :(NSString*) word partOfSpeech:(NSString*) partOfSpeech sourceDictionaries:(NSString*) sourceDictionaries limit:(NSNumber*) limit includeRelated:(NSString*) includeRelated useCanonical:(NSString*) useCanonical includeTags:(NSString*) includeTags
  570. completionHandler:(void (^)(NSString*, NSError *))completionBlock{
  571. NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/word.{format}/{word}/definitions", basePath];
  572. // remove format in URL if needed
  573. if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
  574. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@""];
  575. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"word", @"}"]] withString: [_api escapeString:word]];
  576. NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
  577. if(limit != nil)
  578. [queryParams setValue:limit forKey:@"limit"];
  579. if(partOfSpeech != nil)
  580. [queryParams setValue:partOfSpeech forKey:@"partOfSpeech"];
  581. if(includeRelated != nil)
  582. [queryParams setValue:includeRelated forKey:@"includeRelated"];
  583. if(sourceDictionaries != nil)
  584. [queryParams setValue:sourceDictionaries forKey:@"sourceDictionaries"];
  585. if(useCanonical != nil)
  586. [queryParams setValue:useCanonical forKey:@"useCanonical"];
  587. if(includeTags != nil)
  588. [queryParams setValue:includeTags forKey:@"includeTags"];
  589. NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init];
  590. id bodyDictionary = nil;
  591. if(word == nil) {
  592. // error
  593. }
  594. [_api dictionaryWithCompletionBlock: requestUrl
  595. method: @"GET"
  596. queryParams: queryParams
  597. body: bodyDictionary
  598. headerParams: headerParams
  599. completionHandler: ^(NSDictionary *data, NSError *error) {
  600. if (error) {
  601. completionBlock(nil, error);return;
  602. }
  603. NSData * responseData = nil;
  604. if([data isKindOfClass:[NSDictionary class]]){
  605. responseData = [NSJSONSerialization dataWithJSONObject:data
  606. options:kNilOptions error:&error];
  607. }
  608. else if ([data isKindOfClass:[NSArray class]]){
  609. responseData = [NSJSONSerialization dataWithJSONObject:data
  610. options:kNilOptions error:&error];
  611. }
  612. NSString * json = [[NSString alloc]initWithData:responseData encoding:NSUTF8StringEncoding];
  613. completionBlock(json, nil);
  614. }];
  615. }
  616. -(void) getTopExampleAsJsonWithCompletionBlock :(NSString*) word useCanonical:(NSString*) useCanonical
  617. completionHandler:(void (^)(NSString*, NSError *))completionBlock{
  618. NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/word.{format}/{word}/topExample", basePath];
  619. // remove format in URL if needed
  620. if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
  621. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@""];
  622. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"word", @"}"]] withString: [_api escapeString:word]];
  623. NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
  624. if(useCanonical != nil)
  625. [queryParams setValue:useCanonical forKey:@"useCanonical"];
  626. NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init];
  627. id bodyDictionary = nil;
  628. if(word == nil) {
  629. // error
  630. }
  631. [_api dictionaryWithCompletionBlock: requestUrl
  632. method: @"GET"
  633. queryParams: queryParams
  634. body: bodyDictionary
  635. headerParams: headerParams
  636. completionHandler: ^(NSDictionary *data, NSError *error) {
  637. if (error) {
  638. completionBlock(nil, error);return;
  639. }
  640. NSData * responseData = nil;
  641. if([data isKindOfClass:[NSDictionary class]]){
  642. responseData = [NSJSONSerialization dataWithJSONObject:data
  643. options:kNilOptions error:&error];
  644. }
  645. else if ([data isKindOfClass:[NSArray class]]){
  646. responseData = [NSJSONSerialization dataWithJSONObject:data
  647. options:kNilOptions error:&error];
  648. }
  649. NSString * json = [[NSString alloc]initWithData:responseData encoding:NSUTF8StringEncoding];
  650. completionBlock(json, nil);
  651. }];
  652. }
  653. -(void) getRelatedWordsAsJsonWithCompletionBlock :(NSString*) word relationshipTypes:(NSString*) relationshipTypes useCanonical:(NSString*) useCanonical limitPerRelationshipType:(NSNumber*) limitPerRelationshipType
  654. completionHandler:(void (^)(NSString*, NSError *))completionBlock{
  655. NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/word.{format}/{word}/relatedWords", basePath];
  656. // remove format in URL if needed
  657. if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
  658. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@""];
  659. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"word", @"}"]] withString: [_api escapeString:word]];
  660. NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
  661. if(useCanonical != nil)
  662. [queryParams setValue:useCanonical forKey:@"useCanonical"];
  663. if(relationshipTypes != nil)
  664. [queryParams setValue:relationshipTypes forKey:@"relationshipTypes"];
  665. if(limitPerRelationshipType != nil)
  666. [queryParams setValue:limitPerRelationshipType forKey:@"limitPerRelationshipType"];
  667. NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init];
  668. id bodyDictionary = nil;
  669. if(word == nil) {
  670. // error
  671. }
  672. [_api dictionaryWithCompletionBlock: requestUrl
  673. method: @"GET"
  674. queryParams: queryParams
  675. body: bodyDictionary
  676. headerParams: headerParams
  677. completionHandler: ^(NSDictionary *data, NSError *error) {
  678. if (error) {
  679. completionBlock(nil, error);return;
  680. }
  681. NSData * responseData = nil;
  682. if([data isKindOfClass:[NSDictionary class]]){
  683. responseData = [NSJSONSerialization dataWithJSONObject:data
  684. options:kNilOptions error:&error];
  685. }
  686. else if ([data isKindOfClass:[NSArray class]]){
  687. responseData = [NSJSONSerialization dataWithJSONObject:data
  688. options:kNilOptions error:&error];
  689. }
  690. NSString * json = [[NSString alloc]initWithData:responseData encoding:NSUTF8StringEncoding];
  691. completionBlock(json, nil);
  692. }];
  693. }
  694. -(void) getTextPronunciationsAsJsonWithCompletionBlock :(NSString*) word sourceDictionary:(NSString*) sourceDictionary typeFormat:(NSString*) typeFormat useCanonical:(NSString*) useCanonical limit:(NSNumber*) limit
  695. completionHandler:(void (^)(NSString*, NSError *))completionBlock{
  696. NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/word.{format}/{word}/pronunciations", basePath];
  697. // remove format in URL if needed
  698. if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
  699. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@""];
  700. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"word", @"}"]] withString: [_api escapeString:word]];
  701. NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
  702. if(useCanonical != nil)
  703. [queryParams setValue:useCanonical forKey:@"useCanonical"];
  704. if(sourceDictionary != nil)
  705. [queryParams setValue:sourceDictionary forKey:@"sourceDictionary"];
  706. if(typeFormat != nil)
  707. [queryParams setValue:typeFormat forKey:@"typeFormat"];
  708. if(limit != nil)
  709. [queryParams setValue:limit forKey:@"limit"];
  710. NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init];
  711. id bodyDictionary = nil;
  712. if(word == nil) {
  713. // error
  714. }
  715. [_api dictionaryWithCompletionBlock: requestUrl
  716. method: @"GET"
  717. queryParams: queryParams
  718. body: bodyDictionary
  719. headerParams: headerParams
  720. completionHandler: ^(NSDictionary *data, NSError *error) {
  721. if (error) {
  722. completionBlock(nil, error);return;
  723. }
  724. NSData * responseData = nil;
  725. if([data isKindOfClass:[NSDictionary class]]){
  726. responseData = [NSJSONSerialization dataWithJSONObject:data
  727. options:kNilOptions error:&error];
  728. }
  729. else if ([data isKindOfClass:[NSArray class]]){
  730. responseData = [NSJSONSerialization dataWithJSONObject:data
  731. options:kNilOptions error:&error];
  732. }
  733. NSString * json = [[NSString alloc]initWithData:responseData encoding:NSUTF8StringEncoding];
  734. completionBlock(json, nil);
  735. }];
  736. }
  737. -(void) getHyphenationAsJsonWithCompletionBlock :(NSString*) word sourceDictionary:(NSString*) sourceDictionary useCanonical:(NSString*) useCanonical limit:(NSNumber*) limit
  738. completionHandler:(void (^)(NSString*, NSError *))completionBlock{
  739. NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/word.{format}/{word}/hyphenation", basePath];
  740. // remove format in URL if needed
  741. if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
  742. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@""];
  743. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"word", @"}"]] withString: [_api escapeString:word]];
  744. NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
  745. if(useCanonical != nil)
  746. [queryParams setValue:useCanonical forKey:@"useCanonical"];
  747. if(sourceDictionary != nil)
  748. [queryParams setValue:sourceDictionary forKey:@"sourceDictionary"];
  749. if(limit != nil)
  750. [queryParams setValue:limit forKey:@"limit"];
  751. NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init];
  752. id bodyDictionary = nil;
  753. if(word == nil) {
  754. // error
  755. }
  756. [_api dictionaryWithCompletionBlock: requestUrl
  757. method: @"GET"
  758. queryParams: queryParams
  759. body: bodyDictionary
  760. headerParams: headerParams
  761. completionHandler: ^(NSDictionary *data, NSError *error) {
  762. if (error) {
  763. completionBlock(nil, error);return;
  764. }
  765. NSData * responseData = nil;
  766. if([data isKindOfClass:[NSDictionary class]]){
  767. responseData = [NSJSONSerialization dataWithJSONObject:data
  768. options:kNilOptions error:&error];
  769. }
  770. else if ([data isKindOfClass:[NSArray class]]){
  771. responseData = [NSJSONSerialization dataWithJSONObject:data
  772. options:kNilOptions error:&error];
  773. }
  774. NSString * json = [[NSString alloc]initWithData:responseData encoding:NSUTF8StringEncoding];
  775. completionBlock(json, nil);
  776. }];
  777. }
  778. -(void) getWordFrequencyAsJsonWithCompletionBlock :(NSString*) word useCanonical:(NSString*) useCanonical startYear:(NSNumber*) startYear endYear:(NSNumber*) endYear
  779. completionHandler:(void (^)(NSString*, NSError *))completionBlock{
  780. NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/word.{format}/{word}/frequency", basePath];
  781. // remove format in URL if needed
  782. if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
  783. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@""];
  784. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"word", @"}"]] withString: [_api escapeString:word]];
  785. NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
  786. if(useCanonical != nil)
  787. [queryParams setValue:useCanonical forKey:@"useCanonical"];
  788. if(startYear != nil)
  789. [queryParams setValue:startYear forKey:@"startYear"];
  790. if(endYear != nil)
  791. [queryParams setValue:endYear forKey:@"endYear"];
  792. NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init];
  793. id bodyDictionary = nil;
  794. if(word == nil) {
  795. // error
  796. }
  797. [_api dictionaryWithCompletionBlock: requestUrl
  798. method: @"GET"
  799. queryParams: queryParams
  800. body: bodyDictionary
  801. headerParams: headerParams
  802. completionHandler: ^(NSDictionary *data, NSError *error) {
  803. if (error) {
  804. completionBlock(nil, error);return;
  805. }
  806. NSData * responseData = nil;
  807. if([data isKindOfClass:[NSDictionary class]]){
  808. responseData = [NSJSONSerialization dataWithJSONObject:data
  809. options:kNilOptions error:&error];
  810. }
  811. else if ([data isKindOfClass:[NSArray class]]){
  812. responseData = [NSJSONSerialization dataWithJSONObject:data
  813. options:kNilOptions error:&error];
  814. }
  815. NSString * json = [[NSString alloc]initWithData:responseData encoding:NSUTF8StringEncoding];
  816. completionBlock(json, nil);
  817. }];
  818. }
  819. -(void) getPhrasesAsJsonWithCompletionBlock :(NSString*) word limit:(NSNumber*) limit wlmi:(NSNumber*) wlmi useCanonical:(NSString*) useCanonical
  820. completionHandler:(void (^)(NSString*, NSError *))completionBlock{
  821. NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/word.{format}/{word}/phrases", basePath];
  822. // remove format in URL if needed
  823. if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
  824. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@""];
  825. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"word", @"}"]] withString: [_api escapeString:word]];
  826. NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
  827. if(limit != nil)
  828. [queryParams setValue:limit forKey:@"limit"];
  829. if(wlmi != nil)
  830. [queryParams setValue:wlmi forKey:@"wlmi"];
  831. if(useCanonical != nil)
  832. [queryParams setValue:useCanonical forKey:@"useCanonical"];
  833. NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init];
  834. id bodyDictionary = nil;
  835. if(word == nil) {
  836. // error
  837. }
  838. [_api dictionaryWithCompletionBlock: requestUrl
  839. method: @"GET"
  840. queryParams: queryParams
  841. body: bodyDictionary
  842. headerParams: headerParams
  843. completionHandler: ^(NSDictionary *data, NSError *error) {
  844. if (error) {
  845. completionBlock(nil, error);return;
  846. }
  847. NSData * responseData = nil;
  848. if([data isKindOfClass:[NSDictionary class]]){
  849. responseData = [NSJSONSerialization dataWithJSONObject:data
  850. options:kNilOptions error:&error];
  851. }
  852. else if ([data isKindOfClass:[NSArray class]]){
  853. responseData = [NSJSONSerialization dataWithJSONObject:data
  854. options:kNilOptions error:&error];
  855. }
  856. NSString * json = [[NSString alloc]initWithData:responseData encoding:NSUTF8StringEncoding];
  857. completionBlock(json, nil);
  858. }];
  859. }
  860. -(void) getEtymologiesAsJsonWithCompletionBlock :(NSString*) word useCanonical:(NSString*) useCanonical
  861. completionHandler:(void (^)(NSString*, NSError *))completionBlock{
  862. NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/word.{format}/{word}/etymologies", basePath];
  863. // remove format in URL if needed
  864. if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
  865. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@""];
  866. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"word", @"}"]] withString: [_api escapeString:word]];
  867. NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
  868. if(useCanonical != nil)
  869. [queryParams setValue:useCanonical forKey:@"useCanonical"];
  870. NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init];
  871. id bodyDictionary = nil;
  872. if(word == nil) {
  873. // error
  874. }
  875. [_api dictionaryWithCompletionBlock: requestUrl
  876. method: @"GET"
  877. queryParams: queryParams
  878. body: bodyDictionary
  879. headerParams: headerParams
  880. completionHandler: ^(NSDictionary *data, NSError *error) {
  881. if (error) {
  882. completionBlock(nil, error);return;
  883. }
  884. NSData * responseData = nil;
  885. if([data isKindOfClass:[NSDictionary class]]){
  886. responseData = [NSJSONSerialization dataWithJSONObject:data
  887. options:kNilOptions error:&error];
  888. }
  889. else if ([data isKindOfClass:[NSArray class]]){
  890. responseData = [NSJSONSerialization dataWithJSONObject:data
  891. options:kNilOptions error:&error];
  892. }
  893. NSString * json = [[NSString alloc]initWithData:responseData encoding:NSUTF8StringEncoding];
  894. completionBlock(json, nil);
  895. }];
  896. }
  897. -(void) getAudioAsJsonWithCompletionBlock :(NSString*) word useCanonical:(NSString*) useCanonical limit:(NSNumber*) limit
  898. completionHandler:(void (^)(NSString*, NSError *))completionBlock{
  899. NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@/word.{format}/{word}/audio", basePath];
  900. // remove format in URL if needed
  901. if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
  902. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@""];
  903. [requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"word", @"}"]] withString: [_api escapeString:word]];
  904. NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
  905. if(useCanonical != nil)
  906. [queryParams setValue:useCanonical forKey:@"useCanonical"];
  907. if(limit != nil)
  908. [queryParams setValue:limit forKey:@"limit"];
  909. NSMutableDictionary* headerParams = [[NSMutableDictionary alloc] init];
  910. id bodyDictionary = nil;
  911. if(word == nil) {
  912. // error
  913. }
  914. [_api dictionaryWithCompletionBlock: requestUrl
  915. method: @"GET"
  916. queryParams: queryParams
  917. body: bodyDictionary
  918. headerParams: headerParams
  919. completionHandler: ^(NSDictionary *data, NSError *error) {
  920. if (error) {
  921. completionBlock(nil, error);return;
  922. }
  923. NSData * responseData = nil;
  924. if([data isKindOfClass:[NSDictionary class]]){
  925. responseData = [NSJSONSerialization dataWithJSONObject:data
  926. options:kNilOptions error:&error];
  927. }
  928. else if ([data isKindOfClass:[NSArray class]]){
  929. responseData = [NSJSONSerialization dataWithJSONObject:data
  930. options:kNilOptions error:&error];
  931. }
  932. NSString * json = [[NSString alloc]initWithData:responseData encoding:NSUTF8StringEncoding];
  933. completionBlock(json, nil);
  934. }];
  935. }
  936. @end