storespb

package
v0.0.0-...-76fafce Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 3, 2023 License: MIT Imports: 20 Imported by: 0

Documentation

Overview

Package storespb is a reverse proxy.

It translates gRPC into RESTful JSON APIs.

Index

Constants

View Source
const (
	StoreAggregateChannel = "intellimall.stores.events.Store"

	StoreCreatedEvent              = "storesapi.StoreCreated"
	StoreParticipatingToggledEvent = "storesapi.StoreParticipatingToggled"
	StoreRebrandedEvent            = "storesapi.StoreRebranded"

	ProductAggregateChannel = "intellimall.stores.events.Product"

	ProductAddedEvent          = "storesapi.ProductAdded"
	ProductRebrandedEvent      = "storesapi.ProductRebranded"
	ProductPriceIncreasedEvent = "storesapi.ProductPriceIncreased"
	ProductPriceDecreasedEvent = "storesapi.ProductPriceDecreased"
	ProductRemovedEvent        = "storesapi.ProductRemoved"
)

Variables

View Source
var File_storespb_api_proto protoreflect.FileDescriptor
View Source
var File_storespb_events_proto protoreflect.FileDescriptor
View Source
var StoresService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "storespb.StoresService",
	HandlerType: (*StoresServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "CreateStore",
			Handler:    _StoresService_CreateStore_Handler,
		},
		{
			MethodName: "EnableParticipation",
			Handler:    _StoresService_EnableParticipation_Handler,
		},
		{
			MethodName: "DisableParticipation",
			Handler:    _StoresService_DisableParticipation_Handler,
		},
		{
			MethodName: "RebrandStore",
			Handler:    _StoresService_RebrandStore_Handler,
		},
		{
			MethodName: "GetStore",
			Handler:    _StoresService_GetStore_Handler,
		},
		{
			MethodName: "GetStores",
			Handler:    _StoresService_GetStores_Handler,
		},
		{
			MethodName: "GetParticipatingStores",
			Handler:    _StoresService_GetParticipatingStores_Handler,
		},
		{
			MethodName: "AddProduct",
			Handler:    _StoresService_AddProduct_Handler,
		},
		{
			MethodName: "RebrandProduct",
			Handler:    _StoresService_RebrandProduct_Handler,
		},
		{
			MethodName: "IncreaseProductPrice",
			Handler:    _StoresService_IncreaseProductPrice_Handler,
		},
		{
			MethodName: "DecreaseProductPrice",
			Handler:    _StoresService_DecreaseProductPrice_Handler,
		},
		{
			MethodName: "RemoveProduct",
			Handler:    _StoresService_RemoveProduct_Handler,
		},
		{
			MethodName: "GetProduct",
			Handler:    _StoresService_GetProduct_Handler,
		},
		{
			MethodName: "GetCatalog",
			Handler:    _StoresService_GetCatalog_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "storespb/api.proto",
}

StoresService_ServiceDesc is the grpc.ServiceDesc for StoresService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

Functions

func RegisterAsyncAPI

func RegisterAsyncAPI(mux *chi.Mux) error

func RegisterStoresServiceHandler

func RegisterStoresServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error

RegisterStoresServiceHandler registers the http handlers for service StoresService to "mux". The handlers forward requests to the grpc endpoint over "conn".

func RegisterStoresServiceHandlerClient

func RegisterStoresServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client StoresServiceClient) error

RegisterStoresServiceHandlerClient registers the http handlers for service StoresService to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "StoresServiceClient". Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "StoresServiceClient" doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in "StoresServiceClient" to call the correct interceptors.

func RegisterStoresServiceHandlerFromEndpoint

func RegisterStoresServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error)

RegisterStoresServiceHandlerFromEndpoint is same as RegisterStoresServiceHandler but automatically dials to "endpoint" and closes the connection when "ctx" gets done.

func RegisterStoresServiceHandlerServer

func RegisterStoresServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server StoresServiceServer) error

RegisterStoresServiceHandlerServer registers the http handlers for service StoresService to "mux". UnaryRPC :call StoresServiceServer directly. StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterStoresServiceHandlerFromEndpoint instead.

func RegisterStoresServiceServer

func RegisterStoresServiceServer(s grpc.ServiceRegistrar, srv StoresServiceServer)

func Registrations

func Registrations(reg registry.Registry) error

func RegistrationsWithSerde

func RegistrationsWithSerde(serde registry.Serde) error

Types

type AddProductRequest

type AddProductRequest struct {
	StoreId     string  `protobuf:"bytes,1,opt,name=store_id,json=storeId,proto3" json:"store_id,omitempty"`
	Name        string  `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Description string  `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	Sku         string  `protobuf:"bytes,4,opt,name=sku,proto3" json:"sku,omitempty"`
	Price       float64 `protobuf:"fixed64,5,opt,name=price,proto3" json:"price,omitempty"`
	// contains filtered or unexported fields
}

func (*AddProductRequest) Descriptor deprecated

func (*AddProductRequest) Descriptor() ([]byte, []int)

Deprecated: Use AddProductRequest.ProtoReflect.Descriptor instead.

func (*AddProductRequest) GetDescription

func (x *AddProductRequest) GetDescription() string

func (*AddProductRequest) GetName

func (x *AddProductRequest) GetName() string

func (*AddProductRequest) GetPrice

func (x *AddProductRequest) GetPrice() float64

func (*AddProductRequest) GetSku

func (x *AddProductRequest) GetSku() string

func (*AddProductRequest) GetStoreId

func (x *AddProductRequest) GetStoreId() string

func (*AddProductRequest) ProtoMessage

func (*AddProductRequest) ProtoMessage()

func (*AddProductRequest) ProtoReflect

