tanam
Version:
Pluggable CMS for Firebase
59 lines • 2.77 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const admin = require("firebase-admin");
const document_type_service_1 = require("../services/document-type.service");
const template_service_1 = require("../services/template.service");
const theme_service_1 = require("../services/theme.service");
function getSiteInfo() {
return __awaiter(this, void 0, void 0, function* () {
const siteInfoDoc = yield admin.firestore().collection('tanam').doc(process.env.GCLOUD_PROJECT).get();
return siteInfoDoc.data();
});
}
exports.getSiteInfo = getSiteInfo;
function createDefaultSiteInfo() {
return __awaiter(this, void 0, void 0, function* () {
const siteId = process.env.GCLOUD_PROJECT;
const defaultDomains = [`${process.env.GCLOUD_PROJECT}.firebaseapp.com`, `${process.env.GCLOUD_PROJECT}.web.app`];
console.log(`[createDefaultSiteInfo] ${defaultDomains}`);
const siteInfoData = {
id: siteId,
defaultLanguage: 'en',
languages: ['en'],
isCustomDomain: false,
domains: defaultDomains,
primaryDomain: defaultDomains[0],
analytics: '',
theme: 'default',
title: process.env.GCLOUD_PROJECT
};
return admin.firestore().collection('tanam').doc(siteId).set(siteInfoData);
});
}
exports.createDefaultSiteInfo = createDefaultSiteInfo;
function initializeSite(force = false) {
return __awaiter(this, void 0, void 0, function* () {
const siteInfoDoc = admin.firestore().collection('tanam').doc(process.env.GCLOUD_PROJECT);
const siteIsSetup = (yield siteInfoDoc.get()).exists;
if (siteIsSetup && !force) {
return null;
}
console.log(`[registerHost] Site is not setup yet.`);
return Promise.all([
createDefaultSiteInfo(),
document_type_service_1.createDefaultDocuments(),
theme_service_1.createDefaultTheme(),
template_service_1.createDefaultTemplates(),
]);
});
}
exports.initializeSite = initializeSite;
//# sourceMappingURL=site-info.service.js.map