//
//  BaseModule.swift
//  react-native-gizwits-sdk-v5
//
//  Created by Kylewang on 2023/10/7.
//

import Foundation
import GizwitsiOSSDK

public class RNGizParamsChecker  {
    public static func check<T: Decodable>(options: NSDictionary, result: @escaping RCTResponseSenderBlock, paramsType: T.Type) -> T? {
        if let jsonData = try? JSONSerialization.data(withJSONObject: options, options: []) {
            
            if let config = try? JSONDecoder().decode(paramsType, from: jsonData) {
                 return config
             } else {
                 // 参数错误
                 GizRNCallbackManager.callbackWithResult(callback: result, result: GizResult<Int?, GizAPIException?>(error: GizAPIException.GIZ_SDK_PARAM_INVALID))
                 return nil
             }
        } else {
            // 解析json失败
            GizRNCallbackManager.callbackWithResult(callback: result, result: GizResult<Int?, GizAPIException?>(error: GizAPIException.GIZ_SDK_PARAM_INVALID))
            return nil
        }
    }
}
