mirror of
https://github.com/kevin-DL/m3o-go.git
synced 2026-01-17 04:54:51 +00:00
Commit from m3o/m3o action
This commit is contained in:
113
go/cache/cache.go
vendored
Executable file
113
go/cache/cache.go
vendored
Executable file
@@ -0,0 +1,113 @@
|
||||
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"`
|
||||
}
|
||||
Reference in New Issue
Block a user