MCPcopy Create free account
hub / github.com/cloudquery/cloudquery / New

Function New

plugins/destination/test/client/client.go:37–83  ·  view source on GitHub ↗
(_ context.Context, logger zerolog.Logger, specBytes []byte, _ plugin.NewClientOptions)

Source from the content-addressed store, hash-verified

35)
36
37func New(_ context.Context, logger zerolog.Logger, specBytes []byte, _ plugin.NewClientOptions) (plugin.Client, error) {
38 var spec Spec
39 if err := json.Unmarshal(specBytes, &spec); err != nil {
40 return nil, fmt.Errorf("failed to unmarshal spec: %w", err)
41 }
42 spec.SetDefaults()
43 if err := spec.Validate(); err != nil {
44 return nil, fmt.Errorf("invalid spec: %w", err)
45 }
46
47 c := &Client{
48 logger: logger.With().Str("module", "test").Logger(),
49 spec: spec,
50 }
51
52 var err error
53 switch {
54 case spec.BatchWriter:
55 c.writer, err = batchwriter.New(c,
56 batchwriter.WithBatchSize(*c.spec.BatchSize),
57 batchwriter.WithBatchSizeBytes(*c.spec.BatchSizeBytes),
58 batchwriter.WithBatchTimeout(c.spec.BatchTimeout.Duration()),
59 batchwriter.WithLogger(c.logger),
60 )
61 case spec.MixedBatchWriter:
62 var mbw *mixedbatchwriter.MixedBatchWriter
63 mbw, err = mixedbatchwriter.New(c,
64 mixedbatchwriter.WithBatchSize(*c.spec.BatchSize),
65 mixedbatchwriter.WithBatchSizeBytes(*c.spec.BatchSizeBytes),
66 mixedbatchwriter.WithBatchTimeout(c.spec.BatchTimeout.Duration()),
67 mixedbatchwriter.WithLogger(c.logger),
68 )
69 c.writer = adaptMixedBatchWriter(mbw)
70 case spec.StreamBatchWriter:
71 c.writer, err = streamingbatchwriter.New(newClientForStreamingBatchWriter(c),
72 streamingbatchwriter.WithBatchSizeRows(*c.spec.BatchSize),
73 streamingbatchwriter.WithBatchSizeBytes(*c.spec.BatchSizeBytes),
74 streamingbatchwriter.WithBatchTimeout(c.spec.BatchTimeout.Duration()),
75 streamingbatchwriter.WithLogger(c.logger),
76 )
77 }
78 if err != nil {
79 return nil, err
80 }
81
82 return c, nil
83}
84
85func (*Client) Read(context.Context, *schema.Table, chan<- arrow.RecordBatch) error {
86 return nil

Callers

nothing calls this directly

Calls 6

SetDefaultsMethod · 0.95
ValidateMethod · 0.95
adaptMixedBatchWriterFunction · 0.85
ErrorfMethod · 0.80
LoggerMethod · 0.45

Tested by

no test coverage detected