UNPKG

5.85 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const tslib_1 = require("tslib");
4var GCloudModule_1;
5"use strict";
6const common_1 = require("@nestjs/common");
7const core_1 = require("@nestjs/core");
8const graphql_1 = require("@nestjs/graphql");
9const auth_configurer_1 = require("./auth/auth.configurer");
10const auth_controller_1 = require("./auth/auth.controller");
11const auth_graphql_1 = require("./auth/auth.graphql");
12const auth_guard_1 = require("./auth/auth.guard");
13const auth_repository_1 = require("./auth/auth.repository");
14const auth_service_1 = require("./auth/auth.service");
15const invite_user_service_1 = require("./auth/invite-user.service");
16const login_identifier_repository_1 = require("./auth/login-identifier.repository");
17const password_reset_service_1 = require("./auth/password-reset.service");
18const datastore_provider_1 = require("./datastore/datastore.provider");
19const filter_1 = require("./filter");
20const storage_provider_1 = require("./gcloud/storage.provider");
21const GraphQLMiddleware_1 = require("./graphql/GraphQLMiddleware");
22const interceptor_1 = require("./interceptor");
23const gmail_configurer_1 = require("./mail/gmail/gmail.configurer");
24const gmail_controller_1 = require("./mail/gmail/gmail.controller");
25const gmail_sender_1 = require("./mail/gmail/gmail.sender");
26const stored_credentials_repository_1 = require("./mail/gmail/stored.credentials.repository");
27const mail_diverter_1 = require("./mail/mail.diverter");
28const mail_logging_sender_1 = require("./mail/mail-logging.sender");
29const mail_sender_1 = require("./mail/mail.sender");
30const search_service_1 = require("./search/search.service");
31const mail_whitelist_sender_1 = require("./mail/mail-whitelist.sender");
32const mail_subject_sender_1 = require("./mail/mail-subject.sender");
33let GCloudModule = GCloudModule_1 = class GCloudModule {
34 constructor(graphqlConfigurer) {
35 this.graphqlConfigurer = graphqlConfigurer;
36 }
37 configure(consumer) {
38 consumer.apply(interceptor_1.ContextMiddleware).forRoutes('*');
39 consumer.apply(GraphQLMiddleware_1.GraphQLMiddleware).forRoutes('/api/graphql');
40 }
41 static forConfiguration(options) {
42 return {
43 module: GCloudModule_1,
44 imports: [options.configurationModule, options.userModule, graphql_1.GraphQLModule],
45 };
46 }
47};
48GCloudModule = GCloudModule_1 = tslib_1.__decorate([
49 common_1.Global(),
50 common_1.Module({
51 providers: [
52 storage_provider_1.StorageProvider,
53 datastore_provider_1.DatastoreProvider,
54 auth_repository_1.CredentialRepository,
55 login_identifier_repository_1.LoginIdentifierRepository,
56 auth_repository_1.PasswordResetRepository,
57 auth_repository_1.UserInviteRepository,
58 stored_credentials_repository_1.StoredCredentialsRepository,
59 auth_service_1.AuthService,
60 auth_configurer_1.AuthConfigurer,
61 auth_graphql_1.AuthResolver,
62 password_reset_service_1.PasswordResetService,
63 invite_user_service_1.InviteUserService,
64 search_service_1.SearchService,
65 gmail_configurer_1.GmailConfigurer,
66 {
67 provide: core_1.APP_FILTER,
68 useClass: filter_1.NotFoundFilter,
69 },
70 interceptor_1.ContextMiddleware,
71 {
72 provide: mail_sender_1.MAIL_SENDER,
73 useFactory: (config, gmailConfigurer) => {
74 const disableMailLogger = !!config.devHooks && config.devHooks.disableLocalMailLogger;
75 console.log(`Configuring mail sender with devHooks: `, config.devHooks);
76 let mailSender;
77 if (config.environment === 'development' && !disableMailLogger) {
78 mailSender = new mail_logging_sender_1.MailLoggingSender();
79 }
80 else {
81 mailSender = new gmail_sender_1.GmailSender(gmailConfigurer, config);
82 }
83 if (config.devHooks && config.devHooks.emailWhitelist) {
84 mailSender = new mail_whitelist_sender_1.MailWhitelistSender(mailSender, config);
85 }
86 if (config.devHooks && config.devHooks.divertEmailTo) {
87 mailSender = new mail_diverter_1.MailDiverter(mailSender, config);
88 }
89 if (config.devHooks && config.devHooks.emailSubjectPrefix) {
90 mailSender = new mail_subject_sender_1.MailSubjectSender(mailSender, config);
91 }
92 return mailSender;
93 },
94 inject: ['Configuration', gmail_configurer_1.GmailConfigurer],
95 },
96 {
97 provide: core_1.APP_GUARD,
98 useClass: auth_guard_1.AuthGuard,
99 },
100 GraphQLMiddleware_1.GraphQLMiddleware,
101 ],
102 exports: [
103 storage_provider_1.StorageProvider,
104 datastore_provider_1.DatastoreProvider,
105 auth_repository_1.CredentialRepository,
106 login_identifier_repository_1.LoginIdentifierRepository,
107 auth_repository_1.UserInviteRepository,
108 auth_repository_1.PasswordResetRepository,
109 password_reset_service_1.PasswordResetService,
110 invite_user_service_1.InviteUserService,
111 mail_sender_1.MAIL_SENDER,
112 search_service_1.SearchService,
113 ],
114 controllers: [auth_controller_1.AuthController, gmail_controller_1.GmailController],
115 }),
116 tslib_1.__metadata("design:paramtypes", [GraphQLMiddleware_1.GraphQLMiddleware])
117], GCloudModule);
118exports.GCloudModule = GCloudModule;
119//# sourceMappingURL=module.js.map
\No newline at end of file