jkt48connect-cli
Version:
CLI dan modul untuk mengakses data dari API JKT48Connect, termasuk data member, teater, event, pembayaran, dan lainnya.
98 lines (92 loc) • 3.55 kB
JavaScript
const checkApiKey = require("./modules/checkApiKey");
const { getTheater, getTheaterDetail } = require("./modules/theater");
const { getEvents, getEventDetail } = require("./modules/events");
const { getMemberDetail, getAllMembers } = require("./modules/member");
const { getLive, getRecentLive } = require("./modules/live");
const { createPayment, checkPaymentStatus } = require("./modules/payment");
const { getNews, getNewsDetail } = require("./modules/news"); // Import fungsi dari news.js
if (require.main === module) {
const args = process.argv.slice(2);
const command = args[0];
const apiKey = args[1];
const id = args[2];
if (!command || !apiKey) {
console.error("Usage: <command> <api_key> [additional_params]");
console.error(
"Commands: check, theater, events, eventDetail, theaterDetail, memberDetail, allMembers, live, recentLive, createPayment, checkPaymentStatus, news, newsDetail"
);
process.exit(1);
}
switch (command) {
case "check":
checkApiKey(apiKey).then((data) => console.log(data)).catch(console.error);
break;
case "theater":
getTheater(apiKey).then((data) => console.log(data)).catch(console.error);
break;
case "events":
getEvents(apiKey).then((data) => console.log(data)).catch(console.error);
break;
case "eventDetail":
if (!id) return console.error("Error: Event ID is required for eventDetail.");
getEventDetail(apiKey, id).then((data) => console.log(data)).catch(console.error);
break;
case "theaterDetail":
if (!id) return console.error("Error: Theater ID is required for theaterDetail.");
getTheaterDetail(apiKey, id).then((data) => console.log(data)).catch(console.error);
break;
case "memberDetail":
if (!id) return console.error("Error: Member ID is required for memberDetail.");
getMemberDetail(apiKey, id).then((data) => console.log(data)).catch(console.error);
break;
case "allMembers":
getAllMembers(apiKey).then((data) => console.log(data)).catch(console.error);
break;
case "live":
getLive(apiKey).then((data) => console.log(data)).catch(console.error);
break;
case "recentLive":
getRecentLive(apiKey).then((data) => console.log(data)).catch(console.error);
break;
case "createPayment":
const amount = args[2];
const codeQr = args[3];
if (!amount || !codeQr)
return console.error("Error: Amount and QR Code are required for createPayment.");
createPayment(apiKey, amount, codeQr);
break;
case "checkPaymentStatus":
const merchantId = args[2];
const keyOrkut = args[3];
if (!merchantId || !keyOrkut)
return console.error("Error: Merchant ID and Key Orkut are required for checkPaymentStatus.");
checkPaymentStatus(apiKey, merchantId, keyOrkut);
break;
case "news":
getNews(apiKey).then((data) => console.log(data)).catch(console.error);
break;
case "newsDetail":
if (!id) return console.error("Error: News ID is required for newsDetail.");
getNewsDetail(apiKey, id).then((data) => console.log(data)).catch(console.error);
break;
default:
console.error("Error: Invalid command.");
}
}
// Ekspor semua fungsi sebagai modul
module.exports = {
checkApiKey,
getTheater,
getTheaterDetail,
getEvents,
getEventDetail,
getMemberDetail,
getAllMembers,
getLive,
getRecentLive,
createPayment,
checkPaymentStatus,
getNews,
getNewsDetail,
};