33package couchdb
44
55import (
6- "context "
6+ "net/http "
77
8- "github.com/caarlos0/env/v10 "
9- "github.com/go-kivik/couchdb/v3 "
10- kivik "github.com/go-kivik/kivik/v3 "
8+ "github.com/caarlos0/env/v11 "
9+ kivik "github.com/go-kivik/kivik/v4 "
10+ "github.com/go-kivik/kivik/v4/couchdb "
1111
1212 "github.com/pace/bricks/http/transport"
1313 "github.com/pace/bricks/maintenance/health/servicehealthcheck"
14- "github.com/pace/bricks/maintenance/log"
1514)
1615
1716func DefaultDatabase () (* kivik.DB , error ) {
1817 return Database ("" )
1918}
2019
2120func Database (name string ) (* kivik.DB , error ) {
22- ctx := log .WithContext (context .Background ())
23-
2421 cfg , err := ParseConfig ()
2522 if err != nil {
2623 return nil , err
2724 }
2825 // Primary client+db
29- _ , db , err := clientAndDB (ctx , name , cfg )
26+ _ , db , err := clientAndDB (name , cfg )
3027 if err != nil {
3128 return nil , err
3229 }
3330
3431 // Secondary (healthcheck) client+db
35- healthCheckClient , healthCheckDB , err := clientAndDB (ctx , name , cfg )
32+ healthCheckClient , healthCheckDB , err := clientAndDB (name , cfg )
3633 if err != nil {
3734 return nil , err
3835 }
@@ -49,7 +46,7 @@ func Database(name string) (*kivik.DB, error) {
4946 return db , nil
5047}
5148
52- func clientAndDB (ctx context. Context , dbName string , cfg * Config ) (* kivik.Client , * kivik.DB , error ) {
49+ func clientAndDB (dbName string , cfg * Config ) (* kivik.Client , * kivik.DB , error ) {
5350 client , err := Client (cfg )
5451 if err != nil {
5552 return nil , nil , err
@@ -60,20 +57,14 @@ func clientAndDB(ctx context.Context, dbName string, cfg *Config) (*kivik.Client
6057 dbName = cfg .Database
6158 }
6259
63- db := client .DB (ctx , dbName , nil )
60+ db := client .DB (dbName )
6461 if db .Err () != nil {
6562 return nil , nil , db .Err ()
6663 }
6764 return client , db , err
6865}
6966
7067func Client (cfg * Config ) (* kivik.Client , error ) {
71- ctx := log .WithContext (context .Background ())
72-
73- client , err := kivik .New ("couch" , cfg .URL )
74- if err != nil {
75- return nil , err
76- }
7768 rts := []transport.ChainableRoundTripper {
7869 & AuthTransport {
7970 Username : cfg .User ,
@@ -84,9 +75,8 @@ func Client(cfg *Config) (*kivik.Client, error) {
8475 if ! cfg .DisableRequestLogging {
8576 rts = append (rts , & transport.LoggingRoundTripper {})
8677 }
87- chain := transport .Chain (rts ... )
88- tr := couchdb .SetTransport (chain )
89- err = client .Authenticate (ctx , tr )
78+
79+ client , err := kivik .New ("couch" , cfg .URL , couchdb .OptionHTTPClient (& http.Client {Transport : transport .Chain (rts ... )}))
9080 if err != nil {
9181 return nil , err
9282 }
0 commit comments