qpa-client/functions/src/index.ts

50 lines
1.4 KiB
TypeScript
Raw Normal View History

2018-05-16 20:48:38 +02:00
import * as functions from 'firebase-functions';
2018-05-22 07:36:00 +02:00
import {
isUserAvailable as isUserAvailableHandler,
signup as signupHandler,
2018-06-03 12:33:51 +02:00
signin as signinHandler,
setDependencies as setUserHandlerDependencies
2018-05-22 07:36:00 +02:00
} from './userHandlers'
2018-04-02 20:23:44 +02:00
2018-05-22 07:36:00 +02:00
import {
events as eventsHandler,
2018-06-03 12:33:51 +02:00
setDependencies as setEventsHandlerDependencies
2018-06-03 11:32:05 +02:00
} from './eventHandlers';
2018-06-03 12:33:51 +02:00
import {gcal as gcalConfig, projectId} from './config'
import UserManager from "./user";
import SessionManager from "./session";
import Repository from "./repository";
import Calendar from "./calendar";
2018-06-03 13:43:40 +02:00
import EventManager from "./event";
2018-06-03 12:33:51 +02:00
2018-05-18 10:35:28 +02:00
const IS_FIREBASE = true;
2018-06-03 12:33:51 +02:00
const repository = new Repository(projectId)
const userManager = new UserManager(repository)
const sessionManager = new SessionManager(repository)
const calendarManager = new Calendar({
repository,
gcalConfig: gcalConfig
})
2018-06-03 13:43:40 +02:00
const eventManager = new EventManager(calendarManager, repository)
2018-06-03 12:33:51 +02:00
setUserHandlerDependencies({
userManager, sessionManager
2018-06-03 12:33:51 +02:00
})
setEventsHandlerDependencies({
2018-06-03 13:43:40 +02:00
sessionManager, calendarManager, eventManager
2018-06-03 12:33:51 +02:00
})
2018-05-18 10:35:28 +02:00
const httpHandler = (func) => {
let result = func
if (IS_FIREBASE) {
result = functions.https.onRequest(func)
}
return result
}
2018-06-01 13:08:28 +02:00
export const isUserAvailable = httpHandler(isUserAvailableHandler)
export const signup = httpHandler(signupHandler)
export const signin = httpHandler(signinHandler)
export const events = httpHandler(eventsHandler)