github.com/grokify/go-ringcentral-client@v0.3.31/engagedigital/v1/examples/source_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/errors/errorsutil" 10 "github.com/grokify/mogo/fmt/fmtutil" 11 "github.com/jessevdk/go-flags" 12 13 engagedigital "github.com/grokify/go-ringcentral-client/engagedigital/v1/client" 14 utils "github.com/grokify/go-ringcentral-client/engagedigital/v1/util" 15 ) 16 17 type options struct { 18 Site string `short:"s" long:"site" description:"A site" required:"true"` 19 Token string `short:"t" long:"token" description:"A token" required:"true"` 20 } 21 22 func main() { 23 opts := options{} 24 _, err := flags.Parse(&opts) 25 if err != nil { 26 log.Fatal(err) 27 } 28 29 client := utils.NewApiClient(opts.Site, opts.Token) 30 31 info, resp, err := client.SourcesApi.GetAllSources(context.Background(), nil) 32 if err != nil { 33 err = errorsutil.Wrap(err, "E_GET_ALL_SOURCES") 34 log.Fatal(err) 35 } else if resp.StatusCode != 200 { 36 log.Fatal(resp.StatusCode) 37 } 38 fmtutil.PrintJSON(info) 39 40 for _, source := range info.Records { 41 fmt.Println(">>> INITIAL <<<") 42 fmtutil.PrintJSON(source) 43 newActive := false 44 if !source.Active { 45 newActive = true 46 } 47 opts := &engagedigital.UpdateSourceOpts{ 48 Active: optional.NewBool(newActive), 49 } 50 info, resp, err := client.SourcesApi.UpdateSource( 51 context.Background(), source.Id, opts) 52 if err != nil { 53 err = errorsutil.Wrap(err, "E_UPDATE_SOURCE") 54 log.Fatal(err) 55 } else if resp.StatusCode != 200 { 56 log.Fatal(resp.StatusCode) 57 } 58 fmt.Println(">>> UPDATED <<<") 59 fmtutil.PrintJSON(info) 60 break 61 } 62 63 fmt.Println("DONE") 64 }