github.com/grokify/go-ringcentral-client@v0.3.31/office/v1/examples/upload_user_profile_image/upload_user_profile_image.go (about)

     1  package main
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  	"log"
     7  	"os"
     8  
     9  	"github.com/grokify/mogo/config"
    10  	"github.com/grokify/mogo/errors/errorsutil"
    11  	"github.com/grokify/mogo/fmt/fmtutil"
    12  	"github.com/grokify/mogo/net/http/httputilmore"
    13  	"github.com/jessevdk/go-flags"
    14  
    15  	ru "github.com/grokify/go-ringcentral-client/office/v1/util"
    16  	ro "github.com/grokify/goauth/ringcentral"
    17  )
    18  
    19  type cliOptions struct {
    20  	File string `short:"f" long:"file" description:"path to image file"`
    21  }
    22  
    23  func main() {
    24  	opts := cliOptions{}
    25  	_, err := flags.Parse(&opts)
    26  	if err != nil {
    27  		log.Fatal(err)
    28  	}
    29  
    30  	_, err = config.LoadDotEnv([]string{os.Getenv("ENV_PATH"), "./.env"}, 1)
    31  	if err != nil {
    32  		panic(err)
    33  	}
    34  
    35  	httpClient, err := ro.NewHTTPClientEnvFlexStatic("")
    36  	if err != nil {
    37  		log.Fatal(errorsutil.Wrap(err, "getHttpClientEnv"))
    38  	}
    39  	serverURL := os.Getenv("RINGCENTRAL_SERVER_URL")
    40  	apiClient, err := ru.NewApiClientHttpClientBaseURL(httpClient, serverURL)
    41  	if err != nil {
    42  		log.Fatal(err)
    43  	}
    44  
    45  	if 1 == 0 {
    46  		f, err := os.Open(opts.File)
    47  		if err != nil {
    48  			log.Fatal(err)
    49  		}
    50  
    51  		info, resp, err := apiClient.UserSettingsApi.UploadImageByPostForm(
    52  			context.Background(), "~", "~", f)
    53  
    54  		if err != nil {
    55  			log.Fatal(err)
    56  		} else if resp.StatusCode >= 300 {
    57  			log.Fatal(fmt.Sprintf("Status [%v]", resp.StatusCode))
    58  		}
    59  		fmtutil.PrintJSON(info)
    60  	}
    61  
    62  	if 1 == 1 {
    63  		resp, err := ru.UploadUserProfileImage(httpClient,
    64  			os.Getenv("RINGCENTRAL_SERVER_URL"),
    65  			"~",
    66  			"~",
    67  			opts.File)
    68  		if err != nil {
    69  			log.Fatal(err)
    70  		}
    71  
    72  		httputilmore.PrintResponse(resp, true)
    73  	}
    74  
    75  	fmt.Println("DONE")
    76  }