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";
|
2019-02-03 16:18:37 +01:00
|
|
|
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";
|
2019-02-03 16:18:37 +01:00
|
|
|
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()
|
|
|
|
|
2019-02-03 16:18:37 +01:00
|
|
|
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
|
|
|
|
2019-01-27 19:07:09 +01:00
|
|
|
const gql = new GraphQLInterface({
|
2018-10-07 21:33:47 +02:00
|
|
|
repository,
|
|
|
|
userManager,
|
|
|
|
sessionManager,
|
|
|
|
calendarManager,
|
|
|
|
eventManager,
|
2019-01-27 19:07:09 +01:00
|
|
|
});
|
2018-10-07 21:33:47 +02:00
|
|
|
|
2019-01-27 19:07:09 +01: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()
|