if (!('eRegistratorLib' in window)) {window['eRegistratorLib'] = {};}
window.eRegistratorLib.scrPassportVerify = {
messages: {
wndSuccess: `
Результат проверки: #result#
`,
wndFail: ``,
error: `
Внимание! Ошибки:
#error#`,
},
key: '1',
url: 'https://www.srv4you.ru/api/v1/passport_verify/ajax/ajax.php',
verify: function(t) {
window.eRegistratorLib.scrPassportVerify.getCookieCaptcha({
DOC_SERIE: ((document.getElementById(t.dataset.serie)) ? document.getElementById(t.dataset.serie).value : '').replace(/[^0-9]/gim, ''),
DOC_NUMBER: ((document.getElementById(t.dataset.number)) ? document.getElementById(t.dataset.number).value : '').replace(/[^0-9]/gim, ''),
});
},
getCookieCaptcha: function (data, callbackSuccess, callbackError){
let that = window.eRegistratorLib.scrPassportVerify;
let formData = new FormData();
formData.append('action', 'getCookiCaptcha');
that.go(formData, (result) => {
if (
('code' in result)
&& (result.code == '200')
){
if ('error' in result) {
showWrapWin.show({content: result.error}, 'small');
}
showWrapWin.show({content: that.messages.wndFail
.replace(/#cookie#/gim, result.cookie)
.replace(/#captchaImg#/gim, result.capchaImg)
.replace(/#DOC_SERIE#/gim, data.DOC_SERIE)
.replace(/#DOC_NUMBER#/gim, data.DOC_NUMBER)
}, 'small');
let sendForm = document.getElementById('sendPassportVerify');
if ('error' in data) {
let divResult = sendForm.querySelector('div[data-id="result"]');
if (divResult) {
divResult.style.display = 'block';
divResult.innerHTML = data.error;
}
}
let captchaInput = sendForm.querySelector('input[name="captcha-input"]');
if (captchaInput) {
captchaInput.focus();
}
if (callbackSuccess) {
callbackSuccess(result);
}
} else {
if (callbackError) {
callbackError(result);
}
}
},
(error) => {
if (
(error)
&& ('ERRORS' in error)
&& ('length' in error.ERRORS)
&& (error.ERRORS.length > 0)
) {
showWrapWin.show({
content: that.messages.error,
error: '
' + error.ERRORS.join('
') + '
',
}, 'middle');
}
});
},
getResult: function (t){
let that = window.eRegistratorLib.scrPassportVerify;
let sendForm = document.getElementById('sendPassportVerify');
if (!sendForm) return false;
let divResult = sendForm.querySelector('div[data-id="result"]');
if (divResult) {
divResult.style.display = 'none';
}
let formData = new FormData(sendForm);
formData.append('action', 'getResult');
let error = [];
if (!formData.get('cookie')) error.push('Сервис проверки в настоящее время неработоспособен. Повторите проверку позднее');
if (
(!formData.get('captcha-input'))
||(formData.get('captcha-input').length != 6)
) {
error.push('Цифры с картинки. Не указаны');
}
if (
(!formData.get('DOC_SERIE'))
||(formData.get('DOC_SERIE').length != 4)
) {
error.push('Серия паспорта. Не указана');
}
if (
(!formData.get('DOC_NUMBER'))
||(formData.get('DOC_NUMBER').length != 6)
) {
error.push('Номер паспорта. Не указан');
}
if (error.length > 0) {
showWrapWin.show({
content: that.messages.error,
error: '
' + error.join('
') + '
',
}, 'small');
} else {
that.go(formData, (result) => {
showWrapWin.closeWindow(t);
if (
('code' in result)
&& (result.code == '200')
&& ('result' in result)
){
if (
('code' in result.result)
&&('res' in result.result)
) {
showWrapWin.closeWindow(t);
if (result.result.code == 500) {
window.eRegistratorLib.scrPassportVerify.getCookieCaptcha({
DOC_SERIE: formData.get('DOC_SERIE'),
DOC_NUMBER: formData.get('DOC_NUMBER'),
'error': result.result.res,
});
}
if (result.result.code == 200) {
showWrapWin.closeWindow(t);
showWrapWin.show({content: that.messages.wndSuccess
.replace(/#result#/gim, result.result.res)
}, 'small');
}
}
}
},
(error) => {
if (
(error)
&& ('ERRORS' in error)
&& ('length' in error.ERRORS)
&& (error.ERRORS.length > 0)
) {
showWrapWin.show({
content: that.messages.error,
error: '
' + error.ERRORS.join('
') + '
',
}, 'middle');
}
}
);
}
},
go: async function(formData, callback, callbackError, urlMy){
let url = this.url;
if (urlMy) url = urlMy;
formData.append('key', this.key);
try {
const res = await fetch(url,
{
method: 'POST',
body: formData,
cache: 'no-cache',
}
);
const contentType = res.headers.get('content-type');
if (!contentType || !contentType.includes('application/json')) {
throw new TypeError("Ошибка JSON!");
}
if (!res.ok) {
throw new TypeError("Запрос завершился с ошибкой!");
}
let data = await res.json();
if ((callback) && (typeof callback == 'function')){
callback(data);
}
} catch (error) {
console.log('Ошибка:' + error);
if ((callbackError) && (typeof callbackError == 'function')){
callbackError({
"ERRORS": [error],
"STATUS": 400
});
}
}
},
};