From 91513acea2fbac202eb970e9d17ac5681e5aa91c Mon Sep 17 00:00:00 2001 From: Jonathan Rainville Date: Mon, 16 Dec 2024 14:38:09 -0500 Subject: [PATCH] wip simplified keycard api --- src/app/modules/startup/controller.nim | 6 ++++++ src/app/modules/startup/io_interface.nim | 6 ++++++ src/app/modules/startup/module.nim | 6 ++++++ src/app/modules/startup/view.nim | 6 ++++++ src/app_service/service/keycard/service.nim | 11 +++++++++++ ui/app/AppLayouts/Onboarding/views/LoginView.qml | 14 ++++++++++++++ vendor/nim-keycard-go | 2 +- vendor/status-keycard-go | 2 +- 8 files changed, 51 insertions(+), 2 deletions(-) diff --git a/src/app/modules/startup/controller.nim b/src/app/modules/startup/controller.nim index 1090911570..40767ec72f 100644 --- a/src/app/modules/startup/controller.nim +++ b/src/app/modules/startup/controller.nim @@ -529,6 +529,12 @@ proc getKeyUidForSeedPhrase*(self: Controller, seedPhrase: string): string = proc getCurrentKeycardServiceFlow*(self: Controller): keycard_service.KCSFlowType = return self.keycardService.getCurrentFlow() +proc getAppInfoFlow*(self: Controller) = + self.keycardService.getAppInfoFlow() + +proc getMetadataFlow*(self: Controller) = + self.keycardService.getMetadataFlow() + proc getLastReceivedKeycardData*(self: Controller): tuple[flowType: string, flowEvent: KeycardEvent] = return self.keycardService.getLastReceivedKeycardData() diff --git a/src/app/modules/startup/io_interface.nim b/src/app/modules/startup/io_interface.nim index c27d59ad1a..1a9239c8ff 100644 --- a/src/app/modules/startup/io_interface.nim +++ b/src/app/modules/startup/io_interface.nim @@ -41,6 +41,12 @@ method moveToLoadingAppState*(self: AccessInterface) {.base.} = method moveToAppState*(self: AccessInterface) {.base.} = raise newException(ValueError, "No implementation available") +method getAppInfoFlow*(self: AccessInterface) {.base.} = + raise newException(ValueError, "No implementation available") + +method getMetadataFlow*(self: AccessInterface) {.base.} = + raise newException(ValueError, "No implementation available") + method moveToStartupState*(self: AccessInterface) {.base.} = raise newException(ValueError, "No implementation available") diff --git a/src/app/modules/startup/module.nim b/src/app/modules/startup/module.nim index 9a9afca0b4..8fa3c0e16a 100644 --- a/src/app/modules/startup/module.nim +++ b/src/app/modules/startup/module.nim @@ -491,6 +491,12 @@ method checkRepeatedKeycardPinWhileTyping*[T](self: Module[T], pin: string): boo method getSeedPhrase*[T](self: Module[T]): string = return self.controller.getSeedPhrase() +method getAppInfoFlow*[T](self: Module[T]) = + self.controller.getAppInfoFlow() + +method getMetadataFlow*[T](self: Module[T]) = + self.controller.getMetadataFlow() + method getKeycardData*[T](self: Module[T]): string = return self.view.getKeycardData() diff --git a/src/app/modules/startup/view.nim b/src/app/modules/startup/view.nim index 1cf96a4d86..1e9bb38d8e 100644 --- a/src/app/modules/startup/view.nim +++ b/src/app/modules/startup/view.nim @@ -107,6 +107,12 @@ QtObject: proc onQuaternaryActionClicked*(self: View) {.slot.} = self.delegate.onQuaternaryActionClicked() + proc getAppInfoFlow*(self: View) {.slot.} = + self.delegate.getAppInfoFlow() + + proc getMetadataFlow*(self: View) {.slot.} = + self.delegate.getMetadataFlow() + proc onQuinaryActionClicked*(self: View) {.slot.} = self.delegate.onQuinaryActionClicked() diff --git a/src/app_service/service/keycard/service.nim b/src/app_service/service/keycard/service.nim index 86e19f097c..3c4d42f38f 100644 --- a/src/app_service/service/keycard/service.nim +++ b/src/app_service/service/keycard/service.nim @@ -107,6 +107,7 @@ QtObject: debug "initialization response: ", initResp proc processSignal(self: Service, signal: string) = + echo "--- GOT A SIGNAL ", signal var jsonSignal: JsonNode try: jsonSignal = signal.parseJson @@ -167,6 +168,16 @@ QtObject: if self.doLogging: debug "keycardStartFlow", kcServiceCurrFlow=($self.currentFlow), payload=payload, response=response + proc getAppInfoFlow*(self: Service) = + let response = keycard_go.getAppInfoFlow() + + debug "getAppInfoFlow", response=response + + proc getMetadataFlow*(self: Service) = + let response = keycard_go.getMetadataFlow() + + debug "getMetadataFlow", response=response + proc resumeFlow(self: Service, payload: JsonNode) = self.busy = true self.updateLocalPayloadForCurrentFlow(payload) diff --git a/ui/app/AppLayouts/Onboarding/views/LoginView.qml b/ui/app/AppLayouts/Onboarding/views/LoginView.qml index 366fa693c1..53dba1c97a 100644 --- a/ui/app/AppLayouts/Onboarding/views/LoginView.qml +++ b/ui/app/AppLayouts/Onboarding/views/LoginView.qml @@ -198,6 +198,20 @@ Item { font.pixelSize: Constants.onboarding.titleFontSize color: Theme.palette.directColor1 } + StatusButton { + text: qsTr("Get keycard status") + onClicked: { + console.log('Cal getAppInfoFlowl') + startupStore.startupModuleInst.getAppInfoFlow() + } + } + StatusButton { + text: qsTr("Get metadata") + onClicked: { + console.log('Call getMetadataFlow') + startupStore.startupModuleInst.getMetadataFlow() + } + } Item { Layout.fillHeight: d.isRegularLogin } Item { id: userInfo diff --git a/vendor/nim-keycard-go b/vendor/nim-keycard-go index aa05fe490b..9e01fb0cef 160000 --- a/vendor/nim-keycard-go +++ b/vendor/nim-keycard-go @@ -1 +1 @@ -Subproject commit aa05fe490b57023028e242567f52bd124ed87d30 +Subproject commit 9e01fb0cefdd43305d938f6add30b1f3b789ea33 diff --git a/vendor/status-keycard-go b/vendor/status-keycard-go index 96be8e02d7..dc66298e27 160000 --- a/vendor/status-keycard-go +++ b/vendor/status-keycard-go @@ -1 +1 @@ -Subproject commit 96be8e02d7013bb6518f236424cfd2962e636398 +Subproject commit dc66298e27f4dbc9ca8b497374f934577ab2ce51