apuesta-cloud-landing-utils
v1.0.6
Published
## install lib: ``` npm i apuesta-cloud-landing-utils ```
Downloads
24
Readme
Apuesta.cloud landing utils
install lib:
npm i apuesta-cloud-landing-utilsUsage
import { initAppAndGetActiveDomain } from "apuesta-cloud-landing-utils";On App start always run async function
initAppAndGetActiveDomain(redirectorOrigin, redirectorCampaignId)redirectorOrigin and redirectorCampaignId mus be provided to you by Apuesta.cloud
In response, you will receive ActiveDomainData:
type ActiveDomainData = {
domain: string;
path: string;
paramsString: string;
}After form fill you will need to fill the RegisterFormData object and call the RegisterPlayer(domain: string, data: RegisterFormData) method.
type RegisterFormData = {
email: string | null; // max_len: 64, standart email
phone: string | null; // in format +1232123123
password: string; // min_len: 5, max_len: 64
currency: string; // len = 3, one of supported currencies for selected region on the destination site
promoCode?: string; // max_len: 64
loginType: LoginType;
region: string; // empty for default
language: string; // one of supported langeages for selected region on the destination site. Ex: 'en', 'de', 'fr'
};In response of RegisterPlayer() you will receive Promise<{ refresh_token: string }>
RegisterPlayer(activeDomainData.domain, requestData)
.then((response) => {
const linkToNavigate = getLinkToNavigate({ activeDomainData: domainData, refreshToken: response.refresh_token });
if (linkToNavigate) {
// optional - if you want to redirect on start on casino
localStorage.setItem('was-registered', 'true');
window.location.href = linkToNavigate;
}
})
.catch(() => {
const linkToNavigate = getLinkToNavigate({ activeDomainData, isError: true });
if (linkToNavigate) {
window.location.href = linkToNavigate;
}
})In order to login user on the destination website - Site will need the refresh_token and other params from activeDomainData. That's why linkToNavigate is get via helper function getLinkToNavigate()
Full React example
import { useEffect, useState } from 'react';
import {
type ActiveDomainData,
getLinkToNavigate,
initAppAndGetActiveDomain,
LoginType,
RegisterPlayer,
} from 'apuesta-cloud-landing-utils';
function App() {
const [isLoading, setIsLoading] = useState(false);
const [domainData, setDomainData] = useState<ActiveDomainData | null>(null);
const [error, setError] = useState('');
useEffect(() => {
setIsLoading(true)
initAppAndGetActiveDomain('https://redirector.origin', 'campaignId')
.then((response) => {
setDomainData(response);
setIsLoading(false);
})
.catch((e) => {
setError(e.message);
})
.finally(() => setIsLoading(false));
}, []);
const handleRegisterClick = async () => {
if (!domainData) {
alert('No domain data found.');
return;
}
const response = await RegisterPlayer(domainData?.domain, {
email: '[email protected]',
phone: null,
currency: 'EUR',
language: 'en',
password: 'qwerty123',
loginType: LoginType.Email,
region: '',
});
const linkToNavigate = getLinkToNavigate({ activeDomainData: domainData, refreshToken: response.refresh_token });
if (linkToNavigate) {
window.location.href = linkToNavigate;
}
};
if (isLoading) {
return <h1>Loading</h1>
}
if (error) {
return <h1 style={{color:'red'}}>{error}</h1>
}
return (
<>
<h1> Apuesta.cloud registration test </h1>
<h2> Here should be form </h2>
<div className="card">
<button type={'button'} onClick={handleRegisterClick}>
Register
</button>
</div>
<p className="read-the-docs">
Click Register button and receive refresh_token
</p>
</>
)
}
export default App