func (x *AddProductRequest) ProtoReflect() protoreflect.Message

func (*AddProductRequest) Reset

func (x *AddProductRequest) Reset()

func (*AddProductRequest) String

func (x *AddProductRequest) String() string

type AddProductResponse

type AddProductResponse struct {
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

func (*AddProductResponse) Descriptor deprecated

func (*AddProductResponse) Descriptor() ([]byte, []int)

Deprecated: Use AddProductResponse.ProtoReflect.Descriptor instead.

func (*AddProductResponse) GetId

func (x *AddProductResponse) GetId() string

func (*AddProductResponse) ProtoMessage

func (*AddProductResponse) ProtoMessage()

func (*AddProductResponse) ProtoReflect

func (x *AddProductResponse) ProtoReflect() protoreflect.Message

func (*AddProductResponse) Reset

func (x *AddProductResponse) Reset()

func (*AddProductResponse) String

func (x *AddProductResponse) String() string

type CreateStoreRequest

type CreateStoreRequest struct {
	Name     string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Location string `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"`
	// contains filtered or unexported fields
}

func (*CreateStoreRequest) Descriptor deprecated

func (*CreateStoreRequest) Descriptor() ([]byte, []int)

Deprecated: Use CreateStoreRequest.ProtoReflect.Descriptor instead.

func (*CreateStoreRequest) GetLocation

func (x *CreateStoreRequest) GetLocation() string

func (*CreateStoreRequest) GetName

func (x *CreateStoreRequest) GetName() string

func (*CreateStoreRequest) ProtoMessage

func (*CreateStoreRequest) ProtoMessage()

func (*CreateStoreRequest) ProtoReflect

func (x *CreateStoreRequest) ProtoReflect() protoreflect.Message

func (*CreateStoreRequest) Reset

func (x *CreateStoreRequest) Reset()

func (*CreateStoreRequest) String

func (x *CreateStoreRequest) String() string

type CreateStoreResponse

type CreateStoreResponse struct {
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

func (*CreateStoreResponse) Descriptor deprecated

func (*CreateStoreResponse) Descriptor() ([]byte, []int)

Deprecated: Use CreateStoreResponse.ProtoReflect.Descriptor instead.

func (*CreateStoreResponse) GetId

func (x *CreateStoreResponse) GetId() string

func (*CreateStoreResponse) ProtoMessage

func (*CreateStoreResponse) ProtoMessage()

func (*CreateStoreResponse) ProtoReflect

func (x *CreateStoreResponse) ProtoReflect() protoreflect.Message

func (*CreateStoreResponse) Reset

func (x *CreateStoreResponse) Reset()

func (*CreateStoreResponse) String

func (x *CreateStoreResponse) String() string

type DecreaseProductPriceRequest

type DecreaseProductPriceRequest struct {
	Id    string  `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Price float64 `protobuf:"fixed64,2,opt,name=price,proto3" json:"price,omitempty"`
	// contains filtered or unexported fields
}

func (*DecreaseProductPriceRequest) Descriptor deprecated

func (*DecreaseProductPriceRequest) Descriptor() ([]byte, []int)

Deprecated: Use DecreaseProductPriceRequest.ProtoReflect.Descriptor instead.

func (*DecreaseProductPriceRequest) GetId

func (*DecreaseProductPriceRequest) GetPrice

func (x *DecreaseProductPriceRequest) GetPrice() float64

func (*DecreaseProductPriceRequest) ProtoMessage

func (*DecreaseProductPriceRequest) ProtoMessage()

func (*DecreaseProductPriceRequest) ProtoReflect

func (*DecreaseProductPriceRequest) Reset

func (x *DecreaseProductPriceRequest) Reset()

func (*DecreaseProductPriceRequest) String

func (x *DecreaseProductPriceRequest) String() string

type DecreaseProductPriceResponse

type DecreaseProductPriceResponse struct {
	// contains filtered or unexported fields
}

func (*DecreaseProductPriceResponse) Descriptor deprecated

func (*DecreaseProductPriceResponse) Descriptor() ([]byte, []int)

Deprecated: Use DecreaseProductPriceResponse.ProtoReflect.Descriptor instead.

func (*DecreaseProductPriceResponse) ProtoMessage

func (*DecreaseProductPriceResponse) ProtoMessage()

func (*DecreaseProductPriceResponse) ProtoReflect

func (*DecreaseProductPriceResponse) Reset

func (x *DecreaseProductPriceResponse) Reset()

func (*DecreaseProductPriceResponse) String

type DisableParticipationRequest

type DisableParticipationRequest struct {
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

func (*DisableParticipationRequest) Descriptor deprecated

func (*DisableParticipationRequest) Descriptor() ([]byte, []int)

Deprecated: Use DisableParticipationRequest.ProtoReflect.Descriptor instead.

func (*DisableParticipationRequest) GetId

func (*DisableParticipationRequest) ProtoMessage

func (*DisableParticipationRequest) ProtoMessage()

func (*DisableParticipationRequest) ProtoReflect

func (*DisableParticipationRequest) Reset

func (x *DisableParticipationRequest) Reset()

func (*DisableParticipationRequest) String

func (x *DisableParticipationRequest) String() string

type DisableParticipationResponse

type DisableParticipationResponse struct {
	// contains filtered or unexported fields
}

func (*DisableParticipationResponse) Descriptor deprecated

func (*DisableParticipationResponse) Descriptor() ([]byte, []int)

Deprecated: Use DisableParticipationResponse.ProtoReflect.Descriptor instead.

func (*DisableParticipationResponse) ProtoMessage

func (*DisableParticipationResponse) ProtoMessage()

func (*DisableParticipationResponse) ProtoReflect

func (*DisableParticipationResponse) Reset

func (x *DisableParticipationResponse) Reset()

func (*DisableParticipationResponse) String

type EnableParticipationRequest

type EnableParticipationRequest struct {
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

func (*EnableParticipationRequest) Descriptor deprecated

func (*EnableParticipationRequest) Descriptor() ([]byte, []int)

Deprecated: Use EnableParticipationRequest.ProtoReflect.Descriptor instead.

func (*EnableParticipationRequest) GetId

func (*EnableParticipationRequest) ProtoMessage

func (*EnableParticipationRequest) ProtoMessage()

func (*EnableParticipationRequest) ProtoReflect

func (*EnableParticipationRequest) Reset

func (x *EnableParticipationRequest) Reset()

func (*EnableParticipationRequest) String

func (x *EnableParticipationRequest) String() string

type EnableParticipationResponse

type EnableParticipationResponse struct {
	// contains filtered or unexported fields
}

func (*EnableParticipationResponse) Descriptor deprecated

func (*EnableParticipationResponse) Descriptor() ([]byte, []int)

Deprecated: Use EnableParticipationResponse.ProtoReflect.Descriptor instead.

func (*EnableParticipationResponse) ProtoMessage

func (*EnableParticipationResponse) ProtoMessage()

func (*EnableParticipationResponse) ProtoReflect

func (*EnableParticipationResponse) Reset

func (x *EnableParticipationResponse) Reset()

func (*EnableParticipationResponse) String

func (x *EnableParticipationResponse) String() string

type GetCatalogRequest

type GetCatalogRequest struct {
	StoreId string `protobuf:"bytes,1,opt,name=store_id,json=storeId,proto3" json:"store_id,omitempty"`
	// contains filtered or unexported fields
}

func (*GetCatalogRequest) Descriptor deprecated

func (*GetCatalogRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetCatalogRequest.ProtoReflect.Descriptor instead.

func (*GetCatalogRequest) GetStoreId

func (x *GetCatalogRequest) GetStoreId() string

func (*GetCatalogRequest) ProtoMessage

func (*GetCatalogRequest) ProtoMessage()

func (*GetCatalogRequest) ProtoReflect

func (x *GetCatalogRequest) ProtoReflect() protoreflect.Message

func (*GetCatalogRequest) Reset

func (x *GetCatalogRequest) Reset()

func (*GetCatalogRequest) String

func (x *GetCatalogRequest) String() string

type GetCatalogResponse

type GetCatalogResponse struct {
	Products []*Product `protobuf:"bytes,1,rep,name=products,proto3" json:"products,omitempty"`
	// contains filtered or unexported fields
}

func (*GetCatalogResponse) Descriptor deprecated

func (*GetCatalogResponse) Descriptor() ([]byte, []int)

Deprecated: Use GetCatalogResponse.ProtoReflect.Descriptor instead.

func (*GetCatalogResponse) GetProducts

func (x *GetCatalogResponse) GetProducts() []*Product

func (*GetCatalogResponse) ProtoMessage

func (*GetCatalogResponse) ProtoMessage()

func (*GetCatalogResponse) ProtoReflect

func (x *GetCatalogResponse) ProtoReflect() protoreflect.Message

func (*GetCatalogResponse) Reset

func (x *GetCatalogResponse) Reset()

func (*GetCatalogResponse) String

func (x *GetCatalogResponse) String() string

type GetParticipatingStoresRequest

type GetParticipatingStoresRequest struct {
	// contains filtered or unexported fields
}

func (*GetParticipatingStoresRequest) Descriptor deprecated

func (*GetParticipatingStoresRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetParticipatingStoresRequest.ProtoReflect.Descriptor instead.

func (*GetParticipatingStoresRequest) ProtoMessage

func (*GetParticipatingStoresRequest) ProtoMessage()

func (*GetParticipatingStoresRequest) ProtoReflect

func (*GetParticipatingStoresRequest) Reset

func (x *GetParticipatingStoresRequest) Reset()

func (*GetParticipatingStoresRequest) String

type GetParticipatingStoresResponse

type GetParticipatingStoresResponse struct {
	Stores []*Store `protobuf:"bytes,1,rep,name=stores,proto3" json:"stores,omitempty"`
	// contains filtered or unexported fields
}

func (*GetParticipatingStoresResponse) Descriptor deprecated

func (*GetParticipatingStoresResponse) Descriptor() ([]byte, []int)

Deprecated: Use GetParticipatingStoresResponse.ProtoReflect.Descriptor instead.

func (*GetParticipatingStoresResponse) GetStores

func (x *GetParticipatingStoresResponse) GetStores() []*Store

func (*GetParticipatingStoresResponse) ProtoMessage

func (*GetParticipatingStoresResponse) ProtoMessage()

func (*GetParticipatingStoresResponse) ProtoReflect

func (*GetParticipatingStoresResponse) Reset

func (x *GetParticipatingStoresResponse) Reset()

func (*GetParticipatingStoresResponse) String

type GetProductRequest

type GetProductRequest struct {
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

func (*GetProductRequest) Descriptor deprecated

func (*GetProductRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetProductRequest.ProtoReflect.Descriptor instead.

func (*GetProductRequest) GetId

func (x *GetProductRequest) GetId() string

func (*GetProductRequest) ProtoMessage

func (*GetProductRequest) ProtoMessage()

func (*GetProductRequest) ProtoReflect

func (x *GetProductRequest) ProtoReflect() protoreflect.Message

func (*GetProductRequest) Reset

func (x *GetProductRequest) Reset()

func (*GetProductRequest) String

func (x *GetProductRequest) String() string

type GetProductResponse

type GetProductResponse struct {
	Product *Product `protobuf:"bytes,1,opt,name=product,proto3" json:"product,omitempty"`
	// contains filtered or unexported fields
}

func (*GetProductResponse) Descriptor deprecated

func (*GetProductResponse) Descriptor() ([]byte, []int)

Deprecated: Use GetProductResponse.ProtoReflect.Descriptor instead.

func (*GetProductResponse) GetProduct

func (x *GetProductResponse) GetProduct() *Product

func (*GetProductResponse) ProtoMessage

func (*GetProductResponse) ProtoMessage()

func (*GetProductResponse) ProtoReflect

func (x *GetProductResponse) ProtoReflect() protoreflect.Message

func (*GetProductResponse) Reset

func (x *GetProductResponse) Reset()

func (*GetProductResponse) String

func (x *GetProductResponse) String() string

type GetStoreRequest

type GetStoreRequest struct {
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

func (*GetStoreRequest) Descriptor deprecated

func (*GetStoreRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetStoreRequest.ProtoReflect.Descriptor instead.

func (*GetStoreRequest) GetId

func (x *GetStoreRequest) GetId() string

func (*GetStoreRequest) ProtoMessage

func (*GetStoreRequest) ProtoMessage()

func (*GetStoreRequest) ProtoReflect

func (x *GetStoreRequest) ProtoReflect() protoreflect.Message

func (*GetStoreRequest) Reset

func (x *GetStoreRequest) Reset()

func (*GetStoreRequest) String

func (x *GetStoreRequest) String() string

type GetStoreResponse

type GetStoreResponse struct {
	Store *Store `protobuf:"bytes,1,opt,name=store,proto3" json:"store,omitempty"`
	// contains filtered or unexported fields
}

func (*GetStoreResponse) Descriptor deprecated

func (*GetStoreResponse) Descriptor() ([]byte, []int)

Deprecated: Use GetStoreResponse.ProtoReflect.Descriptor instead.

func (*GetStoreResponse) GetStore

func (x *GetStoreResponse) GetStore() *Store

func (*GetStoreResponse) ProtoMessage

func (*GetStoreResponse) ProtoMessage()

func (*GetStoreResponse) ProtoReflect

func (x *GetStoreResponse) ProtoReflect() protoreflect.Message

func (*GetStoreResponse) Reset

func (x *GetStoreResponse) Reset()

func (*GetStoreResponse) String

func (x *GetStoreResponse) String() string

type GetStoresRequest

type GetStoresRequest struct {
	// contains filtered or unexported fields
}

func (*GetStoresRequest) Descriptor deprecated

func (*GetStoresRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetStoresRequest.ProtoReflect.Descriptor instead.

func (*GetStoresRequest) ProtoMessage

func (*GetStoresRequest) ProtoMessage()

func (*GetStoresRequest) ProtoReflect

func (x *GetStoresRequest) ProtoReflect() protoreflect.Message

func (*GetStoresRequest) Reset

func (x *GetStoresRequest) Reset()

func (*GetStoresRequest) String

func (x *GetStoresRequest) String() string

type GetStoresResponse

type GetStoresResponse struct {
	Stores []*Store `protobuf:"bytes,1,rep,name=stores,proto3" json:"stores,omitempty"`
	// contains filtered or unexported fields
}

func (*GetStoresResponse) Descriptor deprecated

func (*GetStoresResponse) Descriptor() ([]byte, []int)

Deprecated: Use GetStoresResponse.ProtoReflect.Descriptor instead.

func (*GetStoresResponse) GetStores

func (x *GetStoresResponse) GetStores() []*Store

func (*GetStoresResponse) ProtoMessage

func (*GetStoresResponse) ProtoMessage()

func (*GetStoresResponse) ProtoReflect

func (x *GetStoresResponse) ProtoReflect() protoreflect.Message

func (*GetStoresResponse) Reset

func (x *GetStoresResponse) Reset()

func (*GetStoresResponse) String

func (x *GetStoresResponse) String() string

type IncreaseProductPriceRequest

type IncreaseProductPriceRequest struct {
	Id    string  `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Price float64 `protobuf:"fixed64,2,opt,name=price,proto3" json:"price,omitempty"`
	// contains filtered or unexported fields
}

func (*IncreaseProductPriceRequest) Descriptor deprecated

func (*IncreaseProductPriceRequest) Descriptor() ([]byte, []int)

Deprecated: Use IncreaseProductPriceRequest.ProtoReflect.Descriptor instead.

func (*IncreaseProductPriceRequest) GetId

func (*IncreaseProductPriceRequest) GetPrice

func (x *IncreaseProductPriceRequest) GetPrice() float64

func (*IncreaseProductPriceRequest) ProtoMessage

func (*IncreaseProductPriceRequest) ProtoMessage()

func (*IncreaseProductPriceRequest) ProtoReflect

func (*IncreaseProductPriceRequest) Reset

func (x *IncreaseProductPriceRequest) Reset()

func (*IncreaseProductPriceRequest) String

func (x *IncreaseProductPriceRequest) String() string

type IncreaseProductPriceResponse

type IncreaseProductPriceResponse struct {
	// contains filtered or unexported fields
}

func (*IncreaseProductPriceResponse) Descriptor deprecated

func (*IncreaseProductPriceResponse) Descriptor() ([]byte, []int)

Deprecated: Use IncreaseProductPriceResponse.ProtoReflect.Descriptor instead.

func (*IncreaseProductPriceResponse) ProtoMessage

func (*IncreaseProductPriceResponse) ProtoMessage()

func (*IncreaseProductPriceResponse) ProtoReflect

func (*IncreaseProductPriceResponse) Reset

func (x *IncreaseProductPriceResponse) Reset()

func (*IncreaseProductPriceResponse) String

type MockStoresServiceClient

type MockStoresServiceClient struct {
	mock.Mock
}

MockStoresServiceClient is an autogenerated mock type for the StoresServiceClient type

func NewMockStoresServiceClient

func NewMockStoresServiceClient(t mockConstructorTestingTNewMockStoresServiceClient) *MockStoresServiceClient

NewMockStoresServiceClient creates a new instance of MockStoresServiceClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.

func (*MockStoresServiceClient) AddProduct

AddProduct provides a mock function with given fields: ctx, in, opts

func (*MockStoresServiceClient) CreateStore

CreateStore provides a mock function with given fields: ctx, in, opts

func (*MockStoresServiceClient) DecreaseProductPrice

DecreaseProductPrice provides a mock function with given fields: ctx, in, opts

func (*MockStoresServiceClient) DisableParticipation

DisableParticipation provides a mock function with given fields: ctx, in, opts

func (*MockStoresServiceClient) EnableParticipation

EnableParticipation provides a mock function with given fields: ctx, in, opts

func (*MockStoresServiceClient) GetCatalog

GetCatalog provides a mock function with given fields: ctx, in, opts

func (*MockStoresServiceClient) GetParticipatingStores

GetParticipatingStores provides a mock function with given fields: ctx, in, opts

func (*MockStoresServiceClient) GetProduct

GetProduct provides a mock function with given fields: ctx, in, opts

func (*MockStoresServiceClient) GetStore

GetStore provides a mock function with given fields: ctx, in, opts

func (*MockStoresServiceClient) GetStores

GetStores provides a mock function with given fields: ctx, in, opts

func (*MockStoresServiceClient) IncreaseProductPrice

IncreaseProductPrice provides a mock function with given fields: ctx, in, opts

func (*MockStoresServiceClient) RebrandProduct

RebrandProduct provides a mock function with given fields: ctx, in, opts

func (*MockStoresServiceClient) RebrandStore

RebrandStore provides a mock function with given fields: ctx, in, opts

func (*MockStoresServiceClient) RemoveProduct

RemoveProduct provides a mock function with given fields: ctx, in, opts

type MockStoresServiceServer

type MockStoresServiceServer struct {
	mock.Mock
}

MockStoresServiceServer is an autogenerated mock type for the StoresServiceServer type

func NewMockStoresServiceServer

func NewMockStoresServiceServer(t mockConstructorTestingTNewMockStoresServiceServer) *MockStoresServiceServer

NewMockStoresServiceServer creates a new instance of MockStoresServiceServer. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.

func (*MockStoresServiceServer) AddProduct

AddProduct provides a mock function with given fields: _a0, _a1

func (*MockStoresServiceServer) CreateStore

CreateStore provides a mock function with given fields: _a0, _a1

func (*MockStoresServiceServer) DecreaseProductPrice

DecreaseProductPrice provides a mock function with given fields: _a0, _a1

func (*MockStoresServiceServer) DisableParticipation

DisableParticipation provides a mock function with given fields: _a0, _a1

func (*MockStoresServiceServer) EnableParticipation

EnableParticipation provides a mock function with given fields: _a0, _a1

func (*MockStoresServiceServer) GetCatalog

GetCatalog provides a mock function with given fields: _a0, _a1

func (*MockStoresServiceServer) GetParticipatingStores

GetParticipatingStores provides a mock function with given fields: _a0, _a1

func (*MockStoresServiceServer) GetProduct

GetProduct provides a mock function with given fields: _a0, _a1

func (*MockStoresServiceServer) GetStore

GetStore provides a mock function with given fields: _a0, _a1

func (*MockStoresServiceServer) GetStores

GetStores provides a mock function with given fields: _a0, _a1

func (*MockStoresServiceServer) IncreaseProductPrice

IncreaseProductPrice provides a mock function with given fields: _a0, _a1

func (*MockStoresServiceServer) RebrandProduct

RebrandProduct provides a mock function with given fields: _a0, _a1

func (*MockStoresServiceServer) RebrandStore

RebrandStore provides a mock function with given fields: _a0, _a1

func (*MockStoresServiceServer) RemoveProduct

RemoveProduct provides a mock function with given fields: _a0, _a1

type MockUnsafeStoresServiceServer

type MockUnsafeStoresServiceServer struct {
	mock.Mock
}

MockUnsafeStoresServiceServer is an autogenerated mock type for the UnsafeStoresServiceServer type

func NewMockUnsafeStoresServiceServer

func NewMockUnsafeStoresServiceServer(t mockConstructorTestingTNewMockUnsafeStoresServiceServer) *MockUnsafeStoresServiceServer

NewMockUnsafeStoresServiceServer creates a new instance of MockUnsafeStoresServiceServer. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.

type Product

type Product struct {
	Id          string  `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	StoreId     string  `protobuf:"bytes,2,opt,name=store_id,json=storeId,proto3" json:"store_id,omitempty"`
	Name        string  `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	Description string  `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
	Sku         string  `protobuf:"bytes,5,opt,name=sku,proto3" json:"sku,omitempty"`
	Price       float64 `protobuf:"fixed64,6,opt,name=price,proto3" json:"price,omitempty"`
	// contains filtered or unexported fields
}

func (*Product) Descriptor deprecated

func (*Product) Descriptor() ([]byte, []int)

Deprecated: Use Product.ProtoReflect.Descriptor instead.

func (*Product) GetDescription

func (x *Product) GetDescription() string

func (*Product) GetId

func (x *Product) GetId() string

func (*Product) GetName

func (x *Product) GetName() string

func (*Product) GetPrice

func (x *Product) GetPrice() float64

func (*Product) GetSku

func (x *Product) GetSku() string

func (*Product) GetStoreId

func (x *Product) GetStoreId() string

func (*Product) ProtoMessage

func (*Product) ProtoMessage()

func (*Product) ProtoReflect

func (x *Product) ProtoReflect() protoreflect.Message

func (*Product) Reset

func (x *Product) Reset()

func (*Product) String

func (x *Product) String() string

type ProductAdded

type ProductAdded struct {
	Id          string  `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	StoreId     string  `protobuf:"bytes,2,opt,name=store_id,json=storeId,proto3" json:"store_id,omitempty"`
	Name        string  `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	Description string  `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
	Sku         string  `protobuf:"bytes,5,opt,name=sku,proto3" json:"sku,omitempty"`
	Price       float64 `protobuf:"fixed64,6,opt,name=price,proto3" json:"price,omitempty"`
	// contains filtered or unexported fields
}

func (*ProductAdded) Descriptor deprecated

func (*ProductAdded) Descriptor() ([]byte, []int)

Deprecated: Use ProductAdded.ProtoReflect.Descriptor instead.

func (*ProductAdded) GetDescription

func (x *ProductAdded) GetDescription() string

func (*ProductAdded) GetId

func (x *ProductAdded) GetId() string

func (*ProductAdded) GetName

func (x *ProductAdded) GetName() string

func (*ProductAdded) GetPrice

func (x *ProductAdded) GetPrice() float64

func (*ProductAdded) GetSku

func (x *ProductAdded) GetSku() string

func (*ProductAdded) GetStoreId

func (x *ProductAdded) GetStoreId() string

func (*ProductAdded) Key

func (*ProductAdded) Key() string

func (*ProductAdded) ProtoMessage

func (*ProductAdded) ProtoMessage()

func (*ProductAdded) ProtoReflect

func (x *ProductAdded) ProtoReflect() protoreflect.Message

func (*ProductAdded) Reset

func (x *ProductAdded) Reset()

func (*ProductAdded) String

func (x *ProductAdded) String() string

type ProductPriceChanged

type ProductPriceChanged struct {
	Id    string  `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Delta float64 `protobuf:"fixed64,2,opt,name=delta,proto3" json:"delta,omitempty"`
	// contains filtered or unexported fields
}

func (*ProductPriceChanged) Descriptor deprecated

func (*ProductPriceChanged) Descriptor() ([]byte, []int)

Deprecated: Use ProductPriceChanged.ProtoReflect.Descriptor instead.

func (*ProductPriceChanged) GetDelta

func (x *ProductPriceChanged) GetDelta() float64

func (*ProductPriceChanged) GetId

func (x *ProductPriceChanged) GetId() string

func (*ProductPriceChanged) ProtoMessage

func (*ProductPriceChanged) ProtoMessage()

func (*ProductPriceChanged) ProtoReflect

func (x *ProductPriceChanged) ProtoReflect() protoreflect.Message

func (*ProductPriceChanged) Reset

func (x *ProductPriceChanged) Reset()

func (*ProductPriceChanged) String

func (x *ProductPriceChanged) String() string

type ProductRebranded

type ProductRebranded struct {
	Id          string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name        string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// contains filtered or unexported fields
}

func (*ProductRebranded) Descriptor deprecated

func (*ProductRebranded) Descriptor() ([]byte, []int)

Deprecated: Use ProductRebranded.ProtoReflect.Descriptor instead.

func (*ProductRebranded) GetDescription

func (x *ProductRebranded) GetDescription() string

func (*ProductRebranded) GetId

func (x *ProductRebranded) GetId() string

func (*ProductRebranded) GetName

func (x *ProductRebranded) GetName() string

func (*ProductRebranded) Key

func (*ProductRebranded) Key() string

func (*ProductRebranded) ProtoMessage

func (*ProductRebranded) ProtoMessage()

func (*ProductRebranded) ProtoReflect

func (x *ProductRebranded) ProtoReflect() protoreflect.Message

func (*ProductRebranded) Reset

func (x *ProductRebranded) Reset()

func (*ProductRebranded) String

func (x *ProductRebranded) String() string

type ProductRemoved

type ProductRemoved struct {
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

func (*ProductRemoved) Descriptor deprecated

func (*ProductRemoved) Descriptor() ([]byte, []int)

Deprecated: Use ProductRemoved.ProtoReflect.Descriptor instead.

func (*ProductRemoved) GetId

func (x *ProductRemoved) GetId() string

func (*ProductRemoved) Key

func (*ProductRemoved) Key() string

func (*ProductRemoved) ProtoMessage

func (*ProductRemoved) ProtoMessage()

func (*ProductRemoved) ProtoReflect

func (x *ProductRemoved) ProtoReflect() protoreflect.Message

func (*ProductRemoved) Reset

func (x *ProductRemoved) Reset()

func (*ProductRemoved) String

func (x *ProductRemoved) String() string

type RebrandProductRequest

type RebrandProductRequest struct {
	Id          string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name        string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// contains filtered or unexported fields
}

func (*RebrandProductRequest) Descriptor deprecated

func (*RebrandProductRequest) Descriptor() ([]byte, []int)

Deprecated: Use RebrandProductRequest.ProtoReflect.Descriptor instead.

func (*RebrandProductRequest) GetDescription

func (x *RebrandProductRequest) GetDescription() string

func (*RebrandProductRequest) GetId

func (x *RebrandProductRequest) GetId() string

func (*RebrandProductRequest) GetName

func (x *RebrandProductRequest) GetName() string

func (*RebrandProductRequest) ProtoMessage

func (*RebrandProductRequest) ProtoMessage()

func (*RebrandProductRequest) ProtoReflect

func (x *RebrandProductRequest) ProtoReflect() protoreflect.Message

func (*RebrandProductRequest) Reset

func (x *RebrandProductRequest) Reset()

func (*RebrandProductRequest) String

func (x *RebrandProductRequest) String() string

type RebrandProductResponse

type RebrandProductResponse struct {
	// contains filtered or unexported fields
}

func (*RebrandProductResponse) Descriptor deprecated

func (*RebrandProductResponse) Descriptor() ([]byte, []int)

Deprecated: Use RebrandProductResponse.ProtoReflect.Descriptor instead.

func (*RebrandProductResponse) ProtoMessage

func (*RebrandProductResponse) ProtoMessage()

func (*RebrandProductResponse) ProtoReflect

func (x *RebrandProductResponse) ProtoReflect() protoreflect.Message

func (*RebrandProductResponse) Reset

func (x *RebrandProductResponse) Reset()

func (*RebrandProductResponse) String

func (x *RebrandProductResponse) String() string

type RebrandStoreRequest

type RebrandStoreRequest struct {
	Id   string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// contains filtered or unexported fields
}

func (*RebrandStoreRequest) Descriptor deprecated

func (*RebrandStoreRequest) Descriptor() ([]byte, []int)

Deprecated: Use RebrandStoreRequest.ProtoReflect.Descriptor instead.

func (*RebrandStoreRequest) GetId

func (x *RebrandStoreRequest) GetId() string

func (*RebrandStoreRequest) GetName

func (x *RebrandStoreRequest) GetName() string

func (*RebrandStoreRequest) ProtoMessage

func (*RebrandStoreRequest) ProtoMessage()

func (*RebrandStoreRequest) ProtoReflect

func (x *RebrandStoreRequest) ProtoReflect() protoreflect.Message

func (*RebrandStoreRequest) Reset

func (x *RebrandStoreRequest) Reset()

func (*RebrandStoreRequest) String

func (x *RebrandStoreRequest) String() string

type RebrandStoreResponse

type RebrandStoreResponse struct {
	// contains filtered or unexported fields
}

func (*RebrandStoreResponse) Descriptor deprecated

func (*RebrandStoreResponse) Descriptor() ([]byte, []int)

Deprecated: Use RebrandStoreResponse.ProtoReflect.Descriptor instead.

func (*RebrandStoreResponse) ProtoMessage

func (*RebrandStoreResponse) ProtoMessage()

func (*RebrandStoreResponse) ProtoReflect

func (x *RebrandStoreResponse) ProtoReflect() protoreflect.Message

func (*RebrandStoreResponse) Reset

func (x *RebrandStoreResponse) Reset()

func (*RebrandStoreResponse) String

func (x *RebrandStoreResponse) String() string

type RemoveProductRequest

type RemoveProductRequest struct {
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

func (*RemoveProductRequest) Descriptor deprecated

func (*RemoveProductRequest) Descriptor() ([]byte, []int)

Deprecated: Use RemoveProductRequest.ProtoReflect.Descriptor instead.

func (*RemoveProductRequest) GetId

func (x *RemoveProductRequest) GetId() string

func (*RemoveProductRequest) ProtoMessage

func (*RemoveProductRequest) ProtoMessage()

func (*RemoveProductRequest) ProtoReflect

func (x *RemoveProductRequest) ProtoReflect() protoreflect.Message

func (*RemoveProductRequest) Reset

func (x *RemoveProductRequest) Reset()

func (*RemoveProductRequest) String

func (x *RemoveProductRequest) String() string

type RemoveProductResponse

type RemoveProductResponse struct {
	// contains filtered or unexported fields
}

func (*RemoveProductResponse) Descriptor deprecated

func (*RemoveProductResponse) Descriptor() ([]byte, []int)

Deprecated: Use RemoveProductResponse.ProtoReflect.Descriptor instead.

func (*RemoveProductResponse) ProtoMessage

func (*RemoveProductResponse) ProtoMessage()

func (*RemoveProductResponse) ProtoReflect

func (x *RemoveProductResponse) ProtoReflect() protoreflect.Message

func (*RemoveProductResponse) Reset

func (x *RemoveProductResponse) Reset()

func (*RemoveProductResponse) String

func (x *RemoveProductResponse) String() string

type Store

type Store struct {
	Id            string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name          string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Location      string `protobuf:"bytes,3,opt,name=location,proto3" json:"location,omitempty"`
	Participating bool   `protobuf:"varint,4,opt,name=participating,proto3" json:"participating,omitempty"`
	// contains filtered or unexported fields
}

func (*Store) Descriptor deprecated

func (*Store) Descriptor() ([]byte, []int)

Deprecated: Use Store.ProtoReflect.Descriptor instead.

func (*Store) GetId

func (x *Store) GetId() string

func (*Store) GetLocation

func (x *Store) GetLocation() string

func (*Store) GetName

func (x *Store) GetName() string

func (*Store) GetParticipating

func (x *Store) GetParticipating() bool

func (*Store) ProtoMessage

func (*Store) ProtoMessage()

func (*Store) ProtoReflect

func (x *Store) ProtoReflect() protoreflect.Message

func (*Store) Reset

func (x *Store) Reset()

func (*Store) String

func (x *Store) String() string

type StoreCreated

type StoreCreated struct {
	Id       string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name     string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Location string `protobuf:"bytes,3,opt,name=location,proto3" json:"location,omitempty"`
	// contains filtered or unexported fields
}

func (*StoreCreated) Descriptor deprecated

func (*StoreCreated) Descriptor() ([]byte, []int)

Deprecated: Use StoreCreated.ProtoReflect.Descriptor instead.

func (*StoreCreated) GetId

func (x *StoreCreated) GetId() string

func (*StoreCreated) GetLocation

func (x *StoreCreated) GetLocation() string

func (*StoreCreated) GetName

func (x *StoreCreated) GetName() string

func (*StoreCreated) Key

func (*StoreCreated) Key() string

func (*StoreCreated) ProtoMessage

func (*StoreCreated) ProtoMessage()

func (*StoreCreated) ProtoReflect

func (x *StoreCreated) ProtoReflect() protoreflect.Message

func (*StoreCreated) Reset

func (x *StoreCreated) Reset()

func (*StoreCreated) String

func (x *StoreCreated) String() string

type StoreParticipationToggled

type StoreParticipationToggled struct {
	Id            string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Participating bool   `protobuf:"varint,2,opt,name=participating,proto3" json:"participating,omitempty"`
	// contains filtered or unexported fields
}

func (*StoreParticipationToggled) Descriptor deprecated

func (*StoreParticipationToggled) Descriptor() ([]byte, []int)

Deprecated: Use StoreParticipationToggled.ProtoReflect.Descriptor instead.

func (*StoreParticipationToggled) GetId

func (x *StoreParticipationToggled) GetId() string

func (*StoreParticipationToggled) GetParticipating

func (x *StoreParticipationToggled) GetParticipating() bool

func (*StoreParticipationToggled) Key

func (*StoreParticipationToggled) ProtoMessage

func (*StoreParticipationToggled) ProtoMessage()

func (*StoreParticipationToggled) ProtoReflect

func (*StoreParticipationToggled) Reset

func (x *StoreParticipationToggled) Reset()

func (*StoreParticipationToggled) String

func (x *StoreParticipationToggled) String() string

type StoreRebranded

type StoreRebranded struct {
	Id   string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// contains filtered or unexported fields
}

func (*StoreRebranded) Descriptor deprecated

func (*StoreRebranded) Descriptor() ([]byte, []int)

Deprecated: Use StoreRebranded.ProtoReflect.Descriptor instead.

func (*StoreRebranded) GetId

func (x *StoreRebranded) GetId() string

func (*StoreRebranded) GetName

func (x *StoreRebranded) GetName() string

func (*StoreRebranded) Key

func (*StoreRebranded) Key() string

func (*StoreRebranded) ProtoMessage

func (*StoreRebranded) ProtoMessage()

func (*StoreRebranded) ProtoReflect

func (x *StoreRebranded) ProtoReflect() protoreflect.Message

func (*StoreRebranded) Reset

func (x *StoreRebranded) Reset()

func (*StoreRebranded) String

func (x *StoreRebranded) String() string

type StoresServiceClient

type StoresServiceClient interface {
	CreateStore(ctx context.Context, in *CreateStoreRequest, opts ...grpc.CallOption) (*CreateStoreResponse, error)
	EnableParticipation(ctx context.Context, in *EnableParticipationRequest, opts ...grpc.CallOption) (*EnableParticipationResponse, error)
	DisableParticipation(ctx context.Context, in *DisableParticipationRequest, opts ...grpc.CallOption) (*DisableParticipationResponse, error)
	RebrandStore(ctx context.Context, in *RebrandStoreRequest, opts ...grpc.CallOption) (*RebrandStoreResponse, error)
	GetStore(ctx context.Context, in *GetStoreRequest, opts ...grpc.CallOption) (*GetStoreResponse, error)
	GetStores(ctx context.Context, in *GetStoresRequest, opts ...grpc.CallOption) (*GetStoresResponse, error)
	GetParticipatingStores(ctx context.Context, in *GetParticipatingStoresRequest, opts ...grpc.CallOption) (*GetParticipatingStoresResponse, error)
	AddProduct(ctx context.Context, in *AddProductRequest, opts ...grpc.CallOption) (*AddProductResponse, error)
	RebrandProduct(ctx context.Context, in *RebrandProductRequest, opts ...grpc.CallOption) (*RebrandProductResponse, error)
	IncreaseProductPrice(ctx context.Context, in *IncreaseProductPriceRequest, opts ...grpc.CallOption) (*IncreaseProductPriceResponse, error)
	DecreaseProductPrice(ctx context.Context, in *DecreaseProductPriceRequest, opts ...grpc.CallOption) (*DecreaseProductPriceResponse, error)
	RemoveProduct(ctx context.Context, in *RemoveProductRequest, opts ...grpc.CallOption) (*RemoveProductResponse, error)
	GetProduct(ctx context.Context, in *GetProductRequest, opts ...grpc.CallOption) (*GetProductResponse, error)
	GetCatalog(ctx context.Context, in *GetCatalogRequest, opts ...grpc.CallOption) (*GetCatalogResponse, error)
}

StoresServiceClient is the client API for StoresService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

type StoresServiceServer

StoresServiceServer is the server API for StoresService service. All implementations must embed UnimplementedStoresServiceServer for forward compatibility

type UnimplementedStoresServiceServer

type UnimplementedStoresServiceServer struct {
}

UnimplementedStoresServiceServer must be embedded to have forward compatible implementations.

func (UnimplementedStoresServiceServer) AddProduct

func (UnimplementedStoresServiceServer) CreateStore

func (UnimplementedStoresServiceServer) GetCatalog

func (UnimplementedStoresServiceServer) GetProduct

func (UnimplementedStoresServiceServer) GetStore

func (UnimplementedStoresServiceServer) GetStores

func (UnimplementedStoresServiceServer) RebrandProduct

func (UnimplementedStoresServiceServer) RebrandStore

func (UnimplementedStoresServiceServer) RemoveProduct

type UnsafeStoresServiceServer

type UnsafeStoresServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeStoresServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to StoresServiceServer will result in compilation errors.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL