Skip to content

Commit

Permalink
New client from storage method.
Browse files Browse the repository at this point in the history
  • Loading branch information
kritzware committed Sep 25, 2018
1 parent dbc7b2e commit eb969e7
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 34 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,5 @@

# Output of the go coverage tool, specifically when used with LiteIDE
*.out

google-ads.json
48 changes: 40 additions & 8 deletions client/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,17 @@ package client

import (
"context"
"encoding/json"
"fmt"
"io/ioutil"
"reflect"

"golang.org/x/oauth2"
"golang.org/x/oauth2/google"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"

services "github.com/kritzware/google-ads-go/services"
)

const (
Expand Down Expand Up @@ -42,27 +48,29 @@ func (g *GoogleAdsClient) createGrpcConnection() error {
// creds := oauth.NewOauthAccess(client.Token)
// grpc.WithPerRPCCredentials(creds)
err := g.refreshToken()
if err != nil {
return err
}
conn, err := grpc.Dial(address, grpc.WithTransportCredentials(credentials.NewClientTLSFromCert(nil, "")))
if err != nil {
return err
}
g.conn = conn
return err
return nil
}

func (g *GoogleAdsClient) GetService(service string) interface{} {
func (g *GoogleAdsClient) GetService(service string) reflect.Value {
err := g.createGrpcConnection()
if err != nil {
panic(err)
}
var googleAdsServices services.GoogleAdsServices

// serviceName := fmt.Sprintf("New%sClient", service)

// var t types.ClientServices
// adsService := reflect.ValueOf(&t).MethodByName(serviceName).Call([]reflect.Value{reflect.Value(g.conn)})
serviceName := fmt.Sprintf("New%sClient", service)
serviceParams := []reflect.Value{reflect.ValueOf(g.conn)}

// return adsService
return nil
relService := reflect.ValueOf(&googleAdsServices).MethodByName(serviceName)
return relService.Call(serviceParams)[0]
}

// headers := metadata.Pairs(
Expand All @@ -86,3 +94,27 @@ func NewGoogleAdsClient(args *GoogleAdsClientArgs) *GoogleAdsClient {
developerToken: args.DeveloperToken,
}
}

type GoogleAdsStorageConfig struct {
ClientID string `json:"client_id"`
ClientSecret string `json:"client_secret"`
RefreshToken string `json:"refresh_token"`
DeveloperToken string `json:"developer_token"`
}

func NewGoogleAdsClientFromStorage(filepath string) (*GoogleAdsClient, error) {
file, err := ioutil.ReadFile(filepath)
if err != nil {
return nil, err
}
var g GoogleAdsStorageConfig
json.Unmarshal(file, &g)

client := NewGoogleAdsClient(&GoogleAdsClientArgs{
ClientID: g.ClientID,
ClientSecret: g.ClientSecret,
RefreshToken: g.RefreshToken,
DeveloperToken: g.DeveloperToken,
})
return client, nil
}
11 changes: 4 additions & 7 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,12 @@ import (
)

func main() {
client := client.NewGoogleAdsClient(&client.GoogleAdsClientArgs{
ClientID: "",
ClientSecret: "",
DeveloperToken: "",
RefreshToken: "",
})
client, err := client.NewGoogleAdsClientFromStorage("google-ads.json")
if err != nil {
panic(err)
}

service := client.GetService("GoogleAdsService")

fmt.Printf("%+v\n", service)

// request := services.SearchGoogleAdsRequest{
Expand Down
19 changes: 0 additions & 19 deletions types/types.go

This file was deleted.

0 comments on commit eb969e7

Please sign in to comment.