diff --git a/src/Socialbox/Classes/StandardMethods/SettingsSetPhoneNumber.php b/src/Socialbox/Classes/StandardMethods/SettingsSetPhoneNumber.php new file mode 100644 index 0000000..eaa9a4d --- /dev/null +++ b/src/Socialbox/Classes/StandardMethods/SettingsSetPhoneNumber.php @@ -0,0 +1,49 @@ +containsParameter('phone_number')) + { + return $rpcRequest->produceError(StandardError::RPC_INVALID_ARGUMENTS, "Missing 'phone_number' parameter"); + } + + if(!Validator::validatePhoneNumber($rpcRequest->getParameter('phone_number'))) + { + return $rpcRequest->produceError(StandardError::RPC_INVALID_ARGUMENTS, "Invalid 'phone_number' parameter, must be a valid phone number"); + } + + try + { + // Set the phone number + RegisteredPeerManager::updatePhoneNumber($request->getPeer(), $rpcRequest->getParameter('phone_number')); + + // Check & update the session flow + SessionManager::updateFlow($request->getSession(), [SessionFlags::SET_PHONE]); + } + catch(Exception $e) + { + throw new StandardException('Failed to set phone number due to an internal exception', StandardError::INTERNAL_SERVER_ERROR, $e); + } + + return $rpcRequest->produceResponse(true); + } + } \ No newline at end of file