aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIndrajith K L2021-05-13 02:57:20 +0530
committerIndrajith K L2021-05-13 02:57:54 +0530
commit187e6bc1f221f5b4a4cb5a2ebe6ddb66780cc2d8 (patch)
tree827ace7fb510da15fa76510a3b1db5ad3fe1ea5a /src
parent4868721d30319a8213279e1fb72e482487681e68 (diff)
downloadlul-bot-187e6bc1f221f5b4a4cb5a2ebe6ddb66780cc2d8.tar.gz
lul-bot-187e6bc1f221f5b4a4cb5a2ebe6ddb66780cc2d8.tar.bz2
lul-bot-187e6bc1f221f5b4a4cb5a2ebe6ddb66780cc2d8.zip
*New Feature
* Cowin API integration * Command ```!vaccine 110009 25-05-2021```
Diffstat (limited to 'src')
-rw-r--r--src/commands/vaccine.js41
-rw-r--r--src/configs/commands.config.json5
2 files changed, 46 insertions, 0 deletions
diff --git a/src/commands/vaccine.js b/src/commands/vaccine.js
new file mode 100644
index 0000000..e1219f2
--- /dev/null
+++ b/src/commands/vaccine.js
@@ -0,0 +1,41 @@
+const axios = require('axios').default;
+const {MessageEmbed} = require('discord.js');
+const instance = axios.create({
+ baseURL: 'https://cdn-api.co-vin.in/api/v2',
+ headers: {
+ 'accept': '*/*',
+ 'accept-language': 'en-US',
+ 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36'
+ }
+ });
+async function getVaccineAvailablity(message, args) {
+ const [pincode, date] = args;
+ const url = `/appointment/sessions/public/findByPin?${new URLSearchParams({ pincode, date })}`;
+ instance.get(url).then(res => {
+ if (res.data && res.data.sessions) {
+ const {sessions} = res.data;
+ if (sessions && sessions.length > 0 ){
+ sessions.forEach(async (session) => {
+ const vaccineMessage = new MessageEmbed()
+ .setTitle(`${session.name} : ${session.address}`)
+ .addField('State', session.state_name, true)
+ .addField('District', session.district_name, true)
+ .addField('Vaccine', session.vaccine, true)
+ .addField('Available Capacity', session.available_capacity, true)
+ .addField('Available SLots', session.slots.join("/"), true)
+ .setColor("RANDOM");
+ message.channel.send(vaccineMessage);
+ })
+
+ }else {
+ message.channel.send(`No Vaccine Available at place with pincode => ${pincode} on ${date}`)
+ }
+ }
+ }).catch(error => message.channel.send(`Error Fetching Data from Cowin`));
+}
+
+module.exports = {
+ execute(client, message, args) {
+ getVaccineAvailablity(message, args);
+ }
+} \ No newline at end of file
diff --git a/src/configs/commands.config.json b/src/configs/commands.config.json
index 1865374..282de6e 100644
--- a/src/configs/commands.config.json
+++ b/src/configs/commands.config.json
@@ -19,6 +19,11 @@
"name": "loadout",
"description": "Get CoD Mobile User Loadout",
"file": "./commands/loadout.js"
+ },
+ {
+ "name": "vaccine",
+ "description": "Get Vaccine Availability by Pincode",
+ "file": "./commands/vaccine.js"
}
]
} \ No newline at end of file