github.com/grokify/go-ringcentral-client@v0.3.31/engagedigital/v1/examples/channel_update/main.go (about) 1 package main 2 3 import ( 4 "context" 5 "fmt" 6 "log" 7 8 "github.com/antihax/optional" 9 "github.com/grokify/mogo/fmt/fmtutil" 10 "github.com/jessevdk/go-flags" 11 12 engagedigital "github.com/grokify/go-ringcentral-client/engagedigital/v1/client" 13 utils "github.com/grokify/go-ringcentral-client/engagedigital/v1/util" 14 ) 15 16 type options struct { 17 Site string `short:"s" long:"site" description:"A site" required:"true"` 18 Token string `short:"t" long:"token" description:"A token" required:"true"` 19 } 20 21 func main() { 22 opts := options{} 23 _, err := flags.Parse(&opts) 24 if err != nil { 25 log.Fatal(err) 26 } 27 28 client := utils.NewApiClient(opts.Site, opts.Token) 29 30 info, resp, err := client.ChannelsApi.GetAllChannels(context.Background(), nil) 31 if err != nil { 32 log.Fatal(err) 33 } else if resp.StatusCode != 200 { 34 log.Fatal(resp.StatusCode) 35 } 36 channelLabel := "realtime" 37 channel := engagedigital.Channel{} 38 match := false 39 for _, chanTry := range info.Records { 40 if chanTry.Label == channelLabel { 41 channel = chanTry 42 match = true 43 break 44 } 45 } 46 if !match { 47 log.Fatal("Didn't find channel") 48 } 49 apiOpts := &engagedigital.UpdateChannelOpts{} 50 if channel.HardCapability == 5 { 51 apiOpts.HardCapability = optional.NewInt32(7) 52 } else { 53 apiOpts.HardCapability = optional.NewInt32(5) 54 } 55 56 info2, resp, err := client.ChannelsApi.UpdateChannel( 57 context.Background(), channel.Id, apiOpts) 58 if err != nil { 59 log.Fatal(err) 60 } else if resp.StatusCode != 200 { 61 log.Fatal(resp.StatusCode) 62 } 63 fmtutil.PrintJSON(info2) 64 65 fmt.Println("DONE") 66 }