//
//  APMServicesUser.h
//  APMServices
//
//  Created by Vincent Ducastel on 06/08/2015.
//  Copyright (c) 2015 Moonmiles. All rights reserved.
//

@class APMUser;

@interface APMServicesUser : NSObject

+(void)userConnect:(NSString*)email password:(NSString*)password segments:(NSDictionary*)segments userConnectSuccess:(void (^)(APMUser* user))userConnectSuccess failure:(void (^)(NSError* error))failure;
+(void)userClientConnect:(NSDictionary*)user userConnectSuccess:(void (^)(APMUser* user))userConnectSuccess failure:(void (^)(NSError* error))failure;
+(void)userClientConnect:(NSString*)firstname lastname:(NSString*)lastname email:(NSString*)email password:(NSString*)password facebookId:(NSString*)facebookId partnerClientId:(NSString*)partnerClientId oldClientId:(NSString*)oldClientId segments:(NSDictionary*)segments userConnectSuccess:(void (^)(APMUser* user))userConnectSuccess failure:(void (^)(NSError* error))failure;
+(void)userLogout:(void (^)())userLogoutSuccess failure:(void (^)(NSError* error))failure;
+(void)userCreate:(NSString*)firstname lastname:(NSString*)lastname email:(NSString*)email password:(NSString*)password facebookId:(NSString*)facebookId segments:(NSDictionary*)segments userCreateSuccess:(void (^)(APMUser* user))userCreateSuccess failure:(void (^)(NSError* error))failure;
+(void)userSave:(NSString*)firstname lastname:(NSString*)lastname mobile:(NSString*)mobile gender:(NSString*)gender birthday:(NSString*)birthday city:(NSString*)city facebookId:(NSString*)facebookId segments:(NSDictionary*)segments userSaveSuccess:(void (^)(APMUser* user))userSaveSuccess failure:(void (^)(NSError* error))failure;
+(void)userClientSave:(NSDictionary*)user userSaveSuccess:(void (^)(APMUser* user))userSaveSuccess failure:(void (^)(NSError* error))failure;
+(void)userClientSave:(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 userSaveSuccess:(void (^)(APMUser* user))userSaveSuccess failure:(void (^)(NSError* error))failure;
+(void)userSavePassword:(NSString*)oldPassword newPassword:(NSString*)newPassword confirmPassword:(NSString*)confirmPassword userSavePasswordSuccess:(void (^)(APMUser* user))userSavePasswordSuccess failure:(void (^)(NSError* error))failure;
+(void)userRefresh:(void (^)(APMUser* user))userRefreshSuccess failure:(void (^)(NSError* error))failure;
+(void)userResetPassword:(NSString*)email userResetPasswordSuccess:(void (^)(NSString* message))userResetPasswordSuccess failure:(void (^)(NSError* error))failure;
+(void)userHistory:(void (^)(APMUser* user, NSMutableArray* earns, NSMutableArray* burns))userHistorySuccess failure:(void (^)(NSError* error))failure;
+(void)userHistoryBurns:(void (^)(NSMutableArray* burns))userHistoryBurnsSuccess failure:(void (^)(NSError* error))failure;
+(void)userHistoryEarns:(void (^)(NSMutableArray* earns))userHistoryEarnsSuccess failure:(void (^)(NSError* error))failure;
+(void)userUnsubscribeWithComment:(NSString*)comment userUnsubscribeSuccess:(void (^)())userUnsubscribeSuccess failure:(void (^)(NSError* error))failure;
+(void)userContact:(NSString*)comment userContactSuccess:(void (^)(NSString* message))userContactSuccess failure:(void (^)(NSError* error))failure;
+(void)userEvaluate:(NSString*)note comment:(NSString*)comment userEvaluateSuccess:(void (^)(NSString* message))userEvaluateSuccess failure:(void (^)(NSError* error))failure;
+(void)userGetSettingsWithUserGetSettingsSuccess:(void (^)(BOOL notifPush, BOOL notifMail, BOOL notifSMS))userGetSettingsSuccess failure:(void (^)(NSError* error))failure;
+(void)userSaveSettings:(BOOL)push mail:(BOOL)mail sms:(BOOL)sms phone:(NSString*)phone userSaveSettingsSuccess:(void (^)())userSaveSettingsSuccess failure:(void (^)(NSError* error))failure;
+(void)userCheckTokenWithUserCheckTokenSuccess:(void (^)(APMUser* user))userCheckTokenSuccess failure:(void (^)(NSError* error))failure;
+(void)userFBConnect:(NSString*)email fbID:(NSString*)fbID partnerClientId:(NSString*)partnerClientId segments:(NSDictionary*)segments userFBConnectSuccess:(void (^)(APMUser* user))userFBConnectSuccess failure:(void (^)(NSError* error))failure;
+(void)userSavePushToken:(NSString*)pushToken userSavePushTokenSuccess:(void (^)())userSavePushTokenSuccess failure:(void (^)(NSError* error))failure;

@end
