api/v1/calendly/controller.js

import BaseController from "api/BaseController"

import Calendly from "./model"

/**
 * Controller for the @namespace /calendly
 *
 * @class CalendlyController
 * @extends {BaseController}
 */
class CalendlyController extends BaseController {
    constructor() {
        super()

        this.eventTypes = this.eventTypes.bind(this)
    }

    async eventTypes(_, res) {
        const { success, notFound } = this.codes
        const eventTypes = await Calendly.fetchEventTypes()

        if (!eventTypes) {
            res.status(notFound).send({
                success: "false",
                message: "event_types_not_found",
                error: Calendly.error,
            })

            return
        }

        res.status(success).send({
            success: "true",
            message: "event_types_retrieved_successfully",
            eventTypes,
        })
    }
}

export default CalendlyController