Changeset View
Changeset View
Standalone View
Standalone View
keyserver/src/creators/account-creator.js
// @flow | // @flow | ||||
import invariant from 'invariant'; | import invariant from 'invariant'; | ||||
import { getRustAPI } from 'rust-node-addon'; | |||||
import bcrypt from 'twin-bcrypt'; | import bcrypt from 'twin-bcrypt'; | ||||
import ashoat from 'lib/facts/ashoat'; | import ashoat from 'lib/facts/ashoat'; | ||||
import bots from 'lib/facts/bots'; | import bots from 'lib/facts/bots'; | ||||
import genesis from 'lib/facts/genesis'; | import genesis from 'lib/facts/genesis'; | ||||
import { policyTypes } from 'lib/facts/policies.js'; | import { policyTypes } from 'lib/facts/policies.js'; | ||||
import { | import { | ||||
validUsernameRegex, | validUsernameRegex, | ||||
Show All 20 Lines | |||||
import { dbQuery, SQL } from '../database/database'; | import { dbQuery, SQL } from '../database/database'; | ||||
import { deleteCookie } from '../deleters/cookie-deleters'; | import { deleteCookie } from '../deleters/cookie-deleters'; | ||||
import { fetchThreadInfos } from '../fetchers/thread-fetchers'; | import { fetchThreadInfos } from '../fetchers/thread-fetchers'; | ||||
import { | import { | ||||
fetchLoggedInUserInfo, | fetchLoggedInUserInfo, | ||||
fetchKnownUserInfos, | fetchKnownUserInfos, | ||||
} from '../fetchers/user-fetchers'; | } from '../fetchers/user-fetchers'; | ||||
import { verifyCalendarQueryThreadIDs } from '../responders/entry-responders'; | import { verifyCalendarQueryThreadIDs } from '../responders/entry-responders'; | ||||
import { handleAsyncPromise } from '../responders/handlers'; | |||||
import { createNewUserCookie, setNewSession } from '../session/cookies'; | import { createNewUserCookie, setNewSession } from '../session/cookies'; | ||||
import { createScriptViewer } from '../session/scripts'; | import { createScriptViewer } from '../session/scripts'; | ||||
import type { Viewer } from '../session/viewer'; | import type { Viewer } from '../session/viewer'; | ||||
import { updateThread } from '../updaters/thread-updaters'; | import { updateThread } from '../updaters/thread-updaters'; | ||||
import { viewerAcknowledgmentUpdater } from '../updaters/viewer-acknowledgment-updater.js'; | import { viewerAcknowledgmentUpdater } from '../updaters/viewer-acknowledgment-updater.js'; | ||||
import createIDs from './id-creator'; | import createIDs from './id-creator'; | ||||
import createMessages from './message-creator'; | import createMessages from './message-creator'; | ||||
import { | import { | ||||
▲ Show 20 Lines • Show All 127 Lines • ▼ Show 20 Lines | const privateMessageDatas = privateMessages.map(message => ({ | ||||
text: message, | text: message, | ||||
})); | })); | ||||
const messageDatas = [...ashoatMessageDatas, ...privateMessageDatas]; | const messageDatas = [...ashoatMessageDatas, ...privateMessageDatas]; | ||||
const [ | const [ | ||||
messageInfos, | messageInfos, | ||||
threadsResult, | threadsResult, | ||||
userInfos, | userInfos, | ||||
currentUserInfo, | currentUserInfo, | ||||
rustAPI, | |||||
] = await Promise.all([ | ] = await Promise.all([ | ||||
createMessages(viewer, messageDatas), | createMessages(viewer, messageDatas), | ||||
fetchThreadInfos(viewer), | fetchThreadInfos(viewer), | ||||
fetchKnownUserInfos(viewer), | fetchKnownUserInfos(viewer), | ||||
fetchLoggedInUserInfo(viewer), | fetchLoggedInUserInfo(viewer), | ||||
getRustAPI(), | |||||
]); | ]); | ||||
const rawMessageInfos = [ | const rawMessageInfos = [ | ||||
...ashoatThreadResult.newMessageInfos, | ...ashoatThreadResult.newMessageInfos, | ||||
...privateThreadResult.newMessageInfos, | ...privateThreadResult.newMessageInfos, | ||||
...messageInfos, | ...messageInfos, | ||||
]; | ]; | ||||
const deviceID = request.deviceID ?? 'placeholder'; | |||||
ashoat: I don't think we need a concept of a `deviceID` separate from the `devicePublicKey` | |||||
const userPublicKey = request.userPublicKey ?? 'placeholder'; | |||||
ashoatUnsubmitted Not Done Inline ActionsI think this should be a devicePublicKey ashoat: I think this should be a `devicePublicKey` | |||||
handleAsyncPromise( | |||||
rustAPI.registerUser( | |||||
id, | |||||
deviceID, | |||||
request.username, | |||||
request.password, | |||||
userPublicKey, | |||||
), | |||||
); | |||||
tomekUnsubmitted Not Done Inline ActionsAre we able to successfully register the account using placeholders? I guess these are needed when older clients try to register, but what would be the result of calling this function with these values? tomek: Are we able to successfully register the account using `placeholder`s? I guess these are needed… | |||||
return { | return { | ||||
id, | id, | ||||
rawMessageInfos, | rawMessageInfos, | ||||
currentUserInfo, | currentUserInfo, | ||||
cookieChange: { | cookieChange: { | ||||
threadInfos: threadsResult.threadInfos, | threadInfos: threadsResult.threadInfos, | ||||
userInfos: values(userInfos), | userInfos: values(userInfos), | ||||
}, | }, | ||||
▲ Show 20 Lines • Show All 105 Lines • Show Last 20 Lines |
I don't think we need a concept of a deviceID separate from the devicePublicKey