UNPKG

@amityco/ts-sdk-react-native

Version:

Amity Social Cloud Typescript SDK

49 lines (42 loc) 1.55 kB
import { getActiveClient } from '~/client/api'; import { ingestInCache } from '~/cache/api/ingestInCache'; import { convertChannelMarkerResponse, convertSubChannelMarkerResponse } from '~/utils/marker'; /** * ```js * import { MessageRepository } from '@amityco/ts-sdk-react-native' * const success = await MessageRepository.markAsDelivered('subChannelId', 'messageId') * ``` * * Update `deliveredToSegment` in {@link Amity.SubChannelMarker} * * @param subChannelId the ID of the {@link Amity.SubChannel} of message * @param messageId the ID of the {@link Amity.Message} to mark delivered * @returns A success boolean if the {@link Amity.SubChannel} was updated * * @category Message API * @async */ export const markAsDelivered = async ( subChannelId: Amity.Message['subChannelId'], messageId: Amity.Message['messageId'], ): Promise<boolean> => { const client = getActiveClient(); client.log('message/markAsDelivered', subChannelId, messageId); const { data } = await client.http.put<Amity.MarkDeliveredPayload>( `/api/v1/markers/message-feeds/${subChannelId}/mark-delivering`, { messageId }, ); const { userMarkers, userEntityMarkers, userFeedMarkers, ...rest } = data; const cachedAt = client.cache && Date.now(); if (client.cache) ingestInCache( { userMarkers, userEntityMarkers: convertChannelMarkerResponse(userEntityMarkers), userFeedMarkers: convertSubChannelMarkerResponse(userFeedMarkers), ...rest, }, { cachedAt }, ); return true; };