diff --git a/keyserver/src/creators/account-creator.js b/keyserver/src/creators/account-creator.js --- a/keyserver/src/creators/account-creator.js +++ b/keyserver/src/creators/account-creator.js @@ -1,6 +1,7 @@ // @flow import invariant from 'invariant'; +import { getRustAPI } from 'rust-node-addon'; import bcrypt from 'twin-bcrypt'; import ashoat from 'lib/facts/ashoat'; @@ -37,6 +38,7 @@ fetchKnownUserInfos, } from '../fetchers/user-fetchers'; import { verifyCalendarQueryThreadIDs } from '../responders/entry-responders'; +import { handleAsyncPromise } from '../responders/handlers'; import { createNewUserCookie, setNewSession } from '../session/cookies'; import { createScriptViewer } from '../session/scripts'; import type { Viewer } from '../session/viewer'; @@ -180,11 +182,13 @@ threadsResult, userInfos, currentUserInfo, + rustAPI, ] = await Promise.all([ createMessages(viewer, messageDatas), fetchThreadInfos(viewer), fetchKnownUserInfos(viewer), fetchLoggedInUserInfo(viewer), + getRustAPI(), ]); const rawMessageInfos = [ ...ashoatThreadResult.newMessageInfos, @@ -192,6 +196,18 @@ ...messageInfos, ]; + const deviceID = request.deviceID ?? 'placeholder'; + const userPublicKey = request.userPublicKey ?? 'placeholder'; + handleAsyncPromise( + rustAPI.registerUser( + id, + deviceID, + request.username, + request.password, + userPublicKey, + ), + ); + return { id, rawMessageInfos, diff --git a/lib/types/account-types.js b/lib/types/account-types.js --- a/lib/types/account-types.js +++ b/lib/types/account-types.js @@ -51,6 +51,8 @@ +calendarQuery?: ?CalendarQuery, +deviceTokenUpdateRequest?: ?DeviceTokenUpdateRequest, +platformDetails: PlatformDetails, + +deviceID?: ?string, + +userPublicKey?: ?string, }; export type RegisterResponse = {