From 77daad18dbdbbc252995781ae44895dda6b0a853 Mon Sep 17 00:00:00 2001 From: jzunigax2 <125698953+jzunigax2@users.noreply.github.com> Date: Wed, 19 Nov 2025 13:51:35 -0300 Subject: [PATCH 1/3] feat: Introduce newHTTPClient function for better HTTP client configuration with timeouts. --- config/config.go | 85 ++++++++++++++++++++++++++---------------------- 1 file changed, 46 insertions(+), 39 deletions(-) diff --git a/config/config.go b/config/config.go index 266f7e2..a2e327b 100644 --- a/config/config.go +++ b/config/config.go @@ -1,8 +1,9 @@ package config import ( - "encoding/json" - "os" + "net" + "net/http" + "time" ) const ( @@ -16,22 +17,23 @@ const ( ) type Config struct { - Email string `json:"email,omitempty"` - Password string `json:"password,omitempty"` - TFA string `json:"tfa,omitempty"` - Token string `json:"token,omitempty"` - RootFolderID string `json:"root_folder_id,omitempty"` - Bucket string `json:"bucket,omitempty"` - Mnemonic string `json:"mnemonic,omitempty"` - BasicAuthHeader string `json:"basic_auth_header,omitempty"` - DriveAPIURL string `json:"drive_api_url,omitempty"` - AuthAPIURL string `json:"auth_api_url,omitempty"` - UsersAPIURL string `json:"users_api_url,omitempty"` - AppCryptoSecret string `json:"app_crypto_secret,omitempty"` - AppCryptoSecret2 string `json:"app_crypto_secret2,omitempty"` - AppMagicIV string `json:"app_magic_iv,omitempty"` - AppMagicSalt string `json:"app_magic_salt,omitempty"` - EncryptedPassword string `json:"encrypted_password,omitempty"` + Email string `json:"email,omitempty"` + Password string `json:"password,omitempty"` + TFA string `json:"tfa,omitempty"` + Token string `json:"token,omitempty"` + RootFolderID string `json:"root_folder_id,omitempty"` + Bucket string `json:"bucket,omitempty"` + Mnemonic string `json:"mnemonic,omitempty"` + BasicAuthHeader string `json:"basic_auth_header,omitempty"` + DriveAPIURL string `json:"drive_api_url,omitempty"` + AuthAPIURL string `json:"auth_api_url,omitempty"` + UsersAPIURL string `json:"users_api_url,omitempty"` + AppCryptoSecret string `json:"app_crypto_secret,omitempty"` + AppCryptoSecret2 string `json:"app_crypto_secret2,omitempty"` + AppMagicIV string `json:"app_magic_iv,omitempty"` + AppMagicSalt string `json:"app_magic_salt,omitempty"` + EncryptedPassword string `json:"encrypted_password,omitempty"` + HTTPClient *http.Client `json:"-"` } func NewDefault(email, password string) *Config { @@ -61,27 +63,6 @@ func NewDefaultToken(token string) *Config { return cfg } -func LoadFromJSON(path string) (*Config, error) { - b, err := os.ReadFile(path) - if err != nil { - return nil, err - } - var cfg Config - if err := json.Unmarshal(b, &cfg); err != nil { - return nil, err - } - cfg.applyDefaults() - return &cfg, nil -} - -func (c *Config) SaveToJSON(path string) error { - b, err := json.MarshalIndent(c, "", " ") - if err != nil { - return err - } - return os.WriteFile(path, b, os.ModePerm) -} - func (c *Config) applyDefaults() { if c.DriveAPIURL == "" { c.DriveAPIURL = DefaultDriveAPIURL @@ -104,4 +85,30 @@ func (c *Config) applyDefaults() { if c.AppMagicSalt == "" { c.AppMagicSalt = DefaultAppMagicSalt } + if c.HTTPClient == nil { + c.HTTPClient = newHTTPClient() + } +} + +// newHTTPClient: properly configured HTTP client with sensible timeouts +func newHTTPClient() *http.Client { + return &http.Client{ + Timeout: 60 * time.Second, + Transport: &http.Transport{ + MaxIdleConns: 100, + MaxIdleConnsPerHost: 10, + MaxConnsPerHost: 50, + IdleConnTimeout: 90 * time.Second, + DialContext: (&net.Dialer{ + Timeout: 10 * time.Second, + KeepAlive: 30 * time.Second, + }).DialContext, + TLSHandshakeTimeout: 10 * time.Second, + ResponseHeaderTimeout: 20 * time.Second, + ExpectContinueTimeout: 1 * time.Second, + DisableKeepAlives: false, + DisableCompression: false, + ForceAttemptHTTP2: true, + }, + } } From 08f14c763d939f2cbdf15620dc390b9fd616c780 Mon Sep 17 00:00:00 2001 From: jzunigax2 <125698953+jzunigax2@users.noreply.github.com> Date: Wed, 19 Nov 2025 14:09:59 -0300 Subject: [PATCH 2/3] chore: Update module path to github.com/internxt/rclone --- go.mod | 2 +- go.sum | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 go.sum diff --git a/go.mod b/go.mod index 287ae47..ccb6939 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/StarHack/go-internxt-drive +module github.com/internxt/rclone go 1.23.0 diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..1893e23 --- /dev/null +++ b/go.sum @@ -0,0 +1,10 @@ +github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8= +github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= +golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= From 410f1b98b75c034387b6782ab5d8fd750be581f5 Mon Sep 17 00:00:00 2001 From: jzunigax2 <125698953+jzunigax2@users.noreply.github.com> Date: Wed, 19 Nov 2025 14:10:17 -0300 Subject: [PATCH 3/3] refactor: Replace all instances of http.DefaultClient with a configurable HTTP client in the auth, buckets, files, folders, fuzzy, trash, users, and workspaces packages --- auth/access.go | 14 ++++++++++---- auth/login.go | 11 +++++++++-- auth/logout.go | 4 ++-- auth/tfa.go | 10 +++++----- buckets/download.go | 12 ++++++++---- buckets/finish.go | 4 ++-- buckets/meta.go | 4 ++-- buckets/start.go | 4 ++-- buckets/transfer.go | 6 ++++-- buckets/upload.go | 10 ++++------ files/files.go | 16 ++++++++-------- folders/folders.go | 26 +++++++++++++------------- fuzzy/fuzzy.go | 4 ++-- trash/trash.go | 20 ++++++++++---------- users/limit.go | 4 ++-- users/usage.go | 4 ++-- workspaces/workspaces.go | 4 ++-- 17 files changed, 87 insertions(+), 70 deletions(-) diff --git a/auth/access.go b/auth/access.go index 9f4a47f..b58c9c9 100644 --- a/auth/access.go +++ b/auth/access.go @@ -17,7 +17,7 @@ import ( "crypto/sha1" - "github.com/StarHack/go-internxt-drive/config" + "github.com/internxt/rclone/config" "golang.org/x/crypto/pbkdf2" ) @@ -70,7 +70,14 @@ func AccessLogin(cfg *config.Config, lr *LoginResponse) (*AccessResponse, error) } b, _ := json.Marshal(req) - resp, err := http.Post(cfg.DriveAPIURL+"/auth/login/access", "application/json", bytes.NewReader(b)) + + httpReq, err := http.NewRequest(http.MethodPost, cfg.DriveAPIURL+"/auth/login/access", bytes.NewReader(b)) + if err != nil { + return nil, err + } + httpReq.Header.Set("Content-Type", "application/json") + + resp, err := cfg.HTTPClient.Do(httpReq) if err != nil { return nil, err } @@ -110,8 +117,7 @@ func AreCredentialsCorrect(cfg *config.Config, hashedPassword string) (bool, err } req.Header.Set("Authorization", "Bearer "+cfg.Token) - client := &http.Client{} - resp, err := client.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return false, err } diff --git a/auth/login.go b/auth/login.go index 20ead9f..376c60c 100644 --- a/auth/login.go +++ b/auth/login.go @@ -6,7 +6,7 @@ import ( "encoding/json" "net/http" - "github.com/StarHack/go-internxt-drive/config" + "github.com/internxt/rclone/config" ) type LoginResponse struct { @@ -21,7 +21,14 @@ type LoginResponse struct { func Login(cfg *config.Config) (*LoginResponse, error) { payload := map[string]string{"email": cfg.Email} b, _ := json.Marshal(payload) - resp, err := http.Post(cfg.DriveAPIURL+"/auth/login", "application/json", bytes.NewReader(b)) + + req, err := http.NewRequest(http.MethodPost, cfg.DriveAPIURL+"/auth/login", bytes.NewReader(b)) + if err != nil { + return nil, err + } + req.Header.Set("Content-Type", "application/json") + + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, err } diff --git a/auth/logout.go b/auth/logout.go index 33dd0cd..471c1e1 100644 --- a/auth/logout.go +++ b/auth/logout.go @@ -5,7 +5,7 @@ import ( "io" "net/http" - "github.com/StarHack/go-internxt-drive/config" + "github.com/internxt/rclone/config" ) // Logout calls GET {DRIVE_API_URL}/logout to end the session. @@ -17,7 +17,7 @@ func Logout(cfg *config.Config) error { return err } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return err } diff --git a/auth/tfa.go b/auth/tfa.go index ea69869..49ea571 100644 --- a/auth/tfa.go +++ b/auth/tfa.go @@ -8,7 +8,7 @@ import ( "io" "net/http" - "github.com/StarHack/go-internxt-drive/config" + "github.com/internxt/rclone/config" ) type TFAEnableRequest struct { @@ -34,7 +34,7 @@ func IsTFAEnabled(cfg *config.Config) (bool, error) { } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return false, err } @@ -58,7 +58,7 @@ func FetchTFASetup(cfg *config.Config) (*TFASecretResponse, error) { } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, err } @@ -87,7 +87,7 @@ func EnableTFA(cfg *config.Config, key, code string) error { req.Header.Set("Authorization", "Bearer "+cfg.Token) req.Header.Set("Content-Type", "application/json") - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return err } @@ -114,7 +114,7 @@ func DisableTFA(cfg *config.Config, code string) error { req.Header.Set("Content-Type", "application/json") req.ContentLength = int64(len(bodyBytes)) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return err } diff --git a/buckets/download.go b/buckets/download.go index 58628bd..4684b7e 100644 --- a/buckets/download.go +++ b/buckets/download.go @@ -9,7 +9,7 @@ import ( "strconv" "strings" - "github.com/StarHack/go-internxt-drive/config" + "github.com/internxt/rclone/config" ) const bucketAPIBase = "https://api.internxt.com" @@ -46,7 +46,7 @@ func GetBucketFileInfo(cfg *config.Config, bucketID, fileID string) (*BucketFile req.Header.Set("internxt-version", "1.0") req.Header.Set("internxt-client", "internxt-go-sdk") - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, err } @@ -82,7 +82,11 @@ func DownloadFile(cfg *config.Config, fileID, destPath string) error { } // 3) GET the encrypted shard directly from its presigned URL - resp, err := http.Get(shard.URL) + req, err := http.NewRequest("GET", shard.URL, nil) + if err != nil { + return err + } + resp, err := cfg.HTTPClient.Do(req) if err != nil { return err } @@ -179,7 +183,7 @@ func DownloadFileStream(cfg *config.Config, fileUUID string, optionalRange ...st req.Header.Set("Range", rangeValue) } - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, err } diff --git a/buckets/finish.go b/buckets/finish.go index 4c2b9c2..f00a4d3 100644 --- a/buckets/finish.go +++ b/buckets/finish.go @@ -8,7 +8,7 @@ import ( "net/http" "strings" - "github.com/StarHack/go-internxt-drive/config" + "github.com/internxt/rclone/config" ) type Shard struct { @@ -46,7 +46,7 @@ func FinishUpload(cfg *config.Config, bucketID, index string, shards []Shard) (* req.Header.Set("internxt-client", "drive-web") req.Header.Set("Content-Type", "application/json; charset=utf-8") - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, err } diff --git a/buckets/meta.go b/buckets/meta.go index 302abc7..a750795 100644 --- a/buckets/meta.go +++ b/buckets/meta.go @@ -8,7 +8,7 @@ import ( "net/http" "time" - "github.com/StarHack/go-internxt-drive/config" + "github.com/internxt/rclone/config" ) type CreateMetaRequest struct { @@ -65,7 +65,7 @@ func CreateMetaFile(cfg *config.Config, name, bucketID, fileID, encryptVersion, req.Header.Set("internxt-version", "v1.0.436") req.Header.Set("internxt-client", "drive-web") req.Header.Set("Content-Type", "application/json; charset=utf-8") - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, err } diff --git a/buckets/start.go b/buckets/start.go index ef6f037..ce7003a 100644 --- a/buckets/start.go +++ b/buckets/start.go @@ -6,7 +6,7 @@ import ( "fmt" "net/http" - "github.com/StarHack/go-internxt-drive/config" + "github.com/internxt/rclone/config" ) const API = "https://api.internxt.com" @@ -48,7 +48,7 @@ func StartUpload(cfg *config.Config, bucketID string, parts []UploadPartSpec) (* req.Header.Set("internxt-client", "drive-web") req.Header.Set("Content-Type", "application/json; charset=utf-8") - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, err } diff --git a/buckets/transfer.go b/buckets/transfer.go index eb18ce6..5a511f8 100644 --- a/buckets/transfer.go +++ b/buckets/transfer.go @@ -4,16 +4,18 @@ import ( "fmt" "io" "net/http" + + "github.com/internxt/rclone/config" ) -func Transfer(part UploadPart, r io.Reader, size int64) error { +func Transfer(cfg *config.Config, part UploadPart, r io.Reader, size int64) error { req, err := http.NewRequest("PUT", part.URL, r) if err != nil { return err } req.Header.Set("Content-Type", "application/octet-stream") req.ContentLength = size - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return err } diff --git a/buckets/upload.go b/buckets/upload.go index 8520a9d..4ebdc50 100644 --- a/buckets/upload.go +++ b/buckets/upload.go @@ -12,7 +12,7 @@ import ( "strings" "time" - "github.com/StarHack/go-internxt-drive/config" + "github.com/internxt/rclone/config" ) func UploadFile(cfg *config.Config, filePath, targetFolderUUID string, modTime time.Time) (*CreateMetaResponse, error) { @@ -21,9 +21,7 @@ func UploadFile(cfg *config.Config, filePath, targetFolderUUID string, modTime t return nil, err } plainSize := int64(len(raw)) - ph := sha256.Sum256(raw) - - ph = [32]byte{} + var ph [32]byte if _, err := rand.Read(ph[:]); err != nil { return nil, fmt.Errorf("cannot generate random index: %w", err) } @@ -52,7 +50,7 @@ func UploadFile(cfg *config.Config, filePath, targetFolderUUID string, modTime t return nil, err } part := startResp.Uploads[0] - if err := Transfer(part, r, plainSize); err != nil { + if err := Transfer(cfg, part, r, plainSize); err != nil { return nil, err } encIndex := hex.EncodeToString(ph[:]) @@ -109,7 +107,7 @@ func UploadFileStream(cfg *config.Config, targetFolderUUID, fileName string, in part := startResp.Uploads[0] - if err := Transfer(part, r, plainSize); err != nil { + if err := Transfer(cfg, part, r, plainSize); err != nil { return nil, err } diff --git a/files/files.go b/files/files.go index 35d76dc..37d2088 100644 --- a/files/files.go +++ b/files/files.go @@ -8,8 +8,8 @@ import ( "net/http" "net/url" - "github.com/StarHack/go-internxt-drive/config" - "github.com/StarHack/go-internxt-drive/folders" + "github.com/internxt/rclone/config" + "github.com/internxt/rclone/folders" ) const filesPath = "/files" @@ -23,7 +23,7 @@ func GetFileMeta(cfg *config.Config, fileUUID string) (*folders.File, error) { } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, err } @@ -52,7 +52,7 @@ func DeleteFile(cfg *config.Config, uuid string) error { return err } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return err } @@ -82,7 +82,7 @@ func UpdateFileMeta(cfg *config.Config, fileUUID string, updated *folders.File) req.Header.Set("Authorization", "Bearer "+cfg.Token) req.Header.Set("Content-Type", "application/json") - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, err } @@ -119,7 +119,7 @@ func MoveFile(cfg *config.Config, fileUUID, destinationFolderUUID string) (*fold req.Header.Set("Authorization", "Bearer "+cfg.Token) req.Header.Set("Content-Type", "application/json") - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, err } @@ -161,7 +161,7 @@ func RenameFile(cfg *config.Config, fileUUID, newPlainName, newType string) erro req.Header.Set("Authorization", "Bearer "+cfg.Token) req.Header.Set("Content-Type", "application/json") - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return err } @@ -189,7 +189,7 @@ func GetRecentFiles(cfg *config.Config, limit int) ([]folders.File, error) { } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, err } diff --git a/folders/folders.go b/folders/folders.go index ff992f0..af64d20 100644 --- a/folders/folders.go +++ b/folders/folders.go @@ -10,7 +10,7 @@ import ( "strconv" "time" - "github.com/StarHack/go-internxt-drive/config" + "github.com/internxt/rclone/config" ) const foldersPath = "/folders" @@ -39,7 +39,7 @@ func CreateFolder(cfg *config.Config, reqBody CreateFolderRequest) (*Folder, err req.Header.Set("Content-Type", "application/json") req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, err } @@ -69,7 +69,7 @@ func DeleteFolder(cfg *config.Config, uuid string) error { return err } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return err } @@ -95,7 +95,7 @@ func GetFolderSize(cfg *config.Config, uuid string) (int64, error) { } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return 0, fmt.Errorf("GetFolderSize: request failed: %w", err) } @@ -154,7 +154,7 @@ func ListFolders(cfg *config.Config, parentUUID string, opts ListOptions) ([]Fol return nil, err } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, err } @@ -212,7 +212,7 @@ func ListFiles(cfg *config.Config, parentUUID string, opts ListOptions) ([]File, return nil, err } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, err } @@ -297,7 +297,7 @@ func RenameFolder(cfg *config.Config, uuid, newName string) error { req.Header.Set("Content-Type", "application/json") req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return fmt.Errorf("RenameFolder: request failed: %w", err) } @@ -331,7 +331,7 @@ func MoveFolder(cfg *config.Config, uuid, destUUID string) error { req.Header.Set("Content-Type", "application/json") req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return fmt.Errorf("MoveFolder: request failed: %w", err) } @@ -354,7 +354,7 @@ func Tree(cfg *config.Config, uuid string) (*TreeNode, error) { } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, fmt.Errorf("Tree: request failed: %w", err) } @@ -387,7 +387,7 @@ func Ancestors(cfg *config.Config, uuid string) ([]Folder, error) { } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, fmt.Errorf("Ancestors: request failed: %w", err) } @@ -420,7 +420,7 @@ func GetFolderMetadataById(cfg *config.Config, id int64) (*Folder, error) { } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, fmt.Errorf("GetFolderMetadata: request failed: %w", err) } @@ -449,7 +449,7 @@ func GetFolderMetadataByUUID(cfg *config.Config, uuid string) (*Folder, error) { } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, fmt.Errorf("GetFolderMeta: request failed: %w", err) } @@ -478,7 +478,7 @@ func GetMetadataByPath(cfg *config.Config, path string) (*Folder, error) { } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, fmt.Errorf("GetMetadataByPath: request failed: %w", err) } diff --git a/fuzzy/fuzzy.go b/fuzzy/fuzzy.go index df6af71..0b60c1c 100644 --- a/fuzzy/fuzzy.go +++ b/fuzzy/fuzzy.go @@ -6,7 +6,7 @@ import ( "net/http" "net/url" - "github.com/StarHack/go-internxt-drive/config" + "github.com/internxt/rclone/config" ) type SearchResult struct { @@ -33,7 +33,7 @@ func FuzzySearch(cfg *config.Config, term string, offset int) (*SearchResponse, } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, err } diff --git a/trash/trash.go b/trash/trash.go index 330ca76..40c7a7f 100644 --- a/trash/trash.go +++ b/trash/trash.go @@ -7,8 +7,8 @@ import ( "io" "net/http" - "github.com/StarHack/go-internxt-drive/config" - "github.com/StarHack/go-internxt-drive/folders" + "github.com/internxt/rclone/config" + "github.com/internxt/rclone/folders" ) type TrashType string @@ -61,7 +61,7 @@ func GetPaginatedTrashFolders(cfg *config.Config, limit, offset int, sort SortFi } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, err } @@ -104,7 +104,7 @@ func GetPaginatedTrashFiles(cfg *config.Config, limit, offset int, sort SortFiel } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, err } @@ -147,7 +147,7 @@ func AddToTrash(cfg *config.Config, items []TrashRef) error { req.Header.Set("Authorization", "Bearer "+cfg.Token) req.Header.Set("Content-Type", "application/json") - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return err } @@ -167,7 +167,7 @@ func DeleteAllTrash(cfg *config.Config) error { } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return err } @@ -187,7 +187,7 @@ func RequestDeleteAllTrash(cfg *config.Config) error { } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return err } @@ -210,7 +210,7 @@ func DeleteSpecifiedTrashItems(cfg *config.Config, items []TrashRef) error { req.Header.Set("Authorization", "Bearer "+cfg.Token) req.Header.Set("Content-Type", "application/json") - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return err } @@ -232,7 +232,7 @@ func DeleteTrashFile(cfg *config.Config, fileID string) error { } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return err } @@ -253,7 +253,7 @@ func DeleteTrashFolder(cfg *config.Config, folderID int64) error { } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return err } diff --git a/users/limit.go b/users/limit.go index bab8cfe..2982b66 100644 --- a/users/limit.go +++ b/users/limit.go @@ -6,7 +6,7 @@ import ( "io/ioutil" "net/http" - "github.com/StarHack/go-internxt-drive/config" + "github.com/internxt/rclone/config" ) type LimitResponse struct { @@ -22,7 +22,7 @@ func GetLimit(cfg *config.Config) (*LimitResponse, error) { } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, err } diff --git a/users/usage.go b/users/usage.go index 10b6ee7..e792e68 100644 --- a/users/usage.go +++ b/users/usage.go @@ -6,7 +6,7 @@ import ( "io/ioutil" "net/http" - "github.com/StarHack/go-internxt-drive/config" + "github.com/internxt/rclone/config" ) type UsageResponse struct { @@ -22,7 +22,7 @@ func GetUsage(cfg *config.Config) (*UsageResponse, error) { } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, err } diff --git a/workspaces/workspaces.go b/workspaces/workspaces.go index ee27277..971d733 100644 --- a/workspaces/workspaces.go +++ b/workspaces/workspaces.go @@ -6,7 +6,7 @@ import ( "fmt" "net/http" - "github.com/StarHack/go-internxt-drive/config" + "github.com/internxt/rclone/config" ) const workspacesPath = "/workspaces" @@ -65,7 +65,7 @@ func GetWorkspaces(cfg *config.Config) (*WorkspacesResponse, error) { return nil, err } req.Header.Set("Authorization", "Bearer "+cfg.Token) - resp, err := http.DefaultClient.Do(req) + resp, err := cfg.HTTPClient.Do(req) if err != nil { return nil, err }