Skip to content
Snippets Groups Projects
Commit 3b163301 authored by Jono Wenger's avatar Jono Wenger
Browse files

Merge branch 'XX-4521/makeJoinChannelBlocking' into 'release'

XX-4521 / Make JoinChannel blocking

See merge request !75
parents f76b8367 e7512318
No related branches found
No related tags found
2 merge requests!75XX-4521 / Make JoinChannel blocking,!67fix for latest client release
......@@ -10,7 +10,7 @@ require (
github.com/pkg/errors v0.9.1
github.com/spf13/cobra v1.5.0
github.com/spf13/jwalterweatherman v1.1.0
gitlab.com/elixxir/client/v4 v4.3.12-0.20230228173442-a9ee1c81b8b1
gitlab.com/elixxir/client/v4 v4.3.12-0.20230228180957-c62cc589d560
gitlab.com/elixxir/crypto v0.0.7-0.20230214180106-72841fd1e426
gitlab.com/elixxir/primitives v0.0.3-0.20230214180039-9a25e2d3969c
gitlab.com/xx_network/crypto v0.0.5-0.20230214003943-8a09396e95dd
......@@ -27,12 +27,10 @@ require (
github.com/cloudflare/circl v1.2.0 // indirect
github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect
github.com/elliotchance/orderedmap v1.4.0 // indirect
github.com/fsnotify/fsnotify v1.5.4 // indirect
github.com/gobwas/ws v1.1.0 // indirect
github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3 // indirect
github.com/golang/protobuf v1.5.2 // indirect
github.com/gorilla/websocket v1.5.0 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/improbable-eng/grpc-web v0.15.0 // indirect
github.com/inconshreveable/mousetrap v1.0.0 // indirect
github.com/jinzhu/inflection v1.0.0 // indirect
......@@ -40,27 +38,18 @@ require (
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/compress v1.15.9 // indirect
github.com/klauspost/cpuid/v2 v2.1.0 // indirect
github.com/magiconair/properties v1.8.6 // indirect
github.com/mattn/go-isatty v0.0.14 // indirect
github.com/mattn/go-sqlite3 v1.14.15 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 // indirect
github.com/oasisprotocol/curve25519-voi v0.0.0-20221003100820-41fad3beba17 // indirect
github.com/oasisprotocol/deoxysii v0.0.0-20220228165953-2091330c22b7 // indirect
github.com/pelletier/go-toml v1.9.5 // indirect
github.com/pelletier/go-toml/v2 v2.0.2 // indirect
github.com/pkg/profile v1.6.0 // indirect
github.com/rivo/uniseg v0.4.3 // indirect
github.com/rs/cors v1.8.2 // indirect
github.com/sethvargo/go-diceware v0.3.0 // indirect
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e // indirect
github.com/soheilhy/cmux v0.1.5 // indirect
github.com/spf13/afero v1.9.2 // indirect
github.com/spf13/cast v1.5.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/spf13/viper v1.12.0 // indirect
github.com/subosito/gotenv v1.4.0 // indirect
github.com/ttacon/builder v0.0.0-20170518171403-c099f663e1c2 // indirect
github.com/ttacon/libphonenumber v1.2.1 // indirect
github.com/tyler-smith/go-bip39 v1.1.0 // indirect
......@@ -81,9 +70,6 @@ require (
google.golang.org/genproto v0.0.0-20220822174746-9e6da59bd2fc // indirect
google.golang.org/grpc v1.49.0 // indirect
google.golang.org/protobuf v1.28.1 // indirect
gopkg.in/ini.v1 v1.66.6 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
gorm.io/driver/sqlite v1.4.4 // indirect
gorm.io/gorm v1.24.3 // indirect
nhooyr.io/websocket v1.8.7 // indirect
......
This diff is collapsed.
......@@ -749,18 +749,23 @@ func (cm *ChannelsManager) GenerateChannel(_ js.Value, args []js.Value) any {
//
// <Speakeasy-v3:Test_Channel|description:Channel description.|level:Public|created:1666718081766741100|secrets:+oHcqDbJPZaT3xD5NcdLY8OjOMtSQNKdKgLPmr7ugdU=|rCI0wr01dHFStjSFMvsBzFZClvDIrHLL5xbCOPaUOJ0=|493|1|7cBhJxVfQxWo+DypOISRpeWdQBhuQpAZtUbQHjBm8NQ=>
//
// Returns:
// - JSON of [bindings.ChannelInfo], which describes all relevant channel info
// (Uint8Array).
// - Throws a TypeError if joining the channel fails.
// Returns a promise:
// - Resolves to the JSON of [bindings.ChannelInfo], which describes all
// relevant channel information (Uint8Array).
// - Rejected with an error if joining the channel fails.
func (cm *ChannelsManager) JoinChannel(_ js.Value, args []js.Value) any {
ci, err := cm.api.JoinChannel(args[0].String())
channelPretty := args[0].String()
promiseFn := func(resolve, reject func(args ...any) js.Value) {
ci, err := cm.api.JoinChannel(channelPretty)
if err != nil {
utils.Throw(utils.TypeError, err)
return nil
reject(utils.JsTrace(err))
} else {
resolve(utils.CopyBytesToJS(ci))
}
}
return utils.CopyBytesToJS(ci)
return utils.CreatePromise(promiseFn)
}
// LeaveChannel leaves the given channel. It will return the error
......@@ -769,18 +774,22 @@ func (cm *ChannelsManager) JoinChannel(_ js.Value, args []js.Value) any {
// Parameters:
// - args[0] - Marshalled bytes of the channel [id.ID] (Uint8Array).
//
// Returns:
// - Throws a TypeError if the channel does not exist.
// Returns a promise:
// - Resolves on success (void).
// - Rejected with an error if the channel does not exist.
func (cm *ChannelsManager) LeaveChannel(_ js.Value, args []js.Value) any {
marshalledChanId := utils.CopyBytesToGo(args[0])
promiseFn := func(resolve, reject func(args ...any) js.Value) {
err := cm.api.LeaveChannel(marshalledChanId)
if err != nil {
utils.Throw(utils.TypeError, err)
return nil
reject(utils.JsTrace(err))
} else {
resolve()
}
}
return nil
return utils.CreatePromise(promiseFn)
}
// ReplayChannel replays all messages from the channel within the network's
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment