reorg status integration
This commit is contained in:
parent
0459dd06e5
commit
f16863ab2d
|
@ -2,7 +2,9 @@ import NimQml
|
||||||
import applicationView
|
import applicationView
|
||||||
import chats
|
import chats
|
||||||
import state
|
import state
|
||||||
import status
|
|
||||||
|
import status/core as status
|
||||||
|
import status/test as status_test
|
||||||
|
|
||||||
proc mainProc() =
|
proc mainProc() =
|
||||||
# From QT docs:
|
# From QT docs:
|
||||||
|
@ -21,12 +23,12 @@ proc mainProc() =
|
||||||
|
|
||||||
status.init()
|
status.init()
|
||||||
|
|
||||||
status.setupNewAccount()
|
status_test.setupNewAccount()
|
||||||
discard status.addPeer("enode://2c8de3cbb27a3d30cbb5b3e003bc722b126f5aef82e2052aaef032ca94e0c7ad219e533ba88c70585ebd802de206693255335b100307645ab5170e88620d2a81@47.244.221.14:443")
|
discard status_test.addPeer("enode://2c8de3cbb27a3d30cbb5b3e003bc722b126f5aef82e2052aaef032ca94e0c7ad219e533ba88c70585ebd802de206693255335b100307645ab5170e88620d2a81@47.244.221.14:443")
|
||||||
echo status.callPrivateRPC("{\"jsonrpc\":\"2.0\", \"method\":\"wakuext_requestMessages\", \"params\":[{\"topics\": [\"0x7998f3c8\"]}], \"id\": 1}")
|
echo status.callPrivateRPC("{\"jsonrpc\":\"2.0\", \"method\":\"wakuext_requestMessages\", \"params\":[{\"topics\": [\"0x7998f3c8\"]}], \"id\": 1}")
|
||||||
|
|
||||||
# result.accountResult = status.queryAccounts()
|
# result.accountResult = status.queryAccounts()
|
||||||
status.subscribeToTest()
|
status_test.subscribeToTest()
|
||||||
|
|
||||||
let logic = newApplicationView(app, status.callPrivateRPC)
|
let logic = newApplicationView(app, status.callPrivateRPC)
|
||||||
defer: logic.delete
|
defer: logic.delete
|
||||||
|
|
|
@ -0,0 +1,60 @@
|
||||||
|
import libstatus
|
||||||
|
import json
|
||||||
|
import utils
|
||||||
|
|
||||||
|
proc startMessenger*() =
|
||||||
|
let payload = %* {
|
||||||
|
"jsonrpc": "2.0",
|
||||||
|
"id": 3, #TODO:
|
||||||
|
"method": "startMessenger".prefix,
|
||||||
|
"params": []
|
||||||
|
}
|
||||||
|
discard $libstatus.callPrivateRPC($payload)
|
||||||
|
# TODO: create template for error handling
|
||||||
|
|
||||||
|
proc loadFilters*(chatId: string) =
|
||||||
|
let payload = %* {
|
||||||
|
"jsonrpc": "2.0",
|
||||||
|
"id": 3, #TODO:
|
||||||
|
"method": "loadFilters".prefix,
|
||||||
|
"params": [
|
||||||
|
[{
|
||||||
|
"ChatID": chatId,
|
||||||
|
"OneToOne": false
|
||||||
|
}]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
discard $libstatus.callPrivateRPC($payload)
|
||||||
|
|
||||||
|
proc saveChat*(chatId: string) =
|
||||||
|
let payload = %* {
|
||||||
|
"jsonrpc": "2.0",
|
||||||
|
"id": 4,
|
||||||
|
"method": "saveChat".prefix,
|
||||||
|
"params": [ #TODO: determine where do these values come from
|
||||||
|
{
|
||||||
|
"lastClockValue": 0,
|
||||||
|
"color": "#51d0f0",
|
||||||
|
"name": chatId,
|
||||||
|
"lastMessage": nil,
|
||||||
|
"active": true,
|
||||||
|
"id": chatId,
|
||||||
|
"unviewedMessagesCount": 0,
|
||||||
|
"chatType": 2,
|
||||||
|
"timestamp": 1588940692659
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
discard $libstatus.callPrivateRPC($payload)
|
||||||
|
|
||||||
|
proc chatMessages*(chatId: string) =
|
||||||
|
let payload = %* {
|
||||||
|
"jsonrpc": "2.0",
|
||||||
|
"id": 3, #TODO:
|
||||||
|
"method": "chatMessages".prefix,
|
||||||
|
"params": [
|
||||||
|
chatId, nil, 20
|
||||||
|
]
|
||||||
|
}
|
||||||
|
discard $libstatus.callPrivateRPC($payload)
|
||||||
|
# TODO: create template for error handling
|
|
@ -0,0 +1,15 @@
|
||||||
|
import libstatus
|
||||||
|
import signals
|
||||||
|
import types
|
||||||
|
|
||||||
|
proc setSignalHandler(signalHandler: SignalCallback) =
|
||||||
|
libstatus.setSignalEventCallback(signalHandler)
|
||||||
|
|
||||||
|
proc init*() =
|
||||||
|
setSignalHandler(onSignal)
|
||||||
|
|
||||||
|
proc callRPC*(inputJSON: string): string =
|
||||||
|
return $libstatus.callRPC(inputJSON)
|
||||||
|
|
||||||
|
proc callPrivateRPC*(inputJSON: string): string =
|
||||||
|
return $libstatus.callPrivateRPC(inputJSON)
|
|
@ -1,3 +1,5 @@
|
||||||
|
import types
|
||||||
|
|
||||||
proc hashMessage*(p0: cstring): cstring {.importc: "HashMessage".}
|
proc hashMessage*(p0: cstring): cstring {.importc: "HashMessage".}
|
||||||
|
|
||||||
proc initKeystore*(keydir: cstring): cstring {.importc: "InitKeystore".}
|
proc initKeystore*(keydir: cstring): cstring {.importc: "InitKeystore".}
|
||||||
|
@ -16,6 +18,4 @@ proc callPrivateRPC*(inputJSON: cstring): cstring {.importc: "CallPrivateRPC".}
|
||||||
|
|
||||||
proc addPeer*(peer: cstring): cstring {.importc: "AddPeer".}
|
proc addPeer*(peer: cstring): cstring {.importc: "AddPeer".}
|
||||||
|
|
||||||
type SignalCallback* = proc(eventMessage: cstring): void
|
|
||||||
|
|
||||||
proc setSignalEventCallback*(callback: SignalCallback) {.importc: "SetSignalEventCallback".}
|
proc setSignalEventCallback*(callback: SignalCallback) {.importc: "SetSignalEventCallback".}
|
|
@ -1,9 +1,19 @@
|
||||||
import libstatus
|
import types
|
||||||
|
import json
|
||||||
|
|
||||||
var onSignal*: SignalCallback = proc(p0: cstring): void =
|
var onSignal*: SignalCallback = proc(p0: cstring): void =
|
||||||
setupForeignThreadGc()
|
setupForeignThreadGc()
|
||||||
# TODO: Dispatch depending on message type $jsonSignal["type"].getStr
|
# TODO: Dispatch depending on message type $jsonSignal["type"].getStr
|
||||||
# Consider also have an intermediate object with an enum for type
|
# Consider also have an intermediate object with an enum for type
|
||||||
# So you do not have to deal with json objects but with a nim type
|
# So you do not have to deal with json objects but with a nim type
|
||||||
|
|
||||||
|
let jsonSignal = ($p0).parseJson
|
||||||
|
let messageType = $jsonSignal["type"].getStr
|
||||||
|
|
||||||
|
case messageType:
|
||||||
|
of "messages.new":
|
||||||
echo $p0
|
echo $p0
|
||||||
|
else:
|
||||||
|
echo messageType #TODO: do something
|
||||||
|
|
||||||
tearDownForeignThreadGc()
|
tearDownForeignThreadGc()
|
|
@ -1,7 +1,12 @@
|
||||||
import os
|
import os
|
||||||
|
import core
|
||||||
import libstatus
|
import libstatus
|
||||||
import json
|
import json
|
||||||
import signals
|
import chat
|
||||||
|
|
||||||
|
# THIS FILE IS FOR TESTING STATUS FUNCTIONALITY
|
||||||
|
# ONCE TEST IS DONE, SPLIT THE CODE TO INDIVIDUAL NIM FILES
|
||||||
|
|
||||||
|
|
||||||
const datadir = "./data/"
|
const datadir = "./data/"
|
||||||
const keystoredir = "./data/keystore/"
|
const keystoredir = "./data/keystore/"
|
||||||
|
@ -12,15 +17,6 @@ proc recreateDir(dirname: string) =
|
||||||
removeDir(dirname)
|
removeDir(dirname)
|
||||||
createDir(dirname)
|
createDir(dirname)
|
||||||
|
|
||||||
proc setSignalHandler(signalHandler: SignalCallback) =
|
|
||||||
libstatus.setSignalEventCallback(signalHandler)
|
|
||||||
|
|
||||||
proc init*() =
|
|
||||||
|
|
||||||
|
|
||||||
setSignalHandler(onSignal)
|
|
||||||
|
|
||||||
|
|
||||||
proc queryAccounts*(): string =
|
proc queryAccounts*(): string =
|
||||||
var payload = %* {
|
var payload = %* {
|
||||||
"jsonrpc": "2.0",
|
"jsonrpc": "2.0",
|
||||||
|
@ -29,63 +25,15 @@ proc queryAccounts*(): string =
|
||||||
[]
|
[]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
var response = $libstatus.callPrivateRPC($payload)
|
var response = callPrivateRPC($payload)
|
||||||
echo response
|
echo response
|
||||||
result = parseJson(response)["result"][0].getStr()
|
result = parseJson(response)["result"][0].getStr()
|
||||||
|
|
||||||
|
|
||||||
proc subscribeToTest*() =
|
proc subscribeToTest*() =
|
||||||
var result = ""
|
loadFilters("test")
|
||||||
|
saveChat("test")
|
||||||
var payload = %* {
|
chatMessages("test")
|
||||||
"jsonrpc": "2.0",
|
|
||||||
"id": 3,
|
|
||||||
"method": "wakuext_startMessenger",
|
|
||||||
"params": []
|
|
||||||
}
|
|
||||||
result = $libstatus.callPrivateRPC($payload)
|
|
||||||
|
|
||||||
payload = %* {
|
|
||||||
"jsonrpc": "2.0",
|
|
||||||
"id": 3,
|
|
||||||
"method": "wakuext_loadFilters",
|
|
||||||
"params": [
|
|
||||||
[{
|
|
||||||
"ChatID": "test",
|
|
||||||
"OneToOne": false
|
|
||||||
}]
|
|
||||||
]
|
|
||||||
}
|
|
||||||
result = $libstatus.callPrivateRPC($payload)
|
|
||||||
|
|
||||||
payload = %* {
|
|
||||||
"jsonrpc": "2.0",
|
|
||||||
"id": 4,
|
|
||||||
"method": "wakuext_saveChat",
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"lastClockValue": 0,
|
|
||||||
"color": "#51d0f0",
|
|
||||||
"name": "test",
|
|
||||||
"lastMessage": nil,
|
|
||||||
"active": true,
|
|
||||||
"id": "test",
|
|
||||||
"unviewedMessagesCount": 0,
|
|
||||||
"chatType": 2,
|
|
||||||
"timestamp": 1588940692659
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
result = $libstatus.callPrivateRPC($payload)
|
|
||||||
|
|
||||||
payload = %* {
|
|
||||||
"jsonrpc": "2.0",
|
|
||||||
"id": 3,
|
|
||||||
"method": "wakuext_chatMessages",
|
|
||||||
"params": [
|
|
||||||
"test", nil, 20
|
|
||||||
]
|
|
||||||
}
|
|
||||||
result = $libstatus.callPrivateRPC($payload)
|
|
||||||
|
|
||||||
proc setupNewAccount*() =
|
proc setupNewAccount*() =
|
||||||
# Deleting directories
|
# Deleting directories
|
||||||
|
@ -356,15 +304,5 @@ proc setupNewAccount*() =
|
||||||
if saveResult["error"].getStr == "":
|
if saveResult["error"].getStr == "":
|
||||||
echo "Account saved succesfully"
|
echo "Account saved succesfully"
|
||||||
|
|
||||||
|
|
||||||
proc callRPC*(inputJSON: string): string =
|
|
||||||
return $libstatus.callRPC(inputJSON)
|
|
||||||
|
|
||||||
proc callPrivateRPC*(inputJSON: string): string =
|
|
||||||
return $libstatus.callPrivateRPC(inputJSON)
|
|
||||||
|
|
||||||
proc addPeer*(peer: string): string =
|
proc addPeer*(peer: string): string =
|
||||||
return $libstatus.addPeer(peer)
|
return $libstatus.addPeer(peer)
|
||||||
|
|
||||||
# proc onMessage*(callback: proc(message: string)): void =
|
|
||||||
# $libstatus.setSignalEventCallback(callback)
|
|
|
@ -0,0 +1 @@
|
||||||
|
type SignalCallback* = proc(eventMessage: cstring): void
|
|
@ -0,0 +1,6 @@
|
||||||
|
proc isWakuEnabled(): bool =
|
||||||
|
true # TODO:
|
||||||
|
|
||||||
|
proc prefix*(methodName: string): string =
|
||||||
|
result = if isWakuEnabled(): "wakuext_" else: "shhext_"
|
||||||
|
result = result & methodName
|
Loading…
Reference in New Issue