Changeset View
Changeset View
Standalone View
Standalone View
keyserver/src/responders/message-responders.js
Show All 10 Lines | import { | ||||
type FetchMessageInfosResponse, | type FetchMessageInfosResponse, | ||||
type FetchMessageInfosRequest, | type FetchMessageInfosRequest, | ||||
defaultNumberPerThread, | defaultNumberPerThread, | ||||
type SendMessageResponse, | type SendMessageResponse, | ||||
} from 'lib/types/message-types'; | } from 'lib/types/message-types'; | ||||
import type { TextMessageData } from 'lib/types/messages/text'; | import type { TextMessageData } from 'lib/types/messages/text'; | ||||
import { threadPermissions } from 'lib/types/thread-types'; | import { threadPermissions } from 'lib/types/thread-types'; | ||||
import { ServerError } from 'lib/utils/errors'; | import { ServerError } from 'lib/utils/errors'; | ||||
import { tShape } from 'lib/utils/validation-utils'; | import { tShape, tMediaMessageMedia } from 'lib/utils/validation-utils'; | ||||
import createMessages from '../creators/message-creator'; | import createMessages from '../creators/message-creator'; | ||||
import { | import { | ||||
fetchMessageInfos, | fetchMessageInfos, | ||||
fetchMessageInfoForLocalID, | fetchMessageInfoForLocalID, | ||||
} from '../fetchers/message-fetchers'; | } from '../fetchers/message-fetchers'; | ||||
import { checkThreadPermission } from '../fetchers/thread-permission-fetchers'; | import { checkThreadPermission } from '../fetchers/thread-permission-fetchers'; | ||||
import { fetchMedia } from '../fetchers/upload-fetchers'; | import { fetchMedia } from '../fetchers/upload-fetchers'; | ||||
▲ Show 20 Lines • Show All 56 Lines • ▼ Show 20 Lines | ): Promise<FetchMessageInfosResponse> { | ||||
const response = await fetchMessageInfos( | const response = await fetchMessageInfos( | ||||
viewer, | viewer, | ||||
{ threadCursors: request.cursors }, | { threadCursors: request.cursors }, | ||||
request.numberPerThread ? request.numberPerThread : defaultNumberPerThread, | request.numberPerThread ? request.numberPerThread : defaultNumberPerThread, | ||||
); | ); | ||||
return { ...response, userInfos: {} }; | return { ...response, userInfos: {} }; | ||||
} | } | ||||
const sendMultimediaMessageRequestInputValidator = tShape({ | const sendMultimediaMessageRequestInputValidator = t.union([ | ||||
tShape({ | |||||
threadID: t.String, | threadID: t.String, | ||||
localID: t.String, | localID: t.String, | ||||
mediaIDs: t.list(t.String), | mediaIDs: t.list(t.String), | ||||
}); | }), | ||||
tShape({ | |||||
threadID: t.String, | |||||
localID: t.String, | |||||
mediaMessageContents: t.list(tMediaMessageMedia), | |||||
}), | |||||
]); | |||||
async function multimediaMessageCreationResponder( | async function multimediaMessageCreationResponder( | ||||
viewer: Viewer, | viewer: Viewer, | ||||
input: any, | input: any, | ||||
): Promise<SendMessageResponse> { | ): Promise<SendMessageResponse> { | ||||
const request: SendMultimediaMessageRequest = input; | const request: SendMultimediaMessageRequest = input; | ||||
await validateInput( | await validateInput( | ||||
viewer, | viewer, | ||||
sendMultimediaMessageRequestInputValidator, | sendMultimediaMessageRequestInputValidator, | ||||
▲ Show 20 Lines • Show All 54 Lines • Show Last 20 Lines |