//
//  APMServices.h
//  APMServices
//
//  Created by Vincent Ducastel on 21/05/2015.
//  Copyright (c) 2015 Moonmiles. All rights reserved.
//

@class APMAFHTTPRequestOperation;
@class APMGenerosity;
@class APMVersions;

@interface APMWebServices : NSObject

+(void)userCheckCredentials:(NSString*)email pwd:(NSString*)pwd facebookId:(NSString*)facebookId partnerClientId:(NSString*)partnerClientId segments:(NSDictionary*)segments success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)userCheckCredentials:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)userCreate:(NSString*)firstname lastname:(NSString*)lastname email:(NSString*)email pwd:(NSString*)pwd facebookId:(NSString*)facebookId partnerClientId:(NSString*)partnerClientId segments:(NSDictionary*)segments success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)userCreate:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)userEdit:(NSString*)userToken success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)userSave:(NSString*)userToken firstname:(NSString*)firstname lastname:(NSString*)lastname mobile:(NSString*)mobile gender:(NSString*)gender birthday:(NSString*)birthday city:(NSString*)city facebookId:(NSString*)facebookId partnerClientId:(NSString*)partnerClientId segments:(NSDictionary*)segments success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)userSave:(NSString*)userToken params:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)userHistoryEarns:(NSString*)userToken success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)userHistoryBurns:(NSString*)userToken success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)userSetPartnerClientId:(NSString*)userToken partnerClientId:(NSString*)partnerClientId success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)userSetPartnerClientId:(NSString*)userToken params:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)userSetAdhesion:(NSString*)userToken success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)userSavePassword:(NSString*)userToken oldPwd:(NSString*)oldPwd newPwd:(NSString*)newPwd confirmPwd:(NSString*)confirmPwd success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)userSavePassword:(NSString*)userToken params:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)userReNewPassword:(NSString*)email success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)userCheckToken:(NSString*)userToken success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)userLogout:(NSString*)userToken success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)userCheckFBCredentials:(NSString*)facebookId partnerClientId:(NSString*)partnerClientId segments:(NSDictionary*)segments success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)userCheckFBCredentials:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)userHistory:(NSString*)userToken success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)userGetSettings:(NSString*)userToken success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)userSaveSettings:(NSString*)userToken push:(NSString*)push mail:(NSString*)mail sms:(NSString*)sms mobileNumber:(NSString*)mobileNumber success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)userSaveSettings:(NSString*)userToken params:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)userContact:(NSString*)userToken comment:(NSString*)comment success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)userContact:(NSString*)userToken params:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)userEvaluate:(NSString*)userToken note:(NSString*)note comment:(NSString*)comment success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)userEvaluate:(NSString*)userToken params:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)userSavePushToken:(NSString*)userToken registrationId:(NSString*)registrationId success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)userSavePushToken:(NSString*)userToken params:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)userClientCheckCredentials:(NSString*)login pwd:(NSString*)pwd firstname:(NSString*)firstname lastname:(NSString*)lastname partnerClientId:(NSString*)partnerClientId oldClientId:(NSString*)oldClientId facebookId:(NSString*)facebookId segments:(NSDictionary*)segments success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)userClientCheckCredentials:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)userClientSave:(NSString*)userToken email:(NSString*)email firstname:(NSString*)firstname lastname:(NSString*)lastname mobile:(NSString*)mobile gender:(NSString*)gender birthday:(NSString*)birthday city:(NSString*)city facebookId:(NSString*)facebookId partnerClientId:(NSString*)partnerClientId segments:(NSDictionary*)segments success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)userClientSave:(NSString*)userToken params:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)userUnsubscribe:(NSString*)userToken comment:(NSString*)comment success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)userUnsubscribe:(NSString*)userToken params:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)partnerGetProg:(NSString*)partnerId partnerSecret:(NSString*)partnerSecret versions:(APMVersions*)versions success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)partnerGetProg:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)partnerList:(NSString*)userToken categoryID:(NSString*)categoryID success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)partnerList:(NSString*)userToken params:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)adList:(NSString*)userToken type:(NSString*)type success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)adList:(NSString*)userToken params:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)initCheckStore:(NSString*)partnerId partnerSecret:(NSString*)partnerSecret userToken:(NSString*)userToken partnerClientId:(NSString*)partnerClientId email:(NSString*)email classId:(NSString*)classId tagId:(NSString*)tagId date:(NSString*)date latitude:(NSString*)latitude longitude:(NSString*)longitude generosity:(APMGenerosity*)generosity partnerLevel:(NSInteger)partnerLevel versions:(APMVersions*)versions success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)initCheckStore:(NSString*)userToken params:(NSMutableDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)generosityStore:(NSString*)userToken partnerId:(NSString*)partnerId tagId:(NSString*)tagId date:(NSString*)date latitude:(NSString*)latitude longitude:(NSString*)longitude success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)generosityStore:(NSString*)userToken params:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)generosityList:(NSString*)userToken classId:(NSString*)classId success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)generosityList:(NSString*)userToken params:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)generosityListParams:(NSString*)userToken success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)generositySave:(NSString*)userToken generosity:(APMGenerosity*)generosity success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)generositySave:(NSString*)userToken params:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)generosityRemove:(NSString*)userToken generosity:(APMGenerosity*)generosity success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)generosityRemove:(NSString*)userToken params:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)giftGetObject:(NSString*)userToken burnId:(NSString*)burnId success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)giftGetObject:(NSString*)userToken params:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)giftNotification:(NSString*)userToken burnId:(NSString*)burnId success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)giftNotification:(NSString*)userToken params:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)giftCategoryList:(NSString*)userToken success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)giftList:(NSString*)userToken categoryId:(NSString*)categoryId amount:(NSString*)amount partnerId:(NSString*)partnerId success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)giftList:(NSString*)userToken params:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)giftCheckAvailability:(NSString*)userToken giftId:(NSString*)giftId success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)giftCheckAvailability:(NSString*)userToken params:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)giftView:(NSString*)userToken giftId:(NSString*)giftID success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)giftView:(NSString*)userToken params:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)page:(NSInteger)page success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)demoSpecials:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)statisticGenerosityDisplay:(NSString*)userToken generosityID:(NSString*)generosityID tagID:(NSString*)tagID success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;
+(void)statisticGiftDisplay:(NSString*)userToken giftID:(NSString*)giftID giftLabel:(NSString*)giftLabel success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)logSave:(NSString*)userToken parameters:(NSDictionary*)params success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)storeList:(NSString*)userToken success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

+(void)callHttp:(NSString*)url success:(void (^)(NSURLSessionDataTask* task, id responseObject))success failure:(void (^)(NSURLSessionDataTask* task, NSError* error))failure;

@end
