github.com/grokify/go-ringcentral-client@v0.3.31/office/v1/examples/answering_rules/answering_rules.go (about) 1 package main 2 3 import ( 4 "context" 5 "flag" 6 "fmt" 7 "log" 8 "os" 9 10 "github.com/grokify/goauth" 11 "github.com/grokify/mogo/fmt/fmtutil" 12 "github.com/grokify/mogo/net/http/httputilmore" 13 "github.com/joho/godotenv" 14 15 rc "github.com/grokify/go-ringcentral-client/office/v1/client" 16 rcu "github.com/grokify/go-ringcentral-client/office/v1/util" 17 ) 18 19 func loadEnv() error { 20 envPaths := []string{} 21 if len(os.Getenv("ENV_PATH")) > 0 { 22 envPaths = append(envPaths, os.Getenv("ENV_PATH")) 23 } 24 return godotenv.Load(envPaths...) 25 } 26 27 func listRules(apiClient *rc.APIClient) { 28 ctx := context.Background() 29 resp, err := apiClient.CallHandlingSettingsApi.LoadAnsweringRulesList( 30 ctx, "~", "~", &rc.LoadAnsweringRulesListOpts{}) 31 if err != nil { 32 panic(err) 33 } 34 35 err = httputilmore.PrintResponse(resp, true) 36 if err != nil { 37 panic(err) 38 } 39 } 40 41 type DemoConfig struct { 42 ListRules bool 43 } 44 45 func main() { 46 var listRulesFlag = flag.Int("list", 0, "Create user") 47 48 flag.Parse() 49 50 fmt.Printf("[%v]\n", *listRulesFlag) 51 52 cfg := DemoConfig{} 53 if *listRulesFlag != 0 { 54 cfg.ListRules = true 55 } 56 57 fmtutil.PrintJSON(cfg) 58 59 err := loadEnv() 60 if err != nil { 61 log.Fatal(err) 62 } 63 64 apiClient, err := rcu.NewApiClientPassword( 65 goauth.NewCredentialsOAuth2Env("RINGCENTRAL_")) 66 if err != nil { 67 log.Fatal(err) 68 } 69 70 if cfg.ListRules { 71 listRules(apiClient) 72 } 73 74 fmt.Println("DONE") 75 }