//
//  DONSMediaUploadClient.h
//  DOCore
//
//  Created by Ben Dolman on 10/20/14.
//
//

#import "DONSMediaClient.h"

/**
 * A concrete implementation of DONSMediaClient that uploads media objects.
 */
@interface DONSMediaUploadClient : DONSMediaClient

@property (copy, readonly) NSURL *mediaUploadEndpoint;

- (instancetype)initWithSessionConfiguration:(NSURLSessionConfiguration *)configuration
                                   webClient:(DOWebClient *)webClient
                                    delegate:(id<DONSMediaClientDelegate>)delegate
                               delegateQueue:(NSOperationQueue *)delegateQueue
                         mediaUploadEndpoint:(NSURL *)endpoint;

- (void)uploadMediaFileWithHash:(NSString *)hash
                 fromSourceFile:(NSURL *)sourceFileURL
                    contentType:(NSString *)contentType;

@end

@interface DONSMediaUploadClientRequest : DONSMediaClientRequest

@property (copy, readonly) NSURL *sourceFileURL;
@property (copy, readonly) NSString *contentType;

- (instancetype)initWithHash:(NSString *)hash
               sourceFileURL:(NSURL *)fileURL
                 contentType:(NSString *)contentType;

@end