From dbab970806c2b30a47476c8b980f92fadfa062e0 Mon Sep 17 00:00:00 2001 From: Kakabay <2kakabayashyrberdyew@gmail.com> Date: Fri, 5 Apr 2024 13:46:03 +0500 Subject: [PATCH] added new fields to quick_loans --- .../ImmediateCreditsStages/BorrowerInfo.js | 31 ++- .../ImmediateCreditsStages/PhoneAccept.js | 239 ++++++++---------- .../immediateCredits/ImmediateCreditModal.js | 15 +- src/pages/ImmediateCredit.js | 2 - 4 files changed, 154 insertions(+), 133 deletions(-) diff --git a/src/components/ImmediateCreditsStages/BorrowerInfo.js b/src/components/ImmediateCreditsStages/BorrowerInfo.js index abfbedb..d76c42e 100644 --- a/src/components/ImmediateCreditsStages/BorrowerInfo.js +++ b/src/components/ImmediateCreditsStages/BorrowerInfo.js @@ -27,7 +27,15 @@ import { UserContext } from '../../backend/UserContext'; // // clientType: z.string(), // }); -const BorrowerInfo = ({ setStage, isGuranter, borrowerData }) => { +const BorrowerInfo = ({ + setStage, + isGuranter, + borrowerData, + setRecipientWorkPlace, + setRecipientWorkPosition, + recipientWorkPlace, + recipientWorkPosition, +}) => { const { locale } = useContext(LanguageContext); const { user } = useContext(UserContext); @@ -50,6 +58,13 @@ const BorrowerInfo = ({ setStage, isGuranter, borrowerData }) => { }, }); + const handleWorkPlace = (e) => { + setRecipientWorkPlace(e.target.value); + }; + const handleWorkPosition = (e) => { + setRecipientWorkPosition(e.target.value); + }; + const onSubmit = (data) => { // console.log(data); }; @@ -209,7 +224,12 @@ const BorrowerInfo = ({ setStage, isGuranter, borrowerData }) => { ? 'Sign up' : 'Hasaba almak'} - +
- +
diff --git a/src/components/ImmediateCreditsStages/PhoneAccept.js b/src/components/ImmediateCreditsStages/PhoneAccept.js index edd85af..7936eb0 100644 --- a/src/components/ImmediateCreditsStages/PhoneAccept.js +++ b/src/components/ImmediateCreditsStages/PhoneAccept.js @@ -1,13 +1,13 @@ // IMPORT MODULES -import React, { useState, useContext } from "react"; -import { LanguageContext } from "../../backend/LanguageContext"; -import { useForm } from "react-hook-form"; -import { z } from "zod"; -import { zodResolver } from "@hookform/resolvers/zod"; +import React, { useState, useContext } from 'react'; +import { LanguageContext } from '../../backend/LanguageContext'; +import { useForm } from 'react-hook-form'; +import { z } from 'zod'; +import { zodResolver } from '@hookform/resolvers/zod'; // IMPORT IMAGES -import next from "../../icons/next.svg"; -import next_reverse from "../../icons/next-reverse.svg"; -import { UserContext } from "../../backend/UserContext"; +import next from '../../icons/next.svg'; +import next_reverse from '../../icons/next-reverse.svg'; +import { UserContext } from '../../backend/UserContext'; // import arrow from "../../icons/arrow.svg"; const schema = z.object({ @@ -27,10 +27,12 @@ const PhoneAccept = ({ cardDetails, creditDuration, setAcceptedMessage, + recipientWorkPlace, + recipientWorkPosition, }) => { const { locale } = useContext(LanguageContext); const { user } = useContext(UserContext); - const userToken = localStorage.getItem("userToken"); + const userToken = localStorage.getItem('userToken'); const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(false); @@ -38,7 +40,7 @@ const PhoneAccept = ({ const [invalidData, setInvalidData] = useState(false); const [tryAgain, setTryAgain] = useState(false); - const [codeValue, setPhoneValue] = useState(""); + const [codeValue, setPhoneValue] = useState(''); const [errMesage, setErrMessage] = useState(); @@ -50,29 +52,28 @@ const PhoneAccept = ({ resolver: zodResolver(schema), }); + // ///////////////////Card registration + const confirmPayment = async () => { try { const headers = { - "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8", + 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', }; const formData = new URLSearchParams(); - formData.append("app", "sanlykarz"); - formData.append("id", borrowerData.idNo); - formData.append("md-order", paymentDetails["md-order"]); - formData.append("acs-req-id", submitCardDetails["acs-request-id"]); - formData.append("acs-session-url", submitCardDetails["acs-session-url"]); - formData.append("otp", codeValue); - formData.append("term-url", submitCardDetails["terminate-url"]); + formData.append('app', 'sanlykarz'); + formData.append('id', borrowerData.idNo); + formData.append('md-order', paymentDetails['md-order']); + formData.append('acs-req-id', submitCardDetails['acs-request-id']); + formData.append('acs-session-url', submitCardDetails['acs-session-url']); + formData.append('otp', codeValue); + formData.append('term-url', submitCardDetails['terminate-url']); - const response = await fetch( - "https://shahsyotag.halkbank.gov.tm/api/v1/confirm-payment", - { - method: "POST", - headers: headers, - body: formData.toString(), - } - ); + const response = await fetch('https://shahsyotag.halkbank.gov.tm/api/v1/confirm-payment', { + method: 'POST', + headers: headers, + body: formData.toString(), + }); const jsonedResponse = await response.json(); @@ -80,16 +81,13 @@ const PhoneAccept = ({ throw new Error(`HTTP error! Status: ${response.status}`); } - if ( - jsonedResponse.status === "ok" && - jsonedResponse["final-url"].includes("status=1") - ) { - console.log(jsonedResponse["final-url"]); + if (jsonedResponse.status === 'ok' && jsonedResponse['final-url'].includes('status=1')) { + console.log(jsonedResponse['final-url']); setInvalidData(false); checkPayment(); } else if ( - jsonedResponse.status === "wrong-otp" || - !jsonedResponse["final-url"].includes("status=1") + jsonedResponse.status === 'wrong-otp' || + !jsonedResponse['final-url'].includes('status=1') ) { setTryAgain(true); } else { @@ -101,7 +99,7 @@ const PhoneAccept = ({ const checkPayment = async () => { try { const response = await fetch( - `https://shahsyotag.halkbank.gov.tm/app/api/check-payment-credit-card?paymentId=${paymentLink.id}&orderId=${paymentDetails["md-order"]}&status=1` + `https://shahsyotag.halkbank.gov.tm/app/api/check-payment-credit-card?paymentId=${paymentLink.id}&orderId=${paymentDetails['md-order']}&status=1`, ); if (!response.ok) { @@ -110,8 +108,8 @@ const PhoneAccept = ({ const jsonedResponse = await response.json(); - if (jsonedResponse.status.ErrorCode === "0") { - console.log("success"); + if (jsonedResponse.status.ErrorCode === '0') { + console.log('success'); sendCode(); } @@ -121,19 +119,16 @@ const PhoneAccept = ({ }; const sendCode = async () => { - console.log("startred"); + console.log('startred'); try { - const response = await fetch( - "https://shahsyotag.halkbank.gov.tm/sendOTP", - { - method: "POST", - headers: { "Content-Type": "aplication/json" }, - body: JSON.stringify({ - phone_number: user.mobile_phone, - }), - } - ); + const response = await fetch('https://shahsyotag.halkbank.gov.tm/sendOTP', { + method: 'POST', + headers: { 'Content-Type': 'aplication/json' }, + body: JSON.stringify({ + phone_number: user.mobile_phone, + }), + }); if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); @@ -145,25 +140,24 @@ const PhoneAccept = ({ } }; + // ///////////////////Loan creating + const confirmCode = async () => { try { setIsLoading(true); - const response = await fetch( - "https://shahsyotag.halkbank.gov.tm/validateOTP", - { - headers: { "Content-Type": "aplication/json" }, - method: "POST", + const response = await fetch('https://shahsyotag.halkbank.gov.tm/validateOTP', { + headers: { 'Content-Type': 'aplication/json' }, + method: 'POST', - body: JSON.stringify({ - phone_number: user.mobile_phone, - otp: codeValue, - }), - } - ); + body: JSON.stringify({ + phone_number: user.mobile_phone, + otp: codeValue, + }), + }); const jsonedResponse = await response.json(); - if (jsonedResponse === "OTP validated successfully") { + if (jsonedResponse === 'OTP validated successfully') { fetchData(); } else { setErrMessage(true); @@ -176,9 +170,9 @@ const PhoneAccept = ({ const response = await fetch( `https://shahsyotag.halkbank.gov.tm/onlineloancre-services/api/loancre`, { - method: "POST", + method: 'POST', headers: { - "Content-Type": "application/json", + 'Content-Type': 'application/json', }, body: JSON.stringify({ clientRecipient: { @@ -188,7 +182,7 @@ const PhoneAccept = ({ name: borrowerData.name, surname: borrowerData.surname, availableAmount: borrowerData.availableAmount, - clientType: "recipient", + clientType: 'recipient', signRecipient: borrowerData.signRecipient, }, clientGuarantor: isGuranter @@ -199,7 +193,7 @@ const PhoneAccept = ({ name: guaranterData.name, surname: guaranterData.surname, availableAmount: guaranterData.availableAmount, - clientType: "guarantor", + clientType: 'guarantor', signGuarantor: guaranterData.signGuarantor, } : null, @@ -208,7 +202,7 @@ const PhoneAccept = ({ mrtIsInsuarance: isGuranter ? 0 : 1, termInYears: creditDuration, }), - } + }, ); if (!response.ok) { @@ -233,18 +227,22 @@ const PhoneAccept = ({ const sendData = async (requestBody) => { try { const headers = { - Accept: "application/json", - "Content-Type": "application/json", + Accept: 'application/json', + 'Content-Type': 'application/json', Authorization: `Bearer ${userToken}`, }; - const response = await fetch( - "https://shahsyotag.halkbank.gov.tm/app/api/quick_loans", - { - method: "POST", - headers: headers, - body: JSON.stringify(requestBody.sign), - } - ); + const response = await fetch('https://shahsyotag.halkbank.gov.tm/app/api/quick_loans', { + method: 'POST', + headers: headers, + body: JSON.stringify({ + sign: requestBody.sign, + where_works: recipientWorkPlace, + position: recipientWorkPosition, + mobile_phone: user.mobile_phone, + name: borrowerData.name, + surname: borrowerData.surname, + }), + }); const jsonedResponse = await response.json(); if (!cardDetails) { @@ -280,23 +278,19 @@ const PhoneAccept = ({ return (

Error...

- @@ -308,34 +302,27 @@ const PhoneAccept = ({

- {locale === "TKM" - ? "Karzyň kalkulýatory" - : locale === "РУС" - ? "Введите код с СМС оповещения, отправленный на номер " - : locale === "ENG" - ? "Loan calculator" - : "Karzyň kalkulýatory"} - {cardDetails - ? user.mobile_phone - : submitCardDetails["three-d-secure-number"]} + {locale === 'TKM' + ? 'Karzyň kalkulýatory' + : locale === 'РУС' + ? 'Введите код с СМС оповещения, отправленный на номер ' + : locale === 'ENG' + ? 'Loan calculator' + : 'Karzyň kalkulýatory'} + {cardDetails ? user.mobile_phone : submitCardDetails['three-d-secure-number']}

- + {/* Отправить код снова */} @@ -356,20 +343,19 @@ const PhoneAccept = ({ @@ -385,17 +371,16 @@ const PhoneAccept = ({ } type="submit" onClick={onSubmit} - className="sign-btn cu-btn" - > + className="sign-btn cu-btn">

- {locale === "TKM" - ? "Dowam et" - : locale === "РУС" - ? "Подтвердить " - : locale === "ENG" - ? "Proceed" - : "Dowam et"} + {locale === 'TKM' + ? 'Dowam et' + : locale === 'РУС' + ? 'Подтвердить ' + : locale === 'ENG' + ? 'Proceed' + : 'Dowam et'}

logout diff --git a/src/components/immediateCredits/ImmediateCreditModal.js b/src/components/immediateCredits/ImmediateCreditModal.js index 1e8caf8..fa28a8b 100644 --- a/src/components/immediateCredits/ImmediateCreditModal.js +++ b/src/components/immediateCredits/ImmediateCreditModal.js @@ -29,6 +29,7 @@ import CardRegistration from '../ImmediateCreditsStages/CardRegistration'; import PaymentDetails from '../ImmediateCreditsStages/PaymentDetails'; import PaymentSuccess from '../ImmediateCreditsStages/PaymentSuccess'; import FinalStage from '../ImmediateCreditsStages/FinalStage'; +import { UserContext } from '../../backend/UserContext'; const ImmediateCreditModal = ({ modalOpen, @@ -41,6 +42,8 @@ const ImmediateCreditModal = ({ setProgress, }) => { const { locale } = useContext(LanguageContext); + const { user } = useContext(UserContext); + const window = useRef(); const [isGuranter, setIsGuranter] = useState(false); @@ -67,7 +70,11 @@ const ImmediateCreditModal = ({ const [paymentDetails, setPaymentDetails] = useState(); const [submitCardDetails, setSumbitCardDetails] = useState(); - console.log(stage); + const [recipientWorkPlace, setRecipientWorkPlace] = useState(''); + const [recipientWorkPosition, setRecipientWorkPosition] = useState(''); + + console.log('WorkPlace', recipientWorkPlace); + console.log('WorkPosition', recipientWorkPosition); return (
@@ -295,6 +302,10 @@ const ImmediateCreditModal = ({ setStage={setStage} isGuranter={isGuranter} borrowerData={borrowerData} + setRecipientWorkPlace={setRecipientWorkPlace} + setRecipientWorkPosition={setRecipientWorkPosition} + recipientWorkPlace={recipientWorkPlace} + recipientWorkPosition={recipientWorkPosition} /> ) : stage === 3 ? ( @@ -353,6 +364,8 @@ const ImmediateCreditModal = ({ recepientAmount={recepientAmount} creditDuration={creditDuration} setAcceptedMessage={setAcceptedMessage} + recipientWorkPlace={recipientWorkPlace} + recipientWorkPosition={recipientWorkPosition} /> ) : stage === 10 ? ( diff --git a/src/pages/ImmediateCredit.js b/src/pages/ImmediateCredit.js index 883b3cf..f8e5dc3 100644 --- a/src/pages/ImmediateCredit.js +++ b/src/pages/ImmediateCredit.js @@ -120,8 +120,6 @@ const ImmediateCredit = () => { } catch (error) {} }; - console.log(user); - useEffect(() => { fetchData(); fetchCardData();