public function createMember($rest) { $post = $rest->getRequest()->getPost(); MM_LogApi::logRequest(json_encode($post), "/createMember"); if (!Utils::isAuthenticated($post)) { return new Response($rest, null, RESPONSE_ERROR_MESSAGE_AUTH, RESPONSE_ERROR_CODE_AUTH, RESPONSE_ERROR_MESSAGE_AUTH); } $req = new stdClass(); $req->membership_level_id = self::$REGEX_INTEGER_ONLY; $req->email = self::$REGEX_CONTAINS_EMAIL; $data = Utils::processApiRequestData($post, $req); if (MM_Response::isError($data)) { return new Response($rest, null, $data->message, RESPONSE_ERROR_CODE_MISSING_PARAMS, RESPONSE_ERROR_MESSAGE_MISSING_PARAMS); } $result = MM_APIService::createMember($data); if (MM_Response::isSuccess($result)) { $user = MM_User::findByEmail($data->email); if (!$user->isValid()) { return new Response($rest, null, "Failed to create user with email address {$data->email}", RESPONSE_ERROR_CODE_CONFLICT, RESPONSE_ERROR_MESSAGE_CONFLICT); } $userData = array('member_id' => $user->getId(), 'username' => $user->getUsername(), 'email' => $user->getEmail(), 'password' => $user->getPassword(), 'confirmationUrl' => $result->getData(MM_Response::$DATA_KEY_URL)); return new Response($rest, $userData, $userData); } else { return new Response($rest, null, $result->message, RESPONSE_ERROR_CODE_CONFLICT, RESPONSE_ERROR_MESSAGE_CONFLICT); } }