Changeset View
Changeset View
Standalone View
Standalone View
keyserver/src/responders/thread-responders.js
Show All 9 Lines | import { | ||||
type RemoveMembersRequest, | type RemoveMembersRequest, | ||||
type LeaveThreadRequest, | type LeaveThreadRequest, | ||||
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 ThreadFetchMediaRequest, | |||||
threadTypes, | threadTypes, | ||||
} from 'lib/types/thread-types.js'; | } from 'lib/types/thread-types.js'; | ||||
import { values } from 'lib/utils/objects.js'; | import { values } from 'lib/utils/objects.js'; | ||||
import { | import { | ||||
tShape, | tShape, | ||||
tNumEnum, | tNumEnum, | ||||
tColor, | tColor, | ||||
tPassword, | tPassword, | ||||
} from 'lib/utils/validation-utils.js'; | } from 'lib/utils/validation-utils.js'; | ||||
import { | import { | ||||
entryQueryInputValidator, | entryQueryInputValidator, | ||||
verifyCalendarQueryThreadIDs, | verifyCalendarQueryThreadIDs, | ||||
} from './entry-responders.js'; | } from './entry-responders.js'; | ||||
import { createThread } from '../creators/thread-creator.js'; | import { createThread } from '../creators/thread-creator.js'; | ||||
import { deleteThread } from '../deleters/thread-deleters.js'; | import { deleteThread } from '../deleters/thread-deleters.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, | ||||
} from '../updaters/thread-updaters.js'; | } from '../updaters/thread-updaters.js'; | ||||
▲ Show 20 Lines • Show All 129 Lines • ▼ Show 20 Lines | ): Promise<ThreadJoinResult> { | ||||
if (request.calendarQuery) { | if (request.calendarQuery) { | ||||
await verifyCalendarQueryThreadIDs(request.calendarQuery); | await verifyCalendarQueryThreadIDs(request.calendarQuery); | ||||
} | } | ||||
return await joinThread(viewer, request); | return await joinThread(viewer, request); | ||||
} | } | ||||
const threadFetchMediaRequestInputValidator = tShape({ | |||||
threadID: t.String, | |||||
limit: t.Number, | |||||
offset: t.Number, | |||||
}); | |||||
async function threadFetchMediaResponder( | |||||
viewer: Viewer, | |||||
input: any, | |||||
): Promise<ThreadFetchMediaResult> { | |||||
const request: ThreadFetchMediaRequest = input; | |||||
await validateInput(viewer, threadFetchMediaRequestInputValidator, request); | |||||
return await fetchMediaForThread(viewer, request); | |||||
} | |||||
export { | export { | ||||
threadDeletionResponder, | threadDeletionResponder, | ||||
roleUpdateResponder, | roleUpdateResponder, | ||||
memberRemovalResponder, | memberRemovalResponder, | ||||
threadLeaveResponder, | threadLeaveResponder, | ||||
threadUpdateResponder, | threadUpdateResponder, | ||||
threadCreationResponder, | threadCreationResponder, | ||||
threadJoinResponder, | threadJoinResponder, | ||||
threadFetchMediaResponder, | |||||
newThreadRequestInputValidator, | newThreadRequestInputValidator, | ||||
}; | }; |