Realtime current stock price API integration with JQUERY.

Realtime current stock price API integration with JQUERY.

by Financial Modeling Prep

HTML

<div class="stock-name"></div>

CSS

body {
  font-family: Helvetica Neue, Arial, sans-serif;
  font-size: 14px;
  color: #444;
  margin: 0;
}

.table {
  width: 100%;
  border: solid 1px #DDEEEE;
  border-collapse: collapse;
  border-spacing: 0;
  font: normal 13px Arial, sans-serif;
}

.table thead th {
  background-color: #DDEFEF;
  border: solid 1px #DDEEEE;
  color: #336B6B;
  padding: 10px;
  text-align: center;
  text-shadow: 1px 1px 1px #fff;
}

.table tbody td {
  border: solid 1px #DDEEEE;
  color: #333;
  padding: 10px;
  text-shadow: 1px 1px 1px #fff;
  min-width: 80px;
  text-align: center;
}

/* .stock-name {
  padding: 10px;
} */

JavaScript

var timeRefresh = 60;

function updateData() {
  // https://financialmodelingprep.com/developer/docs
  var url = "https://financialmodelingprep.com/api/v3/quote-short/AAPL?apikey=demo";
  $.ajax({
    url: url,
    type: "GET",
    crossDomain: true,
    success: function(response) {

      $('.table').remove();
      
      console.log(response);

      let resp = response

      let $table = $("<table class='table'></table>");

      // $('.stock-name').text(stockNameDisplay + ' quaterly income statement');

      for (let i = 0; i < resp.length; i++) {
        let financial = resp[i];
        let $line = $("<tr></tr>");
        let $lineHader = $("<tr></tr>");
        let $head = $('<thead></thead>');

        for (var key in financial) {
          if (i === 0 && financial.hasOwnProperty(key)) {
            $lineHader.append($("<th></th>").html(key));
          }
        }

        $head.append($lineHader);
        $table.append($head);

        for (var key2 in financial) {
          if (financial.hasOwnProperty(key2)) {
            $line.append($("<td></td>").html(financial[key2]));
          }
        }

        $table.append($line);
      }

      $table.appendTo(document.body);

    },

    error: function(xhr, status) {
      alert("error");
    }

  });
}

$(document).ready(function() {

	updateData();

  setInterval(() => {
  
  	updateData();

  }, timeRefresh * 1000)
});