Skip to content

Commit 1ebcfa7

Browse files
committed
Add in memory cache for Magento client
1 parent e8da8c1 commit 1ebcfa7

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

internal/controller/magento.go

+9-5
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ import (
2222
"net/http"
2323
"strings"
2424

25-
v1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
26-
2725
xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1"
2826
"github.com/crossplane/crossplane-runtime/pkg/connection"
2927
"github.com/crossplane/crossplane-runtime/pkg/controller"
@@ -33,6 +31,7 @@ import (
3331
"github.com/crossplane/crossplane-runtime/pkg/resource"
3432
"github.com/pkg/errors"
3533
magento "github.com/web-seven/provider-magento/internal/client"
34+
v1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
3635
"k8s.io/apimachinery/pkg/runtime"
3736
"k8s.io/apimachinery/pkg/runtime/schema"
3837
"k8s.io/apimachinery/pkg/types"
@@ -75,15 +74,20 @@ type external struct {
7574
service *MagentoService
7675
}
7776

77+
var cachedMagento *MagentoService
78+
7879
// newMagentoService creates a new MagentoService.
7980
var (
8081
newMagentoService = func(creds []byte, baseURL string) (*MagentoService, error) {
81-
82+
if cachedMagento != nil {
83+
return cachedMagento, nil
84+
}
8285
// Create a new Magento API client
8386
c := magento.NewClient(baseURL, string(creds))
84-
return &MagentoService{
87+
cachedMagento = &MagentoService{
8588
client: c,
86-
}, nil
89+
}
90+
return cachedMagento, nil
8791
}
8892
)
8993

0 commit comments

Comments
 (0)