org.openlmis.functional.GetRequisitionDetailsAPI.java Source code

Java tutorial

Introduction

Here is the source code for org.openlmis.functional.GetRequisitionDetailsAPI.java

Source

/*
 * This program is part of the OpenLMIS logistics management information system platform software.
 * Copyright  2013 VillageReach
 *
 * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
 * You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses. For additional information contact info@OpenLMIS.org.
 */

package org.openlmis.functional;

import org.apache.commons.lang3.StringUtils;
import org.openlmis.UiUtils.HttpClient;
import org.openlmis.UiUtils.ResponseEntity;
import org.openlmis.pod.domain.OrderPOD;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

import java.io.IOException;
import java.sql.SQLException;

import static com.thoughtworks.selenium.SeleneseTestBase.*;
import static java.lang.String.format;

public class GetRequisitionDetailsAPI extends JsonUtility {

    public static final String FULL_JSON_POD_TXT_FILE_NAME = "ReportJsonPOD.txt";
    public static final String URL = "http://localhost:9091/rest-api/requisitions/";

    @BeforeMethod(groups = { "webservice", "webserviceSmoke" })
    public void setUp() throws InterruptedException, SQLException, IOException {
        super.setup();
        super.setupTestData(false);
        super.setupDataRequisitionApprove();
        createVirtualFacilityThroughApi("V10", "F10");
        dbWrapper.insertProcessingPeriod("current", "current period", "2013-01-30", "2016-01-30", 1, "M");
        dbWrapper.insertRoleAssignmentForSupervisoryNodeForProgramId("commTrack", "store in-charge", "N1");
        dbWrapper.setupOrderNumberConfiguration("O", true, true, true, true);
        dbWrapper.updateRestrictLogin("commTrack", true);
    }

    @AfterMethod(groups = { "webservice", "webserviceSmoke" })
    public void tearDown() throws SQLException {
        dbWrapper.deleteData();
        dbWrapper.closeConnection();
    }

    @Test(groups = { "webserviceSmoke" })
    public void testGetRequisitionDetails() throws SQLException {
        HttpClient client = new HttpClient();
        client.createContext();
        submitRequisition("commTrack1", "HIV");
        dbWrapper.updateRequisitionStatus("AUTHORIZED", "commTrack", "HIV");
        Long id = (long) dbWrapper.getMaxRnrID();
        ResponseEntity responseEntity = client.SendJSON("", URL + id, "GET", "commTrack", "Admin123");
        checkRequisitionStatus("AUTHORIZED", responseEntity);
        checkOrderDetailsNotPresent(responseEntity);
        assertEquals(StringUtils.countMatches(responseEntity.getResponse(), ":"), 20);
    }

    @Test(groups = { "webserviceSmoke" })
    public void testGetRequisitionDetailsWithMultipleProducts() throws SQLException, IOException {
        dbWrapper.updateFieldValue("products", "fullSupply", "true", "code", "P11");

        long id = submitRnRThroughApi("V10", "HIV", "P10", 1, 10, 1, 0, 0, 2);
        HttpClient client = new HttpClient();
        client.createContext();

        ResponseEntity responseEntity = client.SendJSON("", URL + id, "GET", "commTrack", "Admin123");
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"productCode\":\"P11\""));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"skipped\":true"));
        dbWrapper.updateFieldValue("products", "fullSupply", "false", "code", "P11");
    }

    @Test(groups = { "webservice" })
    public void testGetRequisitionDetailsWithInvalidRequisitionID() {
        HttpClient client = new HttpClient();
        client.createContext();

        ResponseEntity responseEntity = client.SendJSON("", URL + 100, "GET", "commTrack", "Admin123");
        assertFalse("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"programCode\":\"HIV\""));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"error\":\"Requisition Not Found\""));
        assertEquals(400, responseEntity.getStatus());

        responseEntity = client.SendJSON("", URL + "@", "GET", "commTrack", "Admin123");
        assertFalse("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"programCode\":\"HIV\""));
        assertTrue("Response entity : " + responseEntity.getResponse(), responseEntity.getResponse()
                .contains("\"error\":\"Oops, something has gone wrong. Please try again later\""));
        assertEquals(500, responseEntity.getStatus());
    }

    @Test(groups = { "webservice" })
    public void testGetRequisitionDetailsWithInvalidPassword() throws SQLException {
        HttpClient client = new HttpClient();
        client.createContext();
        submitRequisition("commTrack1", "HIV");
        Long id = (long) dbWrapper.getMaxRnrID();

        ResponseEntity responseEntity = client.SendJSON("", URL + id, "GET", "commTrack", "Admin");
        assertFalse("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"programCode\":\"HIV\""));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("Authentication Failed"));
        assertEquals(401, responseEntity.getStatus());
    }

    @Test(groups = { "webservice" })
    public void testGetRequisitionDetailsWithInvalidUser() throws SQLException {
        HttpClient client = new HttpClient();
        client.createContext();
        submitRequisition("commTrack1", "HIV");
        Long id = (long) dbWrapper.getMaxRnrID();

        ResponseEntity responseEntity = client.SendJSON("", URL + id, "GET", "comm", "Admin123");
        assertFalse("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"programCode\":\"HIV\""));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("Authentication Failed"));
        assertEquals(401, responseEntity.getStatus());
    }

    @Test(groups = { "webservice" })
    public void testGetRequisitionDetailsWithBlankRequisitionID() {
        HttpClient client = new HttpClient();
        client.createContext();

        ResponseEntity responseEntity = client.SendJSON("", URL, "GET", "commTrack", "Admin123");
        assertFalse("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"programCode\":\"HIV\""));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("Request method 'GET' not supported"));
        assertEquals(405, responseEntity.getStatus());
    }

    @Test(groups = { "webservice" })
    public void testGetRequisitionDetailsWithMalformedRequest() throws SQLException {
        HttpClient client = new HttpClient();
        client.createContext();
        submitRequisition("commTrack1", "HIV");
        Long id = (long) dbWrapper.getMaxRnrID();

        ResponseEntity responseEntity = client.SendJSON("", "http://localhost:9091/rest-api/requisition/" + id,
                "GET", "commTrack", "Admin123");
        assertFalse("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"programCode\":\"HIV\""));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("NOT_FOUND"));
        assertEquals(404, responseEntity.getStatus());
    }

    @Test(groups = { "webservice" })
    public void testGetRequisitionDetailsWithUnrecognizedField() throws SQLException {
        HttpClient client = new HttpClient();
        client.createContext();
        submitRequisition("commTrack1", "HIV");
        Long id = (long) dbWrapper.getMaxRnrID();

        ResponseEntity responseEntity = client.SendJSON("", URL + id + "/programCode", "GET", "commTrack",
                "Admin123");
        assertFalse("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"programCode\":\"HIV\""));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("NOT_FOUND"));
        assertEquals(404, responseEntity.getStatus());
    }

    @Test(groups = { "webservice" })
    public void testGetRequisitionDetailsWithSpaceBeforeRequisitionID() throws SQLException {
        HttpClient client = new HttpClient();
        client.createContext();
        submitRequisition("commTrack1", "HIV");
        dbWrapper.updateRequisitionStatus("AUTHORIZED", "commTrack", "HIV");
        Long id = (long) dbWrapper.getMaxRnrID();
        ResponseEntity responseEntity = client.SendJSON("", URL + id, "GET", "commTrack", "Admin123");
        checkRequisitionStatus("AUTHORIZED", responseEntity);
        checkOrderDetailsNotPresent(responseEntity);
    }

    @Test(groups = { "webservice" })
    public void testGetRequisitionDetailsWithNullRemarks() throws SQLException {
        HttpClient client = new HttpClient();
        client.createContext();
        submitRequisition("commTrack1", "HIV");
        dbWrapper.updateRequisitionStatus("AUTHORIZED", "commTrack", "HIV");
        Long id = (long) dbWrapper.getMaxRnrID();

        ResponseEntity responseEntity = client.SendJSON("", URL + id, "GET", "commTrack", "Admin123");
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"programCode\":\"HIV\""));
        assertFalse("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("remarks:"));
        assertFalse("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"orderStatus\":"));
        assertFalse("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"supplyingFacilityCode\""));
        assertEquals(200, responseEntity.getStatus());
    }

    @Test(groups = { "webservice" })
    public void testRequisitionDetailsAfterApprovalForExportOrdersFlagSetFalse() throws SQLException, IOException {
        HttpClient client = new HttpClient();
        client.createContext();
        submitRequisition("commTrack1", "HIV");
        dbWrapper.updateRequisitionStatus("AUTHORIZED", "commTrack", "HIV");
        Long id = (long) dbWrapper.getMaxRnrID();
        ResponseEntity responseEntity = client.SendJSON("", URL + id, "GET", "commTrack", "Admin123");
        checkRequisitionStatus("AUTHORIZED", responseEntity);
        checkOrderDetailsNotPresent(responseEntity);

        dbWrapper.setExportOrdersFlagInSupplyLinesTable(false, "F10");
        dbWrapper.updateFieldValue("facilities", "virtualFacility", "true", "code", "F10");
        dbWrapper.setupUserForFulfillmentRole("commTrack", "store in-charge", "F10");
        dbWrapper.updateRestrictLogin("commTrack", false);
        approveRequisition(id, 65);
        convertToOrder("commTrack", "Admin123");
        dbWrapper.updateRestrictLogin("commTrack", true);
        responseEntity = client.SendJSON("", URL + id, "GET", "commTrack", "Admin123");
        checkRequisitionStatus("RELEASED", responseEntity);
        checkOrderStatus(65, "READY_TO_PACK", responseEntity);
    }

    @Test(groups = { "webservice" })
    public void testRequisitionDetailsAfterApprovalForExportOrdersFlagSetTrue()
            throws SQLException, IOException, InterruptedException {
        HttpClient client = new HttpClient();
        client.createContext();
        submitRequisition("commTrack1", "HIV");
        dbWrapper.updateRequisitionStatus("AUTHORIZED", "commTrack", "HIV");
        Long id = (long) dbWrapper.getMaxRnrID();
        ResponseEntity responseEntity = client.SendJSON("", URL + id, "GET", "commTrack", "Admin123");
        checkRequisitionStatus("AUTHORIZED", responseEntity);
        checkOrderDetailsNotPresent(responseEntity);

        dbWrapper.setExportOrdersFlagInSupplyLinesTable(true, "F10");
        dbWrapper.updateFieldValue("facilities", "virtualFacility", "true", "code", "F10");
        dbWrapper.setupUserForFulfillmentRole("commTrack", "store in-charge", "F10");
        approveRequisition(id, 65);
        dbWrapper.updateRestrictLogin("commTrack", false);
        convertToOrder("commTrack", "Admin123");
        dbWrapper.updateRestrictLogin("commTrack", true);
        responseEntity = waitUntilOrderStatusUpdatedOrTimeOut(id, "\"orderStatus\":\"RELEASED\"");
        checkRequisitionStatus("RELEASED", responseEntity);
        checkOrderStatus(65, "TRANSFER_FAILED", responseEntity);
    }

    @Test(groups = { "webservice" })
    public void testRequisitionDetailsAfterApprovalForExportOrdersFlagSetTrueAndFtpDetailsValid()
            throws SQLException, IOException, InterruptedException {
        HttpClient client = new HttpClient();
        client.createContext();
        submitRequisition("commTrack1", "HIV");
        dbWrapper.updateRequisitionStatus("AUTHORIZED", "commTrack", "HIV");
        Long id = (long) dbWrapper.getMaxRnrID();

        ResponseEntity responseEntity = client.SendJSON("", URL + id, "GET", "commTrack", "Admin123");
        checkRequisitionStatus("AUTHORIZED", responseEntity);
        checkOrderDetailsNotPresent(responseEntity);

        dbWrapper.setExportOrdersFlagInSupplyLinesTable(true, "F10");
        dbWrapper.enterValidDetailsInFacilityFtpDetailsTable("F10");
        dbWrapper.updateFieldValue("facilities", "virtualFacility", "true", "code", "F10");
        dbWrapper.setupUserForFulfillmentRole("commTrack", "store in-charge", "F10");

        approveRequisition(id, 65);
        dbWrapper.updateRestrictLogin("commTrack", false);
        convertToOrder("commTrack", "Admin123");
        dbWrapper.updateRestrictLogin("commTrack", true);

        responseEntity = waitUntilOrderStatusUpdatedOrTimeOut(id, "\"orderStatus\":\"RELEASED\"");
        checkRequisitionStatus("RELEASED", responseEntity);
        checkOrderStatus(65, "RELEASED", responseEntity);
    }

    @Test(groups = { "webservice" })
    public void testRequisitionDetailsAfterOrderIsCreated() throws SQLException, IOException {

        HttpClient client = new HttpClient();
        client.createContext();
        submitRequisition("commTrack1", "HIV");
        dbWrapper.updateRequisitionStatus("AUTHORIZED", "commTrack", "HIV");
        Long id = (long) dbWrapper.getMaxRnrID();
        ResponseEntity responseEntity = client.SendJSON("", URL + id, "GET", "commTrack", "Admin123");
        checkRequisitionStatus("AUTHORIZED", responseEntity);
        checkOrderDetailsNotPresent(responseEntity);

        dbWrapper.updateFieldValue("facilities", "virtualFacility", "true", "code", "F10");
        dbWrapper.setupUserForFulfillmentRole("commTrack", "store in-charge", "F10");

        approveRequisition(id, 65);
        dbWrapper.updateRestrictLogin("commTrack", false);
        convertToOrder("commTrack", "Admin123");
        dbWrapper.updateRestrictLogin("commTrack", true);
        responseEntity = client.SendJSON("", URL + id, "GET", "commTrack", "Admin123");
        checkRequisitionStatus("RELEASED", responseEntity);
        checkOrderStatus(65, "READY_TO_PACK", responseEntity);

        dbWrapper.assignRight("store in-charge", "MANAGE_POD");

        OrderPOD OrderPODFromJson = JsonUtility.readObjectFromFile(FULL_JSON_POD_TXT_FILE_NAME, OrderPOD.class);
        OrderPODFromJson.getPodLineItems().get(0).setQuantityReceived(65);
        OrderPODFromJson.getPodLineItems().get(0).setProductCode("P10");

        String orderId = generateOrderNumberForIdAndDefaultConfiguration(id, "HIV");

        dbWrapper.setupOrderNumberConfiguration("P", true, true, true, true);
        checkOrderNumber(orderId, responseEntity);
    }

    @Test(groups = { "webservice" })
    public void testRequisitionDetailsAfterPOD() throws SQLException, IOException {

        HttpClient client = new HttpClient();
        client.createContext();
        submitRequisition("commTrack1", "HIV");
        dbWrapper.updateRequisitionStatus("AUTHORIZED", "commTrack", "HIV");
        Long id = (long) dbWrapper.getMaxRnrID();
        ResponseEntity responseEntity = client.SendJSON("", URL + id, "GET", "commTrack", "Admin123");
        checkRequisitionStatus("AUTHORIZED", responseEntity);
        checkOrderDetailsNotPresent(responseEntity);

        dbWrapper.updateFieldValue("facilities", "virtualFacility", "true", "code", "F10");
        dbWrapper.setupUserForFulfillmentRole("commTrack", "store in-charge", "F10");

        approveRequisition(id, 65);
        dbWrapper.updateRestrictLogin("commTrack", false);
        convertToOrder("commTrack", "Admin123");
        dbWrapper.updateRestrictLogin("commTrack", true);
        responseEntity = client.SendJSON("", URL + id, "GET", "commTrack", "Admin123");
        checkRequisitionStatus("RELEASED", responseEntity);
        checkOrderStatus(65, "READY_TO_PACK", responseEntity);

        dbWrapper.assignRight("store in-charge", "MANAGE_POD");

        OrderPOD OrderPODFromJson = JsonUtility.readObjectFromFile(FULL_JSON_POD_TXT_FILE_NAME, OrderPOD.class);
        OrderPODFromJson.getPodLineItems().get(0).setQuantityReceived(65);
        OrderPODFromJson.getPodLineItems().get(0).setProductCode("P10");

        String orderId = generateOrderNumberForIdAndDefaultConfiguration(id, "HIV");

        client.SendJSON(getJsonStringFor(OrderPODFromJson), format(POD_URL, orderId), "POST", "commTrack",
                "Admin123");

        responseEntity = client.SendJSON("", URL + id, "GET", "commTrack", "Admin123");
        checkRequisitionStatus("RELEASED", responseEntity);
        checkOrderStatus(65, "RECEIVED", responseEntity);
        dbWrapper.setupOrderNumberConfiguration("P", true, true, true, true);
        checkOrderNumber(orderId, responseEntity);
    }

    private String generateOrderNumberForIdAndDefaultConfiguration(Long id, String programCode) {
        return "O" + programCode + String.format("%08d", id) + "R";
    }

    private void checkRequisitionStatus(String requisitionStatus, ResponseEntity responseEntity) {
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"programCode\":\"HIV\""));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"agentCode\":\"F10\""));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"emergency\":false"));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"stringPeriodStartDate\":\"01/12/2012\""));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"stringPeriodEndDate\":\"01/12/2015\""));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"periodStartDate\":"));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"periodEndDate\":"));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"requisitionStatus\":\"" + requisitionStatus + "\""));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"products\":[{"));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"productCode\":\"P10\""));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"beginningBalance\":0"));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"quantityReceived\":11"));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"quantityDispensed\":1"));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"totalLossesAndAdjustments\":0"));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"stockInHand\":10"));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"newPatientCount\":0"));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"stockOutDays\":0"));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"skipped\":false"));
        assertEquals(200, responseEntity.getStatus());
    }

    private void checkOrderDetailsNotPresent(ResponseEntity responseEntity) {
        assertFalse("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"quantityRequested\":3"));
        assertFalse("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"reasonForRequestedQuantity\":\"reason\""));
        assertFalse("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"calculatedOrderQuantity\":57"));
        assertFalse("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"quantityApproved\":57"));
        assertFalse("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"quantityRequested\":3"));
        assertFalse("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"reasonForRequestedQuantity\":\"reason\""));
        assertFalse("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"calculatedOrderQuantity\":57"));
        assertFalse("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"quantityApproved\":57"));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"skipped\":false"));
        assertFalse("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"remarks\":\"1\""));
        assertFalse("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"orderStatus\":"));
        assertFalse("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"supplyingFacilityCode\""));

    }

    private void checkOrderStatus(int quantityApproved, String orderStatus, ResponseEntity responseEntity) {
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"quantityApproved\":" + quantityApproved));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"supplyingFacilityCode\":\"F10\""));
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"orderStatus\":\"" + orderStatus + "\""));
    }

    private void checkOrderNumber(String orderId, ResponseEntity responseEntity) {
        assertTrue("Response entity : " + responseEntity.getResponse(),
                responseEntity.getResponse().contains("\"orderId\":\"" + orderId + "\""));
    }

    private ResponseEntity waitUntilOrderStatusUpdatedOrTimeOut(long id, String expected)
            throws InterruptedException {
        HttpClient client = new HttpClient();
        client.createContext();
        ResponseEntity responseEntity;

        responseEntity = client.SendJSON("", URL + id, "GET", "commTrack", "Admin123");
        int time = 0;
        while (time <= 30000) {
            if (responseEntity.getResponse().contains(expected))
                break;
            responseEntity = client.SendJSON("", URL + id, "GET", "commTrack", "Admin123");
            time += 500;
            Thread.sleep(500);
        }
        return responseEntity;
    }

}