Fix TS errors

This commit is contained in:
Amit Jakubowicz 2019-03-24 09:04:59 +01:00
parent 5f142b691a
commit bbdabc32d9
5 changed files with 16 additions and 15 deletions

3
.gitignore vendored
View file

@ -3,6 +3,5 @@ node_modules
.idea
yarn-error.log
.DS_Store
functions/lib
lib
.env
.env

View file

@ -6,7 +6,7 @@ configure-functions:
| sed 's&_GCAL_CALENDAR_ID_&'"${GCAL_CALENDAR_ID}"'&' \
| sed 's&_GCAL_PRIVATE_KEY_BASE64_&'"${GCAL_PRIVATE_KEY_BASE64}"'&' \
| sed 's&_GCAL_CLIENT_EMAIL_&'"${GCAL_CLIENT_EMAIL}"'&' \
| sed 's&_GCP_PROJECT_ID_&'"${GCP_PROJECT_ID}"'&' > functions/src/config.ts
| sed 's&_GCP_PROJECT_ID_&'"${GCP_PROJECT_ID}"'&' > server/src/config.ts
configure-functions-staging:
@echo "Will populate config.ts with runtime secrets"
@$(MAKE) DOMAIN=${DOMAIN_STAGING} \
@ -16,4 +16,4 @@ configure-functions-staging:
GCAL_CALENDAR_ID=${GCAL_CALENDAR_ID_STAGING} \
GCAL_PRIVATE_KEY_BASE64=${GCAL_PRIVATE_KEY_BASE64_STAGING} \
GCAL_CLIENT_EMAIL=${GCAL_CLIENT_EMAIL_STAGING} \
configure-functions
configure-functions

View file

@ -1,10 +1,8 @@
// Free API to get location from IP: http://freegeoip.net/json/149.11.144.50
import {User} from "./User.entity"
import * as uuid from 'uuid/v4'
const randomstring = require('random-string')
import {PostOffice} from '../post_office'
import {domain} from '../config'
import {Session, SessionInvite} from "./Session.entity"
export class SessionAlreadyValidatedError extends Error {}
@ -36,13 +34,16 @@ const generateUniqueSessionHash = async () => {
interface Dependencies {
sendEmail: PostOffice
emailTargetDomain: string
}
export default class SessionManager {
sendEmail: PostOffice
emailTargetDomain: string
constructor(deps: Dependencies) {
this.sendEmail = deps.sendEmail
this.emailTargetDomain = deps.emailTargetDomain
}
inviteUser = async (user: User): Promise<SessionInvite> => {
const invite = new SessionInvite()
@ -54,8 +55,8 @@ export default class SessionManager {
try {
await this.sendEmail({
to: user.email,
from: `signin@${domain}`,
text: `Follow this link to start a session: https://${domain}/login/${invite.hash}`,
from: `signin@${this.emailTargetDomain}`,
text: `Follow this link to start a session: https://${this.emailTargetDomain}/login/${invite.hash}`,
subject: 'Invitation for session'
})
resolve(invite)

View file

@ -5,6 +5,7 @@ import {PostOffice} from "../post_office";
interface Dependencies {
sendEmail: PostOffice
emailTargetDomain: string
}
export default class AuthResolvers {
sessionManager: SessionManager
@ -12,7 +13,8 @@ export default class AuthResolvers {
constructor(deps: Dependencies) {
this.sessionManager = new SessionManager({
sendEmail: deps.sendEmail
sendEmail: deps.sendEmail,
emailTargetDomain: deps.emailTargetDomain
})
this.sendEmail = deps.sendEmail
}

View file

@ -1,14 +1,12 @@
import SessionManager from "./auth/SessionManager"
import CalendarManager from "./Calendar/CalendarManager"
import {ApolloServer} from 'apollo-server'
import {makeExecutableSchema} from "graphql-tools"
import EventsResolvers from './Events/eventsResolvers'
import {importSchema} from 'graphql-import'
import AuthResolvers from "./Auth/authResolvers"
import {Connection} from "typeorm"
import {PostOffice, sendEmail} from "./post_office";
import {Session} from "./Auth/Session.entity";
import {Context} from "./@types/graphql-utils";
import {PostOffice} from "./post_office"
import {Session} from "./Auth/Session.entity"
import {Context} from "./@types/graphql-utils"
interface Dependencies {
typeormConnection: Connection
@ -23,7 +21,8 @@ const resolvers = {
export const createServer = async (dependencies: Dependencies) => {
const authResolvers = new AuthResolvers({
sendEmail: dependencies.sendEmail
sendEmail: dependencies.sendEmail,
emailTargetDomain: 'www.example.com',
})
const typeDefs = importSchema(__dirname + '/schema.graphql')