示例#1
0
			errorLogger.saveDiagnosticReducer( () => ( { tests: getSavedVariations() } ) );
		} );
	},

	addPlanToCart( callback, { siteSlug }, { cartItem } ) {
		if ( isEmpty( cartItem ) ) {
			// the user selected the free plan
			return defer( callback );
		}

		SignupCart.addToCart( siteSlug, cartItem, callback );
	},

	createAccount( callback, dependencies, { userData, flowName, queryArgs } ) {
		return wpcom.undocumented().usersNew( assign(
			{}, userData, {
				ab_test_variations: getSavedVariations(),
				validate: false,
				signup_flow_name: flowName,
				nux_q_site_type: dependencies.surveySiteType,
				nux_q_question_primary: dependencies.surveyQuestion,
				jetpack_redirect: queryArgs.jetpackRedirect
			}
		), ( error, response ) => {
			var errors = error && error.error ? [ { error: error.error, message: error.message } ] : undefined,
				bearerToken = error && error.error ? {} : { bearer_token: response.bearer_token };

			callback( errors, assign( {}, { username: userData.username }, bearerToken ) );
		} );
	},

	createSite( callback, { theme }, { site } ) {
示例#3
0
export function createAccount(
	callback,
	dependencies,
	{ userData, flowName, queryArgs, service, access_token, id_token, oauth2Signup },
	reduxStore
) {
	const surveyVertical = getSurveyVertical( reduxStore.getState() ).trim();
	const surveySiteType = getSurveySiteType( reduxStore.getState() ).trim();
	const userExperience = getUserExperience( reduxStore.getState() );

	if ( service ) {
		// We're creating a new social account
		wpcom.undocumented().usersSocialNew(
			{
				service,
				access_token,
				id_token,
				signup_flow_name: flowName,
			},
			( error, response ) => {
				const errors =
					error && error.error
						? [ { error: error.error, message: error.message, email: get( error, 'data.email' ) } ]
						: undefined;

				if ( errors ) {
					callback( errors );
				} else {
					analytics.tracks.recordEvent( 'calypso_user_registration_social_complete' );
					callback( undefined, pick( response, [ 'username', 'bearer_token' ] ) );
				}
			}
		);
	} else {
		wpcom.undocumented().usersNew(
			assign(
				{},
				userData,
				{
					ab_test_variations: getSavedVariations(),
					validate: false,
					signup_flow_name: flowName,
					nux_q_site_type: surveySiteType,
					nux_q_question_primary: surveyVertical,
					nux_q_question_experience: userExperience || undefined,
					// url sent in the confirmation email
					jetpack_redirect: queryArgs.jetpack_redirect,
				},
				oauth2Signup
					? {
							oauth2_client_id: queryArgs.oauth2_client_id,
							// url of the WordPress.com authorize page for this OAuth2 client
							// convert to legacy oauth2_redirect format: %s@https://public-api.wordpress.com/oauth2/authorize/...
							oauth2_redirect: queryArgs.oauth2_redirect && '0@' + queryArgs.oauth2_redirect,
						}
					: null
			),
			( error, response ) => {
				const errors =
						error && error.error ? [ { error: error.error, message: error.message } ] : undefined,
					bearerToken = error && error.error ? {} : { bearer_token: response.bearer_token };

				if ( ! errors ) {
					// Fire after a new user registers.
					analytics.tracks.recordEvent( 'calypso_user_registration_complete' );
					analytics.ga.recordEvent( 'Signup', 'calypso_user_registration_complete' );
				}

				const providedDependencies = assign( {}, { username: userData.username }, bearerToken );

				if ( oauth2Signup ) {
					assign( providedDependencies, {
						oauth2_client_id: queryArgs.oauth2_client_id,
						oauth2_redirect: queryArgs.oauth2_redirect,
					} );
				}

				callback( errors, providedDependencies );
			}
		);
	}
}