node-bowshock
Version:
An npm Package for Node.js based on https://github.com/emirozer/bowshock
99 lines (89 loc) • 2.39 kB
JavaScript
;
let moment = require("moment");
let pd = require("pretty-data").pd;
let axios = require("axios");
require("dotenv").config();
let helpers = {
getJSON(url, type) {
if (this.logging()) {
console.log("Dispatching HTTP GET Request : ", url.host || url);
}
var instance = axios.create({
baseURL: "https://sscweb.sci.gsfc.nasa.gov/WS/sscr/2",
headers: {
Accept: "application/json",
"Content-Type": "application/json"
}
});
if (type == "GET") {
return instance
.get(url)
.then(response => {
if(this.logging() === true){
console.log(response.data);
}
return response.data;
})
.catch(error => {
return error;
});
}
if (type == "POST") {
return instance
.post(url)
.then(response => {
return response.data;
})
.catch(error => {
console.log(error);
});
}
},
getXML(url) {
if (this.logging() === true) {
console.log("Dispatching HTTP GET Request : ", url);
}
var instance = axios.create({
baseURL: "https://sscweb.sci.gsfc.nasa.gov/WS/sscr/2",
headers: {
Accept: "application/xml",
"Content-Type": "application/xml"
}
});
return instance
.get(url)
.then(response => {
return response.data;
})
.catch(function(error) {
console.log(error);
});
},
vali_date: function(date) {
return moment(new Date(date)).format("YYYY-MM-DD");
},
validate_year: function(date_text) {
if (moment(date_text, "YYYY", true).isValid()) {
return date_text;
} else {
throw "Incorrect date format, should be YYYY";
}
},
validate_iso8601(date_text) {
if (moment(date_text, "YYYY-MM-DDTHH:mm:ss", true).isValid()) {
return date_text;
} else {
throw "Incorrect date format, should be YYYY-MM-DDTHH:mm:ss";
}
},
nasa_api_key: function() {
return process.env.NASA_API_KEY;
},
logging: function() {
return !!process.env.LOGGER || false;
}
};
module.exports = helpers;
//helpers.vali_date("2017-12-03");
//helpers.validate_year("2017");
//helpers.validate_iso8601("2014-01-01T23:59:59");