internal void UserGetProfile <T>(Action <T> successResponse = null, Action <string, string> errorResponse = null) where T : ResponseData
 {
     payloadKeyValuePairs.Clear();
     payloadKeyValuePairs.Add(GameConstants.USER_ID, GameVariables.userId);
     payloadKeyValuePairs.Add(GameConstants.ACCESS_TOKEN, GameVariables.AccessToken);
     _ = StartCoroutine(RESTApiService.UnityWebRequestInPostMethod(GameVariables.GetRestApiUrl(GameVariables.RESTApiType.getProfile),
                                                                   payloadKeyValuePairs, successResponse, errorResponse));
 }
 internal void UserVerify <T>(string mobNumber, string otp, Action <T> successResponse = null, Action <string, string> errorResponse = null) where T : ResponseData
 {
     payloadKeyValuePairs.Clear();
     payloadKeyValuePairs.Add(GameConstants.MOB_NO, mobNumber);
     payloadKeyValuePairs.Add(GameConstants.OTP, otp);
     _ = StartCoroutine(RESTApiService.UnityWebRequestInPostMethod(GameVariables.GetRestApiUrl(GameVariables.RESTApiType.userVerify),
                                                                   payloadKeyValuePairs, successResponse, errorResponse));
 }
 internal void ResendOtp <T>(string mobNumber, string deviceId, Action <T> successResponse = null, Action <string, string> errorResponse = null) where T : ResponseData
 {
     payloadKeyValuePairs.Clear();
     payloadKeyValuePairs.Add(GameConstants.MOB_NO, mobNumber);
     payloadKeyValuePairs.Add(GameConstants.DEVICE_ID, deviceId);
     _ = StartCoroutine(RESTApiService.UnityWebRequestInPostMethod(GameVariables.GetRestApiUrl(GameVariables.RESTApiType.resendOtp),
                                                                   payloadKeyValuePairs, successResponse, errorResponse));
 }
 internal void RoomList <T>(Action <T> successResponse = null, Action <string, string> errorResponse = null) where T : ResponseData
 {
     payloadKeyValuePairs.Clear();
     payloadKeyValuePairs.Add(GameConstants.USER_ID, GameVariables.userId);
     payloadKeyValuePairs.Add(GameConstants.ACCESS_TOKEN, GameVariables.AccessToken);
     payloadKeyValuePairs.Add(GameConstants.IS_PRACTICE, ((short)GameVariables.currentUserMode).ToString());
     _ = StartCoroutine(RESTApiService.UnityWebRequestInPostMethod(GameVariables.GetRestApiUrl(GameVariables.RESTApiType.roomList),
                                                                   payloadKeyValuePairs, successResponse, errorResponse, false));
 }
 internal void UserUpdateProfile <T>(string email, string userName, string firstName, string lastName, Action <T> successResponse = null, Action <string, string> errorResponse = null) where T : ResponseData
 {
     payloadKeyValuePairs.Clear();
     payloadKeyValuePairs.Add(GameConstants.USER_ID, GameVariables.userId);
     payloadKeyValuePairs.Add(GameConstants.ACCESS_TOKEN, GameVariables.AccessToken);
     payloadKeyValuePairs.Add(GameConstants.EMAIL, email);
     payloadKeyValuePairs.Add(GameConstants.USER_NAME, userName);
     payloadKeyValuePairs.Add(GameConstants.FIRST_NAME, firstName);
     payloadKeyValuePairs.Add(GameConstants.LAST_NAME, lastName);
     _ = StartCoroutine(RESTApiService.UnityWebRequestInPostMethod(GameVariables.GetRestApiUrl(GameVariables.RESTApiType.updateProfile),
                                                                   payloadKeyValuePairs, successResponse, errorResponse));
 }
 internal void RoomJoin <T>(string gameMode, string maxPlayers, string roomCode, string entryFee, Action <T> successResponse = null, Action <string, string> errorResponse = null) where T : ResponseData
 {
     payloadKeyValuePairs.Clear();
     payloadKeyValuePairs.Add(GameConstants.USER_ID, GameVariables.userId);
     payloadKeyValuePairs.Add(GameConstants.ACCESS_TOKEN, GameVariables.AccessToken);
     payloadKeyValuePairs.Add(GameConstants.IS_PRACTICE, ((short)GameVariables.currentUserMode).ToString());
     payloadKeyValuePairs.Add(GameConstants.GAME_MODE, gameMode);
     payloadKeyValuePairs.Add(GameConstants.MAX_PLAYERS, maxPlayers);
     payloadKeyValuePairs.Add(GameConstants.ROOM_CODE, roomCode);
     payloadKeyValuePairs.Add(GameConstants.ENTRY_FEE, entryFee);
     _ = StartCoroutine(RESTApiService.UnityWebRequestInPostMethod(GameVariables.GetRestApiUrl(GameVariables.RESTApiType.roomJoin),
                                                                   payloadKeyValuePairs, successResponse, errorResponse));
 }