qpa-client/server/src/index.ts

38 lines
1.1 KiB
TypeScript
Raw Normal View History

2019-01-31 12:32:48 +01:00
import {gcal as gcalConfig, projectId} from "./config";
2018-06-03 12:33:51 +02:00
import UserManager from "./user";
import SessionManager from "./Auth/SessionManager";
2019-01-31 12:32:48 +01:00
import Repository from './repository'
import Calendar from "./Calendar/CalendarManager";
import EventManager from "./Events/EventManager";
2018-10-07 21:33:47 +02:00
import GraphQLInterface from "./graphql";
2019-01-31 12:32:48 +01:00
import {EventsRepository} from "./Events/EventsRepository";
import AuthRepository from "./Auth/AuthRepository";
2018-10-07 21:33:47 +02:00
async function start() {
2019-01-31 12:32:48 +01:00
const repository = new Repository(projectId)
2018-10-07 21:33:47 +02:00
await repository.connect()
const authRepository = new AuthRepository({repository})
const userManager = new UserManager(authRepository)
const sessionManager = new SessionManager(authRepository)
2019-01-31 12:32:48 +01:00
const eventsRepository = new EventsRepository({repository})
2018-10-07 21:33:47 +02:00
const calendarManager = new Calendar({
2019-01-31 12:32:48 +01:00
eventsRepository: eventsRepository,
2018-10-07 21:33:47 +02:00
gcalConfig: gcalConfig
})
2019-01-31 12:32:48 +01:00
const eventManager = new EventManager({calendarManager, eventsRepository})
2018-10-07 21:33:47 +02:00
const gql = new GraphQLInterface({
2018-10-07 21:33:47 +02:00
repository,
userManager,
sessionManager,
calendarManager,
eventManager,
});
2018-10-07 21:33:47 +02:00
gql.start()
2018-10-07 21:33:47 +02:00
}
2018-06-03 12:33:51 +02:00
2018-10-07 21:33:47 +02:00
start()