Changeset View
Changeset View
Standalone View
Standalone View
keyserver/src/responders/thread-responders.js
Show All 11 Lines | import { | ||||
type LeaveThreadResult, | type LeaveThreadResult, | ||||
type UpdateThreadRequest, | type UpdateThreadRequest, | ||||
type ServerNewThreadRequest, | type ServerNewThreadRequest, | ||||
type NewThreadResponse, | type NewThreadResponse, | ||||
type ServerThreadJoinRequest, | type ServerThreadJoinRequest, | ||||
type ThreadJoinResult, | type ThreadJoinResult, | ||||
type ThreadFetchMediaResult, | type ThreadFetchMediaResult, | ||||
type ThreadFetchMediaRequest, | type ThreadFetchMediaRequest, | ||||
type ToggleMessagePinRequest, | |||||
threadTypes, | threadTypes, | ||||
} from 'lib/types/thread-types.js'; | } from 'lib/types/thread-types.js'; | ||||
import { updateUserAvatarRequestValidator } from 'lib/utils/avatar-utils.js'; | import { updateUserAvatarRequestValidator } from 'lib/utils/avatar-utils.js'; | ||||
import { values } from 'lib/utils/objects.js'; | import { values } from 'lib/utils/objects.js'; | ||||
import { | import { | ||||
tShape, | tShape, | ||||
tNumEnum, | tNumEnum, | ||||
tColor, | tColor, | ||||
Show All 9 Lines | |||||
import { fetchMediaForThread } from '../fetchers/upload-fetchers.js'; | import { fetchMediaForThread } from '../fetchers/upload-fetchers.js'; | ||||
import type { Viewer } from '../session/viewer.js'; | import type { Viewer } from '../session/viewer.js'; | ||||
import { | import { | ||||
updateRole, | updateRole, | ||||
removeMembers, | removeMembers, | ||||
leaveThread, | leaveThread, | ||||
updateThread, | updateThread, | ||||
joinThread, | joinThread, | ||||
toggleMessagePinForThread, | |||||
} from '../updaters/thread-updaters.js'; | } from '../updaters/thread-updaters.js'; | ||||
import { validateInput } from '../utils/validation-utils.js'; | import { validateInput } from '../utils/validation-utils.js'; | ||||
const threadDeletionRequestInputValidator = tShape({ | const threadDeletionRequestInputValidator = tShape({ | ||||
threadID: t.String, | threadID: t.String, | ||||
accountPassword: t.maybe(tPassword), | accountPassword: t.maybe(tPassword), | ||||
}); | }); | ||||
▲ Show 20 Lines • Show All 137 Lines • ▼ Show 20 Lines | async function threadFetchMediaResponder( | ||||
viewer: Viewer, | viewer: Viewer, | ||||
input: any, | input: any, | ||||
): Promise<ThreadFetchMediaResult> { | ): Promise<ThreadFetchMediaResult> { | ||||
const request: ThreadFetchMediaRequest = input; | const request: ThreadFetchMediaRequest = input; | ||||
await validateInput(viewer, threadFetchMediaRequestInputValidator, request); | await validateInput(viewer, threadFetchMediaRequestInputValidator, request); | ||||
return await fetchMediaForThread(viewer, request); | return await fetchMediaForThread(viewer, request); | ||||
} | } | ||||
const toggleMessagePinRequestInputValidator = tShape({ | |||||
messageID: t.String, | |||||
action: t.enums.of(['pin', 'unpin']), | |||||
}); | |||||
async function toggleMessagePinResponder( | |||||
viewer: Viewer, | |||||
input: any, | |||||
): Promise<void> { | |||||
const request: ToggleMessagePinRequest = input; | |||||
await validateInput(viewer, toggleMessagePinRequestInputValidator, request); | |||||
await toggleMessagePinForThread(viewer, request); | |||||
} | |||||
export { | export { | ||||
threadDeletionResponder, | threadDeletionResponder, | ||||
roleUpdateResponder, | roleUpdateResponder, | ||||
memberRemovalResponder, | memberRemovalResponder, | ||||
threadLeaveResponder, | threadLeaveResponder, | ||||
threadUpdateResponder, | threadUpdateResponder, | ||||
threadCreationResponder, | threadCreationResponder, | ||||
threadJoinResponder, | threadJoinResponder, | ||||
threadFetchMediaResponder, | threadFetchMediaResponder, | ||||
newThreadRequestInputValidator, | newThreadRequestInputValidator, | ||||
toggleMessagePinResponder, | |||||
}; | }; |