Skip to content
Snippets Groups Projects
Commit b68f1cd5 authored by Jonah Husson's avatar Jonah Husson
Browse files

Client updates

parent d6189409
No related branches found
No related tags found
No related merge requests found
......@@ -102,7 +102,7 @@ var rootCmd = &cobra.Command{
// Start client
cl, err := xxdk.LoadCmix(
expandedStorageDir, storagePass, xxdk.GetDefaultParams())
expandedStorageDir, storagePass, xxdk.GetDefaultCMixParams())
if err != nil {
jww.FATAL.Panicf("Failed to open client: %+v", err)
}
......@@ -115,8 +115,7 @@ var rootCmd = &cobra.Command{
// Create new identity
stream := cl.GetRng().GetStream()
receptionIdentity, err = xxdk.MakeReceptionIdentity(
stream, cl.GetStorage().GetE2EGroup())
receptionIdentity, err = xxdk.MakeReceptionIdentity(cl)
if err != nil {
jww.FATAL.Panicf("Failed to make identity: %+v", err)
}
......@@ -150,17 +149,21 @@ var rootCmd = &cobra.Command{
// Start provider server to pick up restlike messages on the newly
// generated reception identity
rlSever, err := provider.StartServer(
cl, receptionIdentity, viper.GetString("providerName"))
cl, receptionIdentity, viper.GetString("name"))
if err != nil {
jww.FATAL.Panicf("Failed to start server: %+v", err)
}
contactPath := viper.GetString("contact")
// Create a contact object based on our reception identity
dhpk, err := receptionIdentity.GetDHKeyPrivate()
if err != nil {
jww.FATAL.Panicf("Failed to load dhpk: %+v", err)
}
ct := contact.Contact{
ID: receptionIdentity.ID,
DhPubKey: diffieHellman.GeneratePublicKey( // Generate public key
receptionIdentity.DHKeyPrivate, cl.GetStorage().GetE2EGroup()),
dhpk, cl.GetStorage().GetE2EGroup()),
}
// Output contact to file for distribution
if ep, err := utils.ExpandPath(contactPath); err == nil {
......
......@@ -5,10 +5,11 @@ go 1.17
require (
github.com/spf13/cobra v1.1.1
github.com/spf13/jwalterweatherman v1.1.0
github.com/spf13/pflag v1.0.5
github.com/spf13/viper v1.7.1
gitlab.com/elixxir/client v1.5.1-0.20220623172433-72ec36a6bb38
gitlab.com/elixxir/client v1.5.1-0.20220726194400-d66e7529c07f
gitlab.com/elixxir/crypto v0.0.7-0.20220606201132-c370d5039cea
gitlab.com/xx_network/primitives v0.0.4-0.20220324193139-b292d1ae6e7e
gitlab.com/xx_network/primitives v0.0.4-0.20220712193914-aebd8544396e
)
require (
......@@ -30,7 +31,6 @@ require (
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e // indirect
github.com/spf13/afero v1.5.1 // indirect
github.com/spf13/cast v1.3.1 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/subosito/gotenv v1.2.0 // indirect
github.com/ttacon/builder v0.0.0-20170518171403-c099f663e1c2 // indirect
github.com/ttacon/libphonenumber v1.2.1 // indirect
......@@ -40,7 +40,7 @@ require (
gitlab.com/elixxir/comms v0.0.4-0.20220603231314-e47e4af13326 // indirect
gitlab.com/elixxir/ekv v0.1.7 // indirect
gitlab.com/elixxir/primitives v0.0.3-0.20220606195757-40f7a589347f // indirect
gitlab.com/xx_network/comms v0.0.4-0.20220315161313-76acb14429ac // indirect
gitlab.com/xx_network/comms v0.0.4-0.20220630163702-f3d372ef6acd // indirect
gitlab.com/xx_network/crypto v0.0.5-0.20220606200528-3f886fe49e81 // indirect
gitlab.com/xx_network/ring v0.0.3-0.20220222211904-da613960ad93 // indirect
go.uber.org/ratelimit v0.2.0 // indirect
......
This diff is collapsed.
......@@ -10,8 +10,11 @@ import (
)
const (
providerURI = "xx://provider" // TODO: how is this actually formed?
providerBaseURI = "xx://provider" // TODO: how is this actually formed?
requestEndpoint = "requests"
appointmentEndpoint = "appointments"
defaultPayload = "Provider %s has received your request privately. While they have your information, no one else does."
appointmentPayload = "Provider %s has scheduled your appointment."
)
// StartServer creates a provider server using the restlike API
......@@ -22,8 +25,9 @@ func StartServer(cl *xxdk.Cmix, identity xxdk.ReceptionIdentity, providerName st
return nil, err
}
// Create restlike callback
cb := func(message *restlike.Message) *restlike.Message {
// Create restlike request callback
requestURI := fmt.Sprintf("%s/%s", providerBaseURI, requestEndpoint)
requestCallback := func(message *restlike.Message) *restlike.Message {
jww.INFO.Printf("Received restlike message with payload %s", message.Content)
return &restlike.Message{
Content: []byte(fmt.Sprintf(defaultPayload, providerName)),
......@@ -32,13 +36,31 @@ func StartServer(cl *xxdk.Cmix, identity xxdk.ReceptionIdentity, providerName st
Version: 0,
},
Method: uint32(restlike.Get),
Uri: providerURI,
Uri: requestURI,
Error: "",
}
}
err = rlServer.GetEndpoints().Add(restlike.URI(requestURI), restlike.Get, requestCallback)
if err != nil {
return nil, err
}
// Register endpoint
err = rlServer.GetEndpoints().Add(providerURI, restlike.Get, cb)
// Create restlike appointment callback
appointmentURI := fmt.Sprintf("%s/%s", providerBaseURI, appointmentEndpoint)
appointmentCallback := func(message *restlike.Message) *restlike.Message {
jww.INFO.Printf("Received restlike message with payload %s", message.Content)
return &restlike.Message{
Content: []byte(fmt.Sprintf(appointmentPayload, providerName)),
Headers: &restlike.Headers{
Headers: []byte{},
Version: 0,
},
Method: uint32(restlike.Get),
Uri: appointmentURI,
Error: "",
}
}
err = rlServer.GetEndpoints().Add(restlike.URI(appointmentURI), restlike.Get, appointmentCallback)
if err != nil {
return nil, err
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment