customers

package
v1.6.1 Latest Latest
Warning

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

Go to latest
Published: Jul 20, 2023 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var File_proto_customers_proto protoreflect.FileDescriptor

Functions

func NewCustomersEndpoints

func NewCustomersEndpoints() []*api.Endpoint

func RegisterCustomersHandler

func RegisterCustomersHandler(s server.Server, hdlr CustomersHandler, opts ...server.HandlerOption) error

Types

type BanRequest

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

func (*BanRequest) Descriptor deprecated

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

Deprecated: Use BanRequest.ProtoReflect.Descriptor instead.

func (*BanRequest) GetEmail

func (x *BanRequest) GetEmail() string

func (*BanRequest) GetId

func (x *BanRequest) GetId() string

func (*BanRequest) ProtoMessage

func (*BanRequest) ProtoMessage()

func (*BanRequest) ProtoReflect

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

func (*BanRequest) Reset

func (x *BanRequest) Reset()

func (*BanRequest) String

func (x *BanRequest) String() string

type BanResponse

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

func (*BanResponse) Descriptor deprecated

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

Deprecated: Use BanResponse.ProtoReflect.Descriptor instead.

func (*BanResponse) ProtoMessage

func (*BanResponse) ProtoMessage()

func (*BanResponse) ProtoReflect

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

func (*BanResponse) Reset

func (x *BanResponse) Reset()

func (*BanResponse) String

func (x *BanResponse) String() string

type CreateRequest

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

func (*CreateRequest) Descriptor deprecated

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

Deprecated: Use CreateRequest.ProtoReflect.Descriptor instead.

func (*CreateRequest) GetEmail

func (x *CreateRequest) GetEmail() string

func (*CreateRequest) GetId

func (x *CreateRequest) GetId() string

func (*CreateRequest) ProtoMessage

func (*CreateRequest) ProtoMessage()

func (*CreateRequest) ProtoReflect

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

func (*CreateRequest) Reset

func (x *CreateRequest) Reset()

func (*CreateRequest) String

func (x *CreateRequest) String() string

type CreateResponse

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

func (*CreateResponse) Descriptor deprecated

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

Deprecated: Use CreateResponse.ProtoReflect.Descriptor instead.

func (*CreateResponse) GetCustomer

func (x *CreateResponse) GetCustomer() *Customer

func (*CreateResponse) ProtoMessage

func (*CreateResponse) ProtoMessage()

func (*CreateResponse) ProtoReflect

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

func (*CreateResponse) Reset

func (x *CreateResponse) Reset()

func (*CreateResponse) String

func (x *CreateResponse) String() string

type Customer

