UNPKG

@amityco/ts-sdk-react-native

Version:

Amity Social Cloud Typescript SDK

38 lines (30 loc) 1.02 kB
import { Platform } from 'react-native'; import { getActiveClient } from './activeClient'; import { getDeviceId } from '~/core/device'; import { ASCApiError, ASCInvalidParameterError } from '~/core/errors'; export const registerPushNotification = async (deviceToken: string): Promise<boolean> => { const client = getActiveClient(); let platform: 'ios' | 'android'; if (Platform.OS === 'ios' || Platform.OS === 'android') { platform = Platform.OS; } else { throw new ASCInvalidParameterError('Unsupported platform'); } const deviceId = await getDeviceId(); const { data: { status, error }, } = await client.http.post<{ status: 'success' | 'error'; error?: string }>( '/v1/notification', { userId: client.userId, deviceId, platform, token: deviceToken, }, { headers: { 'X-API-Key': client.apiKey } }, ); if (error) { throw new ASCApiError(error, Amity.ServerError.BUSINESS_ERROR, Amity.ErrorLevel.ERROR); } return status === 'success'; };