react-native-studia
Version:
60 lines (44 loc) • 1.89 kB
JavaScript
// @flow
import type { StudiaManager } from './StudiaManager'
import type { NativePeer } from './StudiaModules'
import type { Subscriber, Base64 } from './Types'
import { Subscription, Socket, PeerState, Feed } from './Types'
import { Message } from './Message'
import {
StudiaError
} from './StudiaError'
export class Peer implements NativePeer {
_manager: StudiaManager
id: Subscriber
name: string
isReachable: boolean
icon: ?Base64
constructor(nativePeer: NativePeer, manager: StudiaManager) {
Object.assign(this, nativePeer, { _manager: manager })
}
getFeeds(callback: (error: ?StudiaError, feeds: ?Feed[]) => void) : Subscription {
return this._manager.getPeerFeeds(this.id, callback)
}
getMessages(identityId: Subscriber, callback: (error: ?StudiaError, messages: ?Message[]) => void) : Subscription {
return this._manager.getPrivateMessages(identityId, this.id, callback)
}
getSocket(identityId: Subscriber, callback: (error: ?StudiaError) => void): Socket<Message> {
return this._manager.getMessageSocket(identityId, this.id, callback)
}
getState(identityId: Subscriber) : Promise<$Keys<typeof PeerState>> {
return this._manager.getPeerState(identityId, this.id)
}
onMessageReceived(listener: (message: Message) => void) : Subscription {
return this._manager.onMessageReceived(listener)
}
onMessageDelivered(listener: (message: Message) => void) : Subscription {
return this._manager.onMessageDelivered(listener)
}
onFeedAdded(listener: (feed: Feed) => void) : Subscription {
return this._manager.onFeedAdded(listener)
}
// onFeedReset(listener: (feeds: Feed[]) => void) : Subscription {
// return this._manager.onFeedReset(listener)
// }
}