type Customer struct {
	Id      string            `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Status  string            `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` // awaiting_verification, verified, active, inactive
	Created int64             `protobuf:"varint,3,opt,name=created,proto3" json:"created,omitempty"`
	Email   string            `protobuf:"bytes,6,opt,name=email,proto3" json:"email,omitempty"`
	Updated int64             `protobuf:"varint,7,opt,name=updated,proto3" json:"updated,omitempty"`
	Meta    map[string]string `` /* 149-byte string literal not displayed */
	Name    string            `protobuf:"bytes,9,opt,name=name,proto3" json:"name,omitempty"`
	// contains filtered or unexported fields
}

func (*Customer) Descriptor deprecated

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

Deprecated: Use Customer.ProtoReflect.Descriptor instead.

func (*Customer) GetCreated

func (x *Customer) GetCreated() int64

func (*Customer) GetEmail

func (x *Customer) GetEmail() string

func (*Customer) GetId

func (x *Customer) GetId() string

func (*Customer) GetMeta

func (x *Customer) GetMeta() map[string]string

func (*Customer) GetName

func (x *Customer) GetName() string

func (*Customer) GetStatus

func (x *Customer) GetStatus() string

func (*Customer) GetUpdated

func (x *Customer) GetUpdated() int64

func (*Customer) ProtoMessage

func (*Customer) ProtoMessage()

func (*Customer) ProtoReflect

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

func (*Customer) Reset

func (x *Customer) Reset()

func (*Customer) String

func (x *Customer) String() string

type CustomersHandler

type CustomersHandler interface {
	// Creates a new, unverified customer
	Create(context.Context, *CreateRequest, *CreateResponse) error
	// Mark the customer as verified
	MarkVerified(context.Context, *MarkVerifiedRequest, *MarkVerifiedResponse) error
	// Retrieve a customer
	Read(context.Context, *ReadRequest, *ReadResponse) error
	// Marks a customer as inactive
	Delete(context.Context, *DeleteRequest, *DeleteResponse) error
	// Lists all customers
	List(context.Context, *ListRequest, *ListResponse) error
	// Updates a customer
	Update(context.Context, *UpdateRequest, *UpdateResponse) error
	// Ban the customer
	Ban(context.Context, *BanRequest, *BanResponse) error
	// Unban the customer
	Unban(context.Context, *UnbanRequest, *UnbanResponse) error
	// Login returns an auth token
	Login(context.Context, *LoginRequest, *LoginResponse) error
	// Logout logs the user out
	Logout(context.Context, *LogoutRequest, *LogoutResponse) error
	// Update the name
	UpdateName(context.Context, *UpdateNameRequest, *UpdateNameResponse) error
}

type CustomersService

type CustomersService interface {
	// Creates a new, unverified customer
	Create(ctx context.Context, in *CreateRequest, opts ...client.CallOption) (*CreateResponse, error)
	// Mark the customer as verified
	MarkVerified(ctx context.Context, in *MarkVerifiedRequest, opts ...client.CallOption) (*MarkVerifiedResponse, error)
	// Retrieve a customer
	Read(ctx context.Context, in *ReadRequest, opts ...client.CallOption) (*ReadResponse, error)
	// Marks a customer as inactive
	Delete(ctx context.Context, in *DeleteRequest, opts ...client.CallOption) (*DeleteResponse, error)
	// Lists all customers
	List(ctx context.Context, in *ListRequest, opts ...client.CallOption) (*ListResponse, error)
	// Updates a customer
	Update(ctx context.Context, in *UpdateRequest, opts ...client.CallOption) (*UpdateResponse, error)
	// Ban the customer
	Ban(ctx context.Context, in *BanRequest, opts ...client.CallOption) (*BanResponse, error)
	// Unban the customer
	Unban(ctx context.Context, in *UnbanRequest, opts ...client.CallOption) (*UnbanResponse, error)
	// Login returns an auth token
	Login(ctx context.Context, in *LoginRequest, opts ...client.CallOption) (*LoginResponse, error)
	// Logout logs the user out
	Logout(ctx context.Context, in *LogoutRequest, opts ...client.CallOption) (*LogoutResponse, error)
	// Update the name
	UpdateName(ctx context.Context, in *UpdateNameRequest, opts ...client.CallOption) (*UpdateNameResponse, error)
}

func NewCustomersService

func NewCustomersService(name string, c client.Client) CustomersService

type DeleteRequest

type DeleteRequest struct {
	Id    string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"`
	Force bool   `protobuf:"varint,3,opt,name=force,proto3" json:"force,omitempty"`
	// contains filtered or unexported fields
}

func (*DeleteRequest) Descriptor deprecated

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

Deprecated: Use DeleteRequest.ProtoReflect.Descriptor instead.

func (*DeleteRequest) GetEmail

func (x *DeleteRequest) GetEmail() string

func (*DeleteRequest) GetForce

func (x *DeleteRequest) GetForce() bool

func (*DeleteRequest) GetId

func (x *DeleteRequest) GetId() string

func (*DeleteRequest) ProtoMessage

func (*DeleteRequest) ProtoMessage()

func (*DeleteRequest) ProtoReflect

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

func (*DeleteRequest) Reset

func (x *DeleteRequest) Reset()

func (*DeleteRequest) String

func (x *DeleteRequest) String() string

type DeleteResponse

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

func (*DeleteResponse) Descriptor deprecated

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

Deprecated: Use DeleteResponse.ProtoReflect.Descriptor instead.

func (*DeleteResponse) ProtoMessage

func (*DeleteResponse) ProtoMessage()

func (*DeleteResponse) ProtoReflect

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

func (*DeleteResponse) Reset

func (x *DeleteResponse) Reset()

func (*DeleteResponse) String

func (x *DeleteResponse) String() string

type ListRequest

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

func (*ListRequest) Descriptor deprecated

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

Deprecated: Use ListRequest.ProtoReflect.Descriptor instead.

func (*ListRequest) ProtoMessage

func (*ListRequest) ProtoMessage()

func (*ListRequest) ProtoReflect

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

func (*ListRequest) Reset

func (x *ListRequest) Reset()

func (*ListRequest) String

func (x *ListRequest) String() string

type ListResponse

type ListResponse struct {
	Customers []*Customer `protobuf:"bytes,1,rep,name=customers,proto3" json:"customers,omitempty"`
	// contains filtered or unexported fields
}

func (*ListResponse) Descriptor deprecated

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

Deprecated: Use ListResponse.ProtoReflect.Descriptor instead.

func (*ListResponse) GetCustomers

func (x *ListResponse) GetCustomers() []*Customer

func (*ListResponse) ProtoMessage

func (*ListResponse) ProtoMessage()

func (*ListResponse) ProtoReflect

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

func (*ListResponse) Reset

func (x *ListResponse) Reset()

