mirror of
https://github.com/go-micro/go-micro.git
synced 2025-01-05 10:20:53 +02:00
4ae2528cbe
* add m3o services * update readme
114 lines
2.6 KiB
Go
Executable File
114 lines
2.6 KiB
Go
Executable File
package cache
|
|
|
|
import (
|
|
"github.com/m3o/m3o-go/client"
|
|
)
|
|
|
|
func NewCacheService(token string) *CacheService {
|
|
return &CacheService{
|
|
client: client.NewClient(&client.Options{
|
|
Token: token,
|
|
}),
|
|
}
|
|
}
|
|
|
|
type CacheService struct {
|
|
client *client.Client
|
|
}
|
|
|
|
// Decrement a value (if it's a number)
|
|
func (t *CacheService) Decrement(request *DecrementRequest) (*DecrementResponse, error) {
|
|
rsp := &DecrementResponse{}
|
|
return rsp, t.client.Call("cache", "Decrement", request, rsp)
|
|
}
|
|
|
|
// Delete a value from the cache
|
|
func (t *CacheService) Delete(request *DeleteRequest) (*DeleteResponse, error) {
|
|
rsp := &DeleteResponse{}
|
|
return rsp, t.client.Call("cache", "Delete", request, rsp)
|
|
}
|
|
|
|
// Get an item from the cache by key
|
|
func (t *CacheService) Get(request *GetRequest) (*GetResponse, error) {
|
|
rsp := &GetResponse{}
|
|
return rsp, t.client.Call("cache", "Get", request, rsp)
|
|
}
|
|
|
|
// Increment a value (if it's a number)
|
|
func (t *CacheService) Increment(request *IncrementRequest) (*IncrementResponse, error) {
|
|
rsp := &IncrementResponse{}
|
|
return rsp, t.client.Call("cache", "Increment", request, rsp)
|
|
}
|
|
|
|
// Set an item in the cache. Overwrites any existing value already set.
|
|
func (t *CacheService) Set(request *SetRequest) (*SetResponse, error) {
|
|
rsp := &SetResponse{}
|
|
return rsp, t.client.Call("cache", "Set", request, rsp)
|
|
}
|
|
|
|
type DecrementRequest struct {
|
|
// The key to decrement
|
|
Key string `json:"key"`
|
|
// The amount to decrement the value by
|
|
Value int64 `json:"value,string"`
|
|
}
|
|
|
|
type DecrementResponse struct {
|
|
// The key decremented
|
|
Key string `json:"key"`
|
|
// The new value
|
|
Value int64 `json:"value,string"`
|
|
}
|
|
|
|
type DeleteRequest struct {
|
|
// The key to delete
|
|
Key string `json:"key"`
|
|
}
|
|
|
|
type DeleteResponse struct {
|
|
// Returns "ok" if successful
|
|
Status string `json:"status"`
|
|
}
|
|
|
|
type GetRequest struct {
|
|
// The key to retrieve
|
|
Key string `json:"key"`
|
|
}
|
|
|
|
type GetResponse struct {
|
|
// The key
|
|
Key string `json:"key"`
|
|
// Time to live in seconds
|
|
Ttl int64 `json:"ttl,string"`
|
|
// The value
|
|
Value string `json:"value"`
|
|
}
|
|
|
|
type IncrementRequest struct {
|
|
// The key to increment
|
|
Key string `json:"key"`
|
|
// The amount to increment the value by
|
|
Value int64 `json:"value,string"`
|
|
}
|
|
|
|
type IncrementResponse struct {
|
|
// The key incremented
|
|
Key string `json:"key"`
|
|
// The new value
|
|
Value int64 `json:"value,string"`
|
|
}
|
|
|
|
type SetRequest struct {
|
|
// The key to update
|
|
Key string `json:"key"`
|
|
// Time to live in seconds
|
|
Ttl int64 `json:"ttl,string"`
|
|
// The value to set
|
|
Value string `json:"value"`
|
|
}
|
|
|
|
type SetResponse struct {
|
|
// Returns "ok" if successful
|
|
Status string `json:"status"`
|
|
}
|