TNLExample/TAPI/TAPIUploadMediaRequest.m (52 lines of code) (raw):

// // TAPIUploadMediaRequest.m // TNLExample // // Created on 5/30/18. // Copyright © 2020 Twitter. All rights reserved. // #import "TAPIUploadMediaRequest.h" #import "TNLXMultipartFormData.h" @implementation TAPIUploadMediaRequest { id<TNLRequest> _underlyingRequest; } + (Class)responseClass { return [TAPIUploadMediaResponse class]; } - (instancetype)initWithImageData:(NSData *)imageData { if (self = [super init]) { TNLXMultipartFormDataRequest *request = [[TNLXMultipartFormDataRequest alloc] init]; request.URL = self.URL; [request addFormData:[TNLXFormDataEntry formDataWithText:@"phone" name:@"adc"]]; [request addFormData:[TNLXFormDataEntry formDataWithJPEGData:imageData name:@"media" fileName:@"./image.jpg"]]; _underlyingRequest = [request generateRequestWithUploadFormat:TNLXMultipartFormDataUploadFormatFile error:NULL]; } return self; } - (TNLHTTPMethod)HTTPMethodValue { return TNLHTTPMethodPOST; } - (NSString *)domain { return @"upload.twitter.com"; } - (NSString *)endpoint { return @"media/upload.json"; } - (NSString *)HTTPBodyFilePath { return _underlyingRequest.HTTPBodyFilePath; } - (NSDictionary *)allHTTPHeaderFields { NSMutableDictionary *fields = [[super allHTTPHeaderFields] mutableCopy] ?: [[NSMutableDictionary alloc] init]; [fields addEntriesFromDictionary:_underlyingRequest.allHTTPHeaderFields]; return fields; } @end @implementation TAPIUploadMediaResponse @synthesize didSucceed = _didSucceed; - (void)prepare { [super prepare]; _didSucceed = (200 == _info.statusCode); } @end