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  }