Changeset View
Changeset View
Standalone View
Standalone View
keyserver/src/responders/link-responders.js
// @flow | // @flow | ||||
import t from 'tcomb'; | import t from 'tcomb'; | ||||
import type { | import type { | ||||
InviteLinkVerificationRequest, | InviteLinkVerificationRequest, | ||||
InviteLinkVerificationResponse, | InviteLinkVerificationResponse, | ||||
FetchInviteLinksResponse, | |||||
} from 'lib/types/link-types.js'; | } from 'lib/types/link-types.js'; | ||||
import { tShape } from 'lib/utils/validation-utils.js'; | import { tShape } from 'lib/utils/validation-utils.js'; | ||||
import { verifyInviteLink } from '../fetchers/link-fetchers.js'; | import { | ||||
fetchPrimaryInviteLinks, | |||||
verifyInviteLink, | |||||
} from '../fetchers/link-fetchers.js'; | |||||
import { Viewer } from '../session/viewer.js'; | import { Viewer } from '../session/viewer.js'; | ||||
import { validateInput } from '../utils/validation-utils.js'; | import { validateInput } from '../utils/validation-utils.js'; | ||||
const inviteLinkVerificationRequestInputValidator = tShape({ | const inviteLinkVerificationRequestInputValidator = tShape({ | ||||
secret: t.String, | secret: t.String, | ||||
}); | }); | ||||
async function inviteLinkVerificationResponder( | async function inviteLinkVerificationResponder( | ||||
viewer: Viewer, | viewer: Viewer, | ||||
input: any, | input: any, | ||||
): Promise<InviteLinkVerificationResponse> { | ): Promise<InviteLinkVerificationResponse> { | ||||
const request: InviteLinkVerificationRequest = input; | const request: InviteLinkVerificationRequest = input; | ||||
await validateInput( | await validateInput( | ||||
viewer, | viewer, | ||||
inviteLinkVerificationRequestInputValidator, | inviteLinkVerificationRequestInputValidator, | ||||
request, | request, | ||||
); | ); | ||||
return await verifyInviteLink(viewer, request); | return await verifyInviteLink(viewer, request); | ||||
} | } | ||||
export { inviteLinkVerificationResponder }; | async function fetchPrimaryInviteLinksResponder( | ||||
viewer: Viewer, | |||||
): Promise<FetchInviteLinksResponse> { | |||||
const primaryLinks = await fetchPrimaryInviteLinks(viewer); | |||||
return { | |||||
links: primaryLinks, | |||||
}; | |||||
} | |||||
export { inviteLinkVerificationResponder, fetchPrimaryInviteLinksResponder }; |