//
//  InMobiUnifiedIdService.m
//  Unity-iPhone
//
//  Created by Anil Bakhla on 09/23/21.
//
//

#import <Foundation/Foundation.h>
#import "InMobiUnifiedIdService.h"
#import "InMobiPlugin.h"

@interface InMobiUnifiedIdService()<IMUnifiedIdDelegate>

@end

@implementation InMobiUnifiedIdService

-(id)initUnifiedService:(InMobiUnifiedIdClientRef*) unifiedIdClient {
    self = [super init];
    _unifiedIdClient = unifiedIdClient;
    
    return self;
}

-(void)fetchUnifiedIds {
     if(self) {
        [IMUnifiedIdService fetchUnifiedIds:self];
     }
}

-(void)push:(IMUserDataModel*) dataModel {
   [IMUnifiedIdService push:dataModel];
}

-(void)reset {
    [IMUnifiedIdService reset];
}

-(void)enableDebugMode:(BOOL)debugMode {
    [IMUnifiedIdService enableDebugMode:debugMode];
}



#pragma IMUnifiedIdDelegate Delegate Implementation

-(void)onFetchCompleted:(NSDictionary *)response error:(NSError *)error {
    NSString *errorDescription = @"";
    if (error != nil) {
        errorDescription = error.localizedDescription;
        NSLog(@"Error onFetchCompleted: %@", error.description);
    }
    
    self.onFetchCompleted(self.unifiedIdClient, [InMobiPlugin JSONfromObject:response].UTF8String, errorDescription.UTF8String);
}

@end