UNPKG

@pusher/chatkit

Version:

Pusher Chatkit client library for browsers and react native

61 lines (52 loc) 1.46 kB
import { contains } from 'ramda' import { extractQueryParams } from './utils' export const parseBasicRoom = data => ({ createdAt: data.created_at, createdByUserId: data.created_by_id, deletedAt: data.deletedAt, id: data.id, isPrivate: data.private, name: data.name, updatedAt: data.updated_at }) export const parseBasicUser = data => ({ avatarURL: data.avatar_url, createdAt: data.created_at, customData: data.custom_data, id: data.id, name: data.name, updatedAt: data.updated_at }) export const parsePresence = data => ({ state: contains(data.state, ['online', 'offline']) ? data.state : 'unknown' }) export const parseBasicMessage = data => ({ id: data.id, senderId: data.user_id, roomId: data.room_id, text: data.text, createdAt: data.created_at, updatedAt: data.updated_at, attachment: data.attachment && parseMessageAttachment(data.attachment) }) export const parseFetchedAttachment = data => ({ file: { name: data.file.name, bytes: data.file.bytes, lastModified: data.file.last_modified }, link: data.resource_link, ttl: data.ttl }) export const parseBasicCursor = data => ({ position: data.position, updatedAt: data.updated_at, userId: data.user_id, roomId: data.room_id, type: data.cursor_type }) const parseMessageAttachment = data => ({ link: data.resource_link, type: data.type, fetchRequired: extractQueryParams(data.resource_link).chatkit_link === 'true' })