"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
const { cloneDeep } = require("lodash");
const { definitions } = require("../../integrations");
const { SourceNames } = require("../../definitions/datasource");
const googlesheets = require("../../integrations/googlesheets");
const { featureFlags } = require("@devlego/backend-core");
exports.fetch = function (ctx) {
    return __awaiter(this, void 0, void 0, function* () {
        ctx.status = 200;
        const defs = cloneDeep(definitions);
        // for google sheets integration google verification
        if (featureFlags.isEnabled(featureFlags.FeatureFlag.GOOGLE_SHEETS)) {
            defs[SourceNames.GOOGLE_SHEETS] = googlesheets.schema;
        }
        ctx.body = defs;
    });
};
exports.find = function (ctx) {
    return __awaiter(this, void 0, void 0, function* () {
        ctx.status = 200;
        ctx.body = definitions[ctx.params.type];
    });
};
