64 lines
1.6 KiB
JavaScript
64 lines
1.6 KiB
JavaScript
const Command = require("../structures/Command")
|
|
const { CommandWords } = require("../constants")
|
|
const { success, error } = require("../utils")
|
|
const AnalyticsClient = require("./Client")
|
|
|
|
const client = new AnalyticsClient()
|
|
|
|
async function optOut() {
|
|
try {
|
|
// opt them out
|
|
client.disable()
|
|
console.log(
|
|
success(
|
|
"Successfully opted out of Budibase analytics. You can opt in at any time by running 'budi analytics opt-in'"
|
|
)
|
|
)
|
|
} catch (err) {
|
|
console.log(
|
|
error(
|
|
"Error opting out of Budibase analytics. Please try again later.",
|
|
err
|
|
)
|
|
)
|
|
}
|
|
}
|
|
|
|
async function optIn() {
|
|
try {
|
|
// opt them in
|
|
client.enable()
|
|
console.log(
|
|
success(
|
|
"Successfully opted in to Budibase analytics. Thank you for helping us make Budibase better!"
|
|
)
|
|
)
|
|
} catch (err) {
|
|
console.log(
|
|
error("Error opting in to Budibase analytics. Please try again later.")
|
|
)
|
|
}
|
|
}
|
|
|
|
async function status() {
|
|
try {
|
|
console.log(success(`Budibase analytics ${client.status()}`))
|
|
} catch (err) {
|
|
console.log(
|
|
error("Error fetching analytics status. Please try again later.")
|
|
)
|
|
}
|
|
}
|
|
|
|
const command = new Command(`${CommandWords.ANALYTICS}`)
|
|
.addHelp("Control the analytics you send to Budibase.")
|
|
.addSubOption("--optin", "Opt in to sending analytics to Budibase", optIn)
|
|
.addSubOption("--optout", "Opt out of sending analytics to Budibase.", optOut)
|
|
.addSubOption(
|
|
"--status",
|
|
"Check whether you are currently opted in to Budibase analytics.",
|
|
status
|
|
)
|
|
|
|
exports.command = command
|