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  }