diff --git a/src/page/TarikDana/TarikDana.js b/src/page/TarikDana/TarikDana.js index 47c71281d0bd066b88248691ab3c263d8b439d27..2348af8e17976d5863b79de77e6582c06001126a 100644 --- a/src/page/TarikDana/TarikDana.js +++ b/src/page/TarikDana/TarikDana.js @@ -125,6 +125,7 @@ const TarikDana = ({ isAuthenticated, user, stepNumber = 0 }) => { formData={formData} setFormData={setFormData} navigation={navigation} + menuKeuangan={menuKeuangan} />; case "pilih metode": diff --git a/src/page/TarikDana/TarikDanaRingkasan.js b/src/page/TarikDana/TarikDanaRingkasan.js index c695ece8f9f37d1de521c28f484846c7082154a4..99233e96b2161764d8a5989a4873f61bdd160c7a 100644 --- a/src/page/TarikDana/TarikDanaRingkasan.js +++ b/src/page/TarikDana/TarikDanaRingkasan.js @@ -1,8 +1,11 @@ import './TarikDana.css' import WalkiddieOnboarding from '../../components/OnBoarding/WalkiddieOnboarding'; import TarikDanaStep3 from './tarik-dana-step-3.svg'; +import axios from 'axios'; +import { Redirect } from "react-router-dom" +import { useState } from 'react'; -const TarikDanaRingkasan = ({ setState, formData, navigation }) => { +const TarikDanaRingkasan = ({ formData, navigation, menuKeuangan }) => { const onBoardingSteps = [ { content: <h5>Petunjuk tarik dana - Ringkasan Tarik Dana</h5>, @@ -34,6 +37,62 @@ const TarikDanaRingkasan = ({ setState, formData, navigation }) => { ]; const { previous } = navigation; + const [posted, setPosted] = useState(false); + + const handleErrorAfterPost = (error) => { + console.log(error); + alert("Terdapat kesalahan. Mohon refresh ulang halaman ini") + } + + const postTarikDana = async () => { + if (localStorage.getItem('access')) { + var dataToSend; + + const config = { + headers: { + 'Content-Type': 'application/json', + 'Authorization': `JWT ${localStorage.getItem('access')}`, + } + }; + + if (formData.metode === "gopay") { + dataToSend = { + "nominal": formData.nominal, + "noHp": formData.noHp + } + await axios.post(`${process.env.REACT_APP_BACKEND_API_URL}/api/tarik-dana/gopay`, dataToSend, config) + .then((response) => { + console.log(response); + alert('Berhasil melakukan permintaan tarik dana dengan metode gopay'); + setPosted(true); + }, (error) => { + handleErrorAfterPost(error); + }); + } else { + dataToSend = { + "nominal": formData.nominal, + "namaBank": formData.namaBank.value, + "namaPemilik": formData.namaPemilikRekening, + "nomorRekening": formData.noRekening + } + await axios.post(`${process.env.REACT_APP_BACKEND_API_URL}/api/tarik-dana/bank`, dataToSend, config) + .then((response) => { + console.log(response); + alert('Berhasil melakukan permintaan tarik dana dengan metode bank'); + setPosted(true); + }, (error) => { + handleErrorAfterPost(error); + }); + } + + } else { + console.log('missing token'); + alert('Terdapat kesalahan pada autentikasi akun anda. Anda dapat melakukan refresh pada halaman ini') + } + } + if (posted === true) { + return <Redirect to={menuKeuangan} /> + } return ( <div className="wkd-tarik-dana"> @@ -111,7 +170,7 @@ const TarikDanaRingkasan = ({ setState, formData, navigation }) => { <button data-testid="back-button" className="wkd-button wkd-blue-border-button wkd-tarik-dana-kembali" onClick={previous}> Kembali </button> - <button id="confirmation-button" data-testid="confirm-button" className="wkd-button wkd-blue-button wkd-tarik-dana-selanjutnya"> + <button id="confirmation-button" data-testid="confirm-button" className="wkd-button wkd-blue-button wkd-tarik-dana-selanjutnya" onClick={postTarikDana}> Konfirmasi Penarikan </button> </div>