Objective C API wrapper
General description
This page describes the project: objc-twapi
This project is a library, intended for handling the translatewiki.net API in Objective C. It encapsulates all the HTTP communication that is executed on every API request.
For using it, one should create a object of type TWapi, that stores the information about the current user that makes requests to the API. The requests are done through this object. One should create it with a TWUser object, describing the user that is logged in to the systems and makes requests to the API.
It handles the requests asynchronously, with a few synchronous functions.
Functions
Here is the documentation about the various functions in TWapi.h:
Function | Description |
---|---|
-(id) initForUser:(TWUser*) linkedUser; |
Initialization of the TWapi object, with a user object. |
-(void)TWPerformRequestWithParams:(NSDictionary *)params completionHandler:(void (^)(NSDictionary *, NSError *))completionBlock; |
Asynchronous general request - this is the sole method which "speaks" to the API server. It does: |
-(void)TWLoginRequestWithPassword:(NSString*) passw completionHandler:(void (^)(NSString *, NSError *))completionBlock; |
Login Request - this method handles login request by two steps: 1) Requests token |
-(void)TWLoginRequestWithPassword:(NSString*) passw isMainThreadBlocked:(BOOL)isBlocked completionHandler:(void (^)(NSString *, NSError *))completionBlock; |
isMainThreadBlocked=YES means that the main thread is blocked (for example by a loop that makes the thread sleep until the response arrives), because it has to know the response before it can continue |
-(void)TWLogoutRequest:(void (^)(NSDictionary *, NSError *))completionBlock; |
Logout request. Parameter: completionBlock (see TWPerformRequestWithParams) |
-(void)TWEditRequestWithTitle:(NSString*)title andText:(NSString*)text completionHandler:(void (^)(NSError *, NSDictionary*))completionBlock; |
Request to edit some page, with the title title, and requesting the text of the page to be text. completionBlock: see TWPerformRequestWithParams. |
-(void)TWTranslatedMessagesListRequestForLanguage:(NSString*)lang Project:(NSString*)proj Limitfor:(NSInteger)limit OffsetToStart:(NSInteger)offset completionHandler:(void (^)(NSDictionary *, NSError *))completionBlock; |
Request to get a list of translated messages for the language lang, for the project proj, with the limit of up to limit messages, and an offset of offset. completionBlock: see TWPerformRequestWithParams. |
-(void)TWUntranslatedMessagesListRequestForLanguage:(NSString*)lang Project:(NSString*)proj Limitfor:(NSInteger)limit OffsetToStart:(NSInteger)offset completionHandler:(void (^)(NSDictionary *, NSError *))completionBlock; |
Request to get a list of untranslated (!fuzzy|!translated) messages for the language lang, for the project proj, with the limit of up to limit messages, and an offset of offset. completionBlock: see TWPerformRequestWithParams. |
-(void)TWTranslationAidsForTitle:(NSString*)title withProject:(NSString*)proj completionHandler:(void (^)(NSDictionary *, NSError *))completionBlock; |
Request to get the dictionary of translation aids, for the page with the title title, under the project proj. This dictionary includes translation suggestions and documentation. completionBlock: see TWPerformRequestWithParams. |
-(void)TWTranslationReviewRequest:(NSString *)revision completionHandler:(void (^)(NSError *, NSDictionary*))completionBlock; |
Request to accept (translation review) an existing translation, which has the revision revision (a number, stored as string). completionBlock: see TWPerformRequestWithParams. |
-(void)TWProjectListMaxDepth:(NSInteger)depth completionHandler:(void (^)(NSArray *, NSError *))completionBlock; |
Request to get a list of the translatewiki.net's projects up to some depth depth. completionBlock: see TWPerformRequestWithParams. |
-(void)TWQueryRequestAsync:(NSDictionary *)params completionHandler:(void (^)(NSDictionary *, NSError *))completionBlock; |
General request of action=query. completionBlock: see TWPerformRequestWithParams. |
-(NSString*)TWUserIdRequestOfUserName:(NSString*)userName; |
Request to get the user id of some user name userName. |
-(NSMutableDictionary *)TWRequest:(NSDictionary *)params; |
Synchronous version of TWPerformRequestWithParams. |
-(NSMutableDictionary *)TWQueryRequest:(NSDictionary *)params; |
Synchronous version of TWQueryRequestAsync. |
-(NSDictionary *)TWEditRequest:(NSDictionary *)params; |
Synchronous edit request. |
Properties
Description of the TWapi properties:
Property | Description |
---|---|
@property(nonatomic, copy)TWUser* user; |
The user object that contains the information about the user making requests to api |
@property(nonatomic) dispatch_queue_t queue; |
The queue in which the api requests are being made |
Description of the TWUser properties:
Property | Description |
---|---|
@property(nonatomic, copy)NSString* userName; |
User name |
@property(nonatomic, copy)NSString* userId; |
User id |
@property BOOL isLoggedin; |
Did the authentication succeed, and the user is logged in |