package com.moonmiles.bridge.apm.service.partner;

import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactMethod;
import com.moonmiles.apmservices.model.APMPartners;
import com.moonmiles.apmservices.net.APMException;
import com.moonmiles.apmservices.sdk.partner.APMPartnerListListener;
import com.moonmiles.apmservices.sdk.partner.APMServicesPartner;
import com.moonmiles.bridge.apm.APMConstants;
import com.moonmiles.bridge.apm.abs.APMReactContextBaseJavaModule;
import com.moonmiles.bridge.apm.utils.APMBridgeUtils;

import java.util.HashMap;
import java.util.Map;

public class APMServicesPartnerModule extends APMReactContextBaseJavaModule
{

    public APMServicesPartnerModule(ReactApplicationContext reactContext)
    {
        super(reactContext);
    }

    @ReactMethod
    public static void partnerList(String categoryId, final Promise promise)
    {
        try
        {
            APMServicesPartner.partnerList(categoryId, new APMPartnerListListener()
            {
                @Override
                public void partnerListSuccess(APMPartners partners)
                {
                    APMBridgeUtils.resolvePromise(partners, promise);
                }

                @Override
                public void failure(APMException e)
                {
                    APMBridgeUtils.rejectPromise(e, promise);
                }
            });
        }
        catch(Exception e)
        {
            e.printStackTrace();
            APMBridgeUtils.rejectPromise(e, promise);
        }
    }

    @Override
    public String getName() { return "APMServicesPartnerModule"; }

    @Override
    public Map<String, Object> getConstants()
    {
        final Map<String, Object> constants = new HashMap<>();
        return constants;
    }
}
