feat: add functions to retrieve message history and check if node is started
This commit is contained in:
parent
f00c3d267a
commit
c616fade27
|
@ -64,6 +64,11 @@ class ReactNativeModule(reactContext: ReactApplicationContext) : ReactContextBas
|
|||
promise.resolve(Gowaku.stop())
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
fun isStarted(promise: Promise) {
|
||||
promise.resolve(Gowaku.isStarted())
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
fun peerID(promise: Promise) {
|
||||
promise.resolve(Gowaku.peerID())
|
||||
|
|
|
@ -21,6 +21,10 @@ RCT_EXTERN_METHOD(stop:
|
|||
(RCTPromiseResolveBlock)resolve
|
||||
withRejecter:(RCTPromiseRejectBlock)reject)
|
||||
|
||||
RCT_EXTERN_METHOD(isStarted:
|
||||
(RCTPromiseResolveBlock)resolve
|
||||
withRejecter:(RCTPromiseRejectBlock)reject)
|
||||
|
||||
RCT_EXTERN_METHOD(peerID:
|
||||
(RCTPromiseResolveBlock)resolve
|
||||
withRejecter:(RCTPromiseRejectBlock)reject)
|
||||
|
@ -125,4 +129,10 @@ RCT_EXTERN_METHOD(decodeAsymmetric:(NSString *)msg
|
|||
withResolver:(RCTPromiseResolveBlock)resolve
|
||||
withRejecter:(RCTPromiseRejectBlock)reject)
|
||||
|
||||
RCT_EXTERN_METHOD(storeQuery:(NSString *)query
|
||||
withPeerID:(NSString *)peerID
|
||||
withMs:(nonnull NSNumber *)ms
|
||||
withResolver:(RCTPromiseResolveBlock)resolve
|
||||
withRejecter:(RCTPromiseRejectBlock)reject)
|
||||
|
||||
@end
|
||||
|
|
|
@ -62,6 +62,11 @@ class ReactNative: RCTEventEmitter {
|
|||
resolve(GowakuStop())
|
||||
}
|
||||
|
||||
@objc(isStarted:withRejecter:)
|
||||
func stop(_ resolve:RCTPromiseResolveBlock, withRejecter reject:RCTPromiseRejectBlock) -> Void {
|
||||
resolve(GowakuIsStarted())
|
||||
}
|
||||
|
||||
@objc(peerID:withRejecter:)
|
||||
func peerID(_ resolve:RCTPromiseResolveBlock, withRejecter reject:RCTPromiseRejectBlock) -> Void {
|
||||
resolve(GowakuPeerID())
|
||||
|
@ -157,4 +162,9 @@ class ReactNative: RCTEventEmitter {
|
|||
resolve(GowakuDecodeAsymmetric(msg, privateKey))
|
||||
}
|
||||
|
||||
@objc(storeQuery:withPeerID:withMs:withResolver:withRejecter:)
|
||||
func storeQuery(queryJSON: String, peerID: String, ms: Int, resolve:RCTPromiseResolveBlock,reject:RCTPromiseRejectBlock) -> Void {
|
||||
resolve(GowakuStoreQuery(queryJSON, peerID, ms))
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -93,6 +93,17 @@ export function stop(): Promise<void> {
|
|||
});
|
||||
}
|
||||
|
||||
export function isStarted(): Promise<Boolean> {
|
||||
return new Promise<Boolean>(async (resolve, reject) => {
|
||||
let response = JSON.parse(await ReactNative.isStarted());
|
||||
if(response.error){
|
||||
reject(response.error);
|
||||
} else {
|
||||
resolve(response.result);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
export function peerID(): Promise<string> {
|
||||
return new Promise<string>(async (resolve, reject) => {
|
||||
let response = JSON.parse(await ReactNative.peerID());
|
||||
|
@ -295,11 +306,6 @@ export function relayUnsubscribe(topic: String = ""): Promise<void> {
|
|||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
export function lightpushPublish(msg: WakuMessage, topic: String = "", peerID: String = "", ms: Number = 0): Promise<string> {
|
||||
return new Promise<string>(async (resolve, reject) => {
|
||||
let messageJSON = JSON.stringify(msg)
|
||||
|
@ -361,4 +367,37 @@ export function peers(): Promise<Array<Peer>> {
|
|||
})
|
||||
}
|
||||
|
||||
// TODO: storeQuery
|
||||
export class Index {
|
||||
digest: Uint8Array = new Uint8Array();
|
||||
receiverTime: Number = 0
|
||||
senderTime: Number = 0
|
||||
pubsubTopic: String = ""
|
||||
}
|
||||
export class PagingOptions {
|
||||
pageSize: Number = 0
|
||||
cursor: Index | null = null
|
||||
forward: Boolean = false
|
||||
}
|
||||
export class StoreQuery {
|
||||
pubsubTopic: String = ""
|
||||
contentFilters: Array<String> = Array()
|
||||
startTime: Number = 0
|
||||
endTime: Number = 0
|
||||
pagingOptions: PagingOptions | null = null
|
||||
}
|
||||
|
||||
export function storeQuery(query: StoreQuery, peerID: String = "", ms: Number = 0): Promise<string> {
|
||||
return new Promise<string>(async (resolve, reject) => {
|
||||
let queryJSON = JSON.stringify(query)
|
||||
let response = JSON.parse(await ReactNative.storeQuery(queryJSON, peerID, ms));
|
||||
|
||||
console.log("STORE RESPONSE:")
|
||||
console.log(response)
|
||||
|
||||
if(response.error){
|
||||
reject(response.error);
|
||||
} else {
|
||||
resolve(response.result);
|
||||
}
|
||||
});
|
||||
}
|
Loading…
Reference in New Issue