func (*ListResponse) String

func (x *ListResponse) String() string

type LoginRequest

type LoginRequest struct {
	Email        string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"`
	Password     string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
	RefreshToken string `protobuf:"bytes,3,opt,name=refresh_token,json=refreshToken,proto3" json:"refresh_token,omitempty"`
	// contains filtered or unexported fields
}

func (*LoginRequest) Descriptor deprecated

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

Deprecated: Use LoginRequest.ProtoReflect.Descriptor instead.

func (*LoginRequest) GetEmail

func (x *LoginRequest) GetEmail() string

func (*LoginRequest) GetPassword

func (x *LoginRequest) GetPassword() string

func (*LoginRequest) GetRefreshToken

func (x *LoginRequest) GetRefreshToken() string

func (*LoginRequest) ProtoMessage

func (*LoginRequest) ProtoMessage()

func (*LoginRequest) ProtoReflect

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

func (*LoginRequest) Reset

func (x *LoginRequest) Reset()

func (*LoginRequest) String

func (x *LoginRequest) String() string

type LoginResponse

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

func (*LoginResponse) Descriptor deprecated

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

Deprecated: Use LoginResponse.ProtoReflect.Descriptor instead.

func (*LoginResponse) GetToken

func (x *LoginResponse) GetToken() *Token

func (*LoginResponse) ProtoMessage

func (*LoginResponse) ProtoMessage()

func (*LoginResponse) ProtoReflect

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

func (*LoginResponse) Reset

func (x *LoginResponse) Reset()

func (*LoginResponse) String

func (x *LoginResponse) String() string

type LogoutRequest

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

func (*LogoutRequest) Descriptor deprecated

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

Deprecated: Use LogoutRequest.ProtoReflect.Descriptor instead.

func (*LogoutRequest) ProtoMessage

func (*LogoutRequest) ProtoMessage()

func (*LogoutRequest) ProtoReflect

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

func (*LogoutRequest) Reset

func (x *LogoutRequest) Reset()

func (*LogoutRequest) String

func (x *LogoutRequest) String() string

type LogoutResponse

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

func (*LogoutResponse) Descriptor deprecated

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

Deprecated: Use LogoutResponse.ProtoReflect.Descriptor instead.

func (*LogoutResponse) ProtoMessage

func (*LogoutResponse) ProtoMessage()

func (*LogoutResponse) ProtoReflect

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

func (*LogoutResponse) Reset

func (x *LogoutResponse) Reset()

func (*LogoutResponse) String

func (x *LogoutResponse) String() string

type MarkVerifiedRequest

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

func (*MarkVerifiedRequest) Descriptor deprecated

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

Deprecated: Use MarkVerifiedRequest.ProtoReflect.Descriptor instead.

func (*MarkVerifiedRequest) GetEmail

func (x *MarkVerifiedRequest) GetEmail() string

func (*MarkVerifiedRequest) GetId

func (x *MarkVerifiedRequest) GetId() string

func (*MarkVerifiedRequest) ProtoMessage

func (*MarkVerifiedRequest) ProtoMessage()

func (*MarkVerifiedRequest) ProtoReflect

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

func (*MarkVerifiedRequest) Reset

func (x *MarkVerifiedRequest) Reset()

func (*MarkVerifiedRequest) String

func (x *MarkVerifiedRequest) String() string

type MarkVerifiedResponse

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

func (*MarkVerifiedResponse) Descriptor deprecated

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

Deprecated: Use MarkVerifiedResponse.ProtoReflect.Descriptor instead.

func (*MarkVerifiedResponse) ProtoMessage

func (*MarkVerifiedResponse) ProtoMessage()

func (*MarkVerifiedResponse) ProtoReflect

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

func (*MarkVerifiedResponse) Reset

func (x *MarkVerifiedResponse) Reset()

func (*MarkVerifiedResponse) String

func (x *MarkVerifiedResponse) String() string

type ReadRequest

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

func (*ReadRequest) Descriptor deprecated

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

Deprecated: Use ReadRequest.ProtoReflect.Descriptor instead.

func (*ReadRequest) GetEmail

func (x *ReadRequest) GetEmail() string

func (*ReadRequest) GetId

func (x *ReadRequest) GetId() string

func (*ReadRequest) ProtoMessage

func (*ReadRequest) ProtoMessage()

func (*ReadRequest) ProtoReflect

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

func (*ReadRequest) Reset

func (x *ReadRequest) Reset()

func (*ReadRequest) String

func (x *ReadRequest) String() string

type ReadResponse

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

func (*ReadResponse) Descriptor deprecated

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

Deprecated: Use ReadResponse.ProtoReflect.Descriptor instead.

func (*ReadResponse) GetCustomer

func (x *ReadResponse) GetCustomer() *Customer

func (*ReadResponse) ProtoMessage

func (*ReadResponse) ProtoMessage()

func (*ReadResponse) ProtoReflect

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

func (*ReadResponse) Reset

func (x *ReadResponse) Reset()

func (*ReadResponse) String

func (x *ReadResponse) String() string

type Token

type Token struct {
	AccessToken  string `protobuf:"bytes,1,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"`
	RefreshToken string `protobuf:"bytes,2,opt,name=refresh_token,json=refreshToken,proto3" json:"refresh_token,omitempty"`
	Expiry       int64  `protobuf:"varint,3,opt,name=expiry,proto3" json:"expiry,omitempty"`
	// contains filtered or unexported fields
}

func (*Token) Descriptor deprecated

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

Deprecated: Use Token.ProtoReflect.Descriptor instead.

func (*Token) GetAccessToken

func (x *Token) GetAccessToken() string

func (*Token) GetExpiry

func (x *Token) GetExpiry() int64

func (*Token) GetRefreshToken

func (x *Token) GetRefreshToken() string

func (*Token) ProtoMessage

func (*Token) ProtoMessage()

func (*Token) ProtoReflect

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

func (*Token) Reset

func (x *Token) Reset()

func (*Token) String

func (x *Token) String() string

type UnbanRequest

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

func (*UnbanRequest) Descriptor deprecated

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

Deprecated: Use UnbanRequest.ProtoReflect.Descriptor instead.

func (*UnbanRequest) GetEmail

func (x *UnbanRequest) GetEmail() string

func (*UnbanRequest) GetId

func (x *UnbanRequest) GetId() string

func (*UnbanRequest) ProtoMessage

func (*UnbanRequest) ProtoMessage()

func (*UnbanRequest) ProtoReflect

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

func (*UnbanRequest) Reset

func (x *UnbanRequest) Reset()

func (*UnbanRequest) String

func (x *UnbanRequest) String() string

type UnbanResponse

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

func (*UnbanResponse) Descriptor deprecated

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

Deprecated: Use UnbanResponse.ProtoReflect.Descriptor instead.

func (*UnbanResponse) ProtoMessage

func (*UnbanResponse) ProtoMessage()

func (*UnbanResponse) ProtoReflect

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

func (*UnbanResponse) Reset

func (x *UnbanResponse) Reset()

func (*UnbanResponse) String

func (x *UnbanResponse) String() string

type UpdateNameRequest

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

func (*UpdateNameRequest) Descriptor deprecated

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

Deprecated: Use UpdateNameRequest.ProtoReflect.Descriptor instead.

func (*UpdateNameRequest) GetId

func (x *UpdateNameRequest) GetId() string

func (*UpdateNameRequest) GetName

func (x *UpdateNameRequest) GetName() string

func (*UpdateNameRequest) ProtoMessage

func (*UpdateNameRequest) ProtoMessage()

func (*UpdateNameRequest) ProtoReflect

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

func (*UpdateNameRequest) Reset

func (x *UpdateNameRequest) Reset()

func (*UpdateNameRequest) String

func (x *UpdateNameRequest) String() string

type UpdateNameResponse

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

func (*UpdateNameResponse) Descriptor deprecated

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

Deprecated: Use UpdateNameResponse.ProtoReflect.Descriptor instead.

func (*UpdateNameResponse) ProtoMessage

func (*UpdateNameResponse) ProtoMessage()

func (*UpdateNameResponse) ProtoReflect

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

func (*UpdateNameResponse) Reset

func (x *UpdateNameResponse) Reset()

func (*UpdateNameResponse) String

func (x *UpdateNameResponse) String() string

type UpdateRequest

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

func (*UpdateRequest) Descriptor deprecated

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

Deprecated: Use UpdateRequest.ProtoReflect.Descriptor instead.

func (*UpdateRequest) GetCustomer

func (x *UpdateRequest) GetCustomer() *Customer

func (*UpdateRequest) ProtoMessage

func (*UpdateRequest) ProtoMessage()

func (*UpdateRequest) ProtoReflect

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

func (*UpdateRequest) Reset

func (x *UpdateRequest) Reset()

func (*UpdateRequest) String

func (x *UpdateRequest) String() string

type UpdateResponse

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

func (*UpdateResponse) Descriptor deprecated

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

Deprecated: Use UpdateResponse.ProtoReflect.Descriptor instead.

func (*UpdateResponse) ProtoMessage

func (*UpdateResponse) ProtoMessage()

func (*UpdateResponse) ProtoReflect

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

func (*UpdateResponse) Reset

func (x *UpdateResponse) Reset()

func (*UpdateResponse) String

func (x *UpdateResponse) String() string

Directories

Path Synopsis
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

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