mirror of
https://github.com/kevin-DL/services.git
synced 2026-01-11 19:04:35 +00:00
feat: add tenantId (#343)
This commit is contained in:
@@ -10,6 +10,7 @@ import (
|
|||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
|
|
||||||
pb "github.com/micro/services/contact/proto"
|
pb "github.com/micro/services/contact/proto"
|
||||||
|
"github.com/micro/services/pkg/tenant"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Contact interface {
|
type Contact interface {
|
||||||
@@ -31,13 +32,18 @@ func NewContactDomain(s store.Store) *contact {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// contactIdPrefix return the contact prefix of the store key
|
// contactIdPrefix return the contact prefix of the store key
|
||||||
func contactIdPrefix() string {
|
func contactIdPrefix(ctx context.Context) string {
|
||||||
return "contact/id/"
|
tenantId, ok := tenant.FromContext(ctx)
|
||||||
|
if !ok {
|
||||||
|
tenantId = "micro"
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Sprintf("contact/%s/id/", tenantId)
|
||||||
}
|
}
|
||||||
|
|
||||||
// contactIdPrefix return the store key of one contact
|
// contactIdPrefix return the store key of one contact
|
||||||
func contactIdKey(id string) string {
|
func contactIdKey(ctx context.Context, id string) string {
|
||||||
return fmt.Sprintf("%s%s", contactIdPrefix(), id)
|
return fmt.Sprintf("%s%s", contactIdPrefix(ctx), id)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create a contact
|
// Create a contact
|
||||||
@@ -51,7 +57,7 @@ func (c *contact) Create(ctx context.Context, info *pb.ContactInfo) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return store.Write(&store.Record{
|
return store.Write(&store.Record{
|
||||||
Key: contactIdKey(info.Id),
|
Key: contactIdKey(ctx, info.Id),
|
||||||
Value: val,
|
Value: val,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -66,14 +72,14 @@ func (c *contact) Update(ctx context.Context, id string, info *pb.ContactInfo) e
|
|||||||
}
|
}
|
||||||
|
|
||||||
return store.Write(&store.Record{
|
return store.Write(&store.Record{
|
||||||
Key: contactIdKey(id),
|
Key: contactIdKey(ctx, id),
|
||||||
Value: val,
|
Value: val,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read one contact by id
|
// Read one contact by id
|
||||||
func (c *contact) Read(ctx context.Context, id string) (*pb.ContactInfo, error) {
|
func (c *contact) Read(ctx context.Context, id string) (*pb.ContactInfo, error) {
|
||||||
records, err := c.store.Read(contactIdKey(id))
|
records, err := c.store.Read(contactIdKey(ctx, id))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -92,12 +98,12 @@ func (c *contact) Read(ctx context.Context, id string) (*pb.ContactInfo, error)
|
|||||||
|
|
||||||
// Delete one contact by id
|
// Delete one contact by id
|
||||||
func (c *contact) Delete(ctx context.Context, id string) error {
|
func (c *contact) Delete(ctx context.Context, id string) error {
|
||||||
return c.store.Delete(contactIdKey(id))
|
return c.store.Delete(contactIdKey(ctx, id))
|
||||||
}
|
}
|
||||||
|
|
||||||
// List contacts by offset and limit
|
// List contacts by offset and limit
|
||||||
func (c *contact) List(ctx context.Context, offset, limit uint) (result []*pb.ContactInfo, err error) {
|
func (c *contact) List(ctx context.Context, offset, limit uint) (result []*pb.ContactInfo, err error) {
|
||||||
records, err := c.store.Read(contactIdPrefix(),
|
records, err := c.store.Read(contactIdPrefix(ctx),
|
||||||
store.ReadPrefix(),
|
store.ReadPrefix(),
|
||||||
store.ReadOffset(offset),
|
store.ReadOffset(offset),
|
||||||
store.ReadLimit(limit))
|
store.ReadLimit(limit))
|
||||||
|
|||||||
Reference in New Issue
Block a user