3 Commits
v0.5.0 ... beta

Author SHA1 Message Date
Janos Dobronszki
868a78e2e6 F 2021-11-09 11:33:49 +00:00
Janos Dobronszki
b771c36d74 F 2021-11-09 11:08:08 +00:00
Janos Dobronszki
9fd910f769 Run idempotent tests 2021-11-09 11:06:04 +00:00
249 changed files with 1364 additions and 4246 deletions

View File

@@ -35,13 +35,13 @@ type LookupPostcodeResponse struct {
type Record struct { type Record struct {
// building name // building name
BuildingName string `json:"building_name"` BuildingName string `json:"buildingName"`
// the county // the county
County string `json:"county"` County string `json:"county"`
// line one of address // line one of address
LineOne string `json:"line_one"` LineOne string `json:"lineOne"`
// line two of address // line two of address
LineTwo string `json:"line_two"` LineTwo string `json:"lineTwo"`
// dependent locality // dependent locality
Locality string `json:"locality"` Locality string `json:"locality"`
// organisation if present // organisation if present

View File

@@ -1,202 +0,0 @@
package app
import (
"go.m3o.com/client"
)
func NewAppService(token string) *AppService {
return &AppService{
client: client.NewClient(&client.Options{
Token: token,
}),
}
}
type AppService struct {
client *client.Client
}
// Delete an app
func (t *AppService) Delete(request *DeleteRequest) (*DeleteResponse, error) {
rsp := &DeleteResponse{}
return rsp, t.client.Call("app", "Delete", request, rsp)
}
// List all the apps
func (t *AppService) List(request *ListRequest) (*ListResponse, error) {
rsp := &ListResponse{}
return rsp, t.client.Call("app", "List", request, rsp)
}
// Return the support regions
func (t *AppService) Regions(request *RegionsRequest) (*RegionsResponse, error) {
rsp := &RegionsResponse{}
return rsp, t.client.Call("app", "Regions", request, rsp)
}
// Reserve apps beyond the free quota. Call Run after.
func (t *AppService) Reserve(request *ReserveRequest) (*ReserveResponse, error) {
rsp := &ReserveResponse{}
return rsp, t.client.Call("app", "Reserve", request, rsp)
}
// Resolve an app by id to its raw backend endpoint
func (t *AppService) Resolve(request *ResolveRequest) (*ResolveResponse, error) {
rsp := &ResolveResponse{}
return rsp, t.client.Call("app", "Resolve", request, rsp)
}
// Run an app from a source repo. Specify region etc.
func (t *AppService) Run(request *RunRequest) (*RunResponse, error) {
rsp := &RunResponse{}
return rsp, t.client.Call("app", "Run", request, rsp)
}
// Get the status of an app
func (t *AppService) Status(request *StatusRequest) (*StatusResponse, error) {
rsp := &StatusResponse{}
return rsp, t.client.Call("app", "Status", request, rsp)
}
// Update the app. The latest source code will be downloaded, built and deployed.
func (t *AppService) Update(request *UpdateRequest) (*UpdateResponse, error) {
rsp := &UpdateResponse{}
return rsp, t.client.Call("app", "Update", request, rsp)
}
type DeleteRequest struct {
// name of the app
Name string `json:"name"`
}
type DeleteResponse struct {
}
type ListRequest struct {
}
type ListResponse struct {
// all the apps
Services []Service `json:"services"`
}
type RegionsRequest struct {
}
type RegionsResponse struct {
Regions []string `json:"regions"`
}
type Reservation struct {
// time of reservation
Created string `json:"created"`
// time reservation expires
Expires string `json:"expires"`
// name of the app
Name string `json:"name"`
// owner id
Owner string `json:"owner"`
// associated token
Token string `json:"token"`
}
type ReserveRequest struct {
// name of your app e.g helloworld
Name string `json:"name"`
}
type ReserveResponse struct {
// The app reservation
Reservation *Reservation `json:"reservation"`
}
type ResolveRequest struct {
// the service id
Id string `json:"id"`
}
type ResolveResponse struct {
// the end provider url
Url string `json:"url"`
}
type RunRequest struct {
// branch. defaults to master
Branch string `json:"branch"`
// associatede env vars to pass in
EnvVars map[string]string `json:"env_vars"`
// name of the app
Name string `json:"name"`
// port to run on
Port int32 `json:"port"`
// region to run in
Region string `json:"region"`
// source repository
Repo string `json:"repo"`
}
type RunResponse struct {
// The running service
Service *Service `json:"service"`
}
type Service struct {
// branch of code
Branch string `json:"branch"`
// time of creation
Created string `json:"created"`
// custom domains
CustomDomains string `json:"custom_domains"`
// associated env vars
EnvVars map[string]string `json:"env_vars"`
// unique id
Id string `json:"id"`
// name of the app
Name string `json:"name"`
// port running on
Port int32 `json:"port"`
// region running in
Region string `json:"region"`
// source repository
Repo string `json:"repo"`
// status of the app
Status string `json:"status"`
// last updated
Updated string `json:"updated"`
// app url
Url string `json:"url"`
}
type StatusRequest struct {
// name of the app
Name string `json:"name"`
}
type StatusResponse struct {
// running service info
Service *Service `json:"service"`
}
type UpdateRequest struct {
// name of the app
Name string `json:"name"`
}
type UpdateResponse struct {
}

View File

@@ -1,46 +0,0 @@
package avatar
import (
"go.m3o.com/client"
)
func NewAvatarService(token string) *AvatarService {
return &AvatarService{
client: client.NewClient(&client.Options{
Token: token,
}),
}
}
type AvatarService struct {
client *client.Client
}
//
func (t *AvatarService) Generate(request *GenerateRequest) (*GenerateResponse, error) {
rsp := &GenerateResponse{}
return rsp, t.client.Call("avatar", "Generate", request, rsp)
}
type GenerateRequest struct {
// encode format of avatar image, `png` or `jpeg`, default is `jpeg`
Format string `json:"format"`
// avatar's gender, `male` or `female`, default is `male`
Gender string `json:"gender"`
// if upload to m3o CDN, default is `false`
// if update = true, then it'll return the CDN url
Upload bool `json:"upload"`
// avatar's username, unique username will generates the unique avatar;
// if username == "", will generate a random avatar in every request
// if upload == true, username will be used as CDN filename rather than a random uuid string
Username string `json:"username"`
}
type GenerateResponse struct {
// base64encode string of the avatar image
Base64 string `json:"base64"`
// Micro's CDN url of the avatar image
Url string `json:"url"`
}

View File

@@ -6,10 +6,6 @@ import (
) )
func TestBasicCall(t *testing.T) { func TestBasicCall(t *testing.T) {
if v := os.Getenv("IN_TRAVIS"); v == "yes" {
return
}
response := map[string]interface{}{} response := map[string]interface{}{}
if err := NewClient(&Options{ if err := NewClient(&Options{
Token: os.Getenv("TOKEN"), Token: os.Getenv("TOKEN"),

View File

@@ -114,13 +114,13 @@ type QuoteRequest struct {
type QuoteResponse struct { type QuoteResponse struct {
// the asking price // the asking price
AskPrice float64 `json:"ask_price"` AskPrice float64 `json:"askPrice"`
// the ask size // the ask size
AskSize float64 `json:"ask_size"` AskSize float64 `json:"askSize"`
// the bidding price // the bidding price
BidPrice float64 `json:"bid_price"` BidPrice float64 `json:"bidPrice"`
// the bid size // the bid size
BidSize float64 `json:"bid_size"` BidSize float64 `json:"bidSize"`
// the crypto symbol // the crypto symbol
Symbol string `json:"symbol"` Symbol string `json:"symbol"`
// the UTC timestamp of the quote // the UTC timestamp of the quote

View File

@@ -40,22 +40,6 @@ func (t *DbService) Delete(request *DeleteRequest) (*DeleteResponse, error) {
} }
// Drop a table in the DB
func (t *DbService) DropTable(request *DropTableRequest) (*DropTableResponse, error) {
rsp := &DropTableResponse{}
return rsp, t.client.Call("db", "DropTable", request, rsp)
}
// List tables in the DB
func (t *DbService) ListTables(request *ListTablesRequest) (*ListTablesResponse, error) {
rsp := &ListTablesResponse{}
return rsp, t.client.Call("db", "ListTables", request, rsp)
}
// Read data from a table. Lookup can be by ID or via querying any field in the record. // Read data from a table. Lookup can be by ID or via querying any field in the record.
func (t *DbService) Read(request *ReadRequest) (*ReadResponse, error) { func (t *DbService) Read(request *ReadRequest) (*ReadResponse, error) {
@@ -64,14 +48,6 @@ func (t *DbService) Read(request *ReadRequest) (*ReadResponse, error) {
} }
// Rename a table
func (t *DbService) RenameTable(request *RenameTableRequest) (*RenameTableResponse, error) {
rsp := &RenameTableResponse{}
return rsp, t.client.Call("db", "RenameTable", request, rsp)
}
// Truncate the records in a table // Truncate the records in a table
func (t *DbService) Truncate(request *TruncateRequest) (*TruncateResponse, error) { func (t *DbService) Truncate(request *TruncateRequest) (*TruncateResponse, error) {
@@ -99,8 +75,6 @@ type CountResponse struct {
} }
type CreateRequest struct { type CreateRequest struct {
// optional record id to use
Id string `json:"id"`
// JSON encoded record or records (can be array or object) // JSON encoded record or records (can be array or object)
Record map[string]interface{} `json:"record"` Record map[string]interface{} `json:"record"`
// Optional table name. Defaults to 'default' // Optional table name. Defaults to 'default'
@@ -122,21 +96,6 @@ type DeleteRequest struct {
type DeleteResponse struct { type DeleteResponse struct {
} }
type DropTableRequest struct {
Table string `json:"table"`
}
type DropTableResponse struct {
}
type ListTablesRequest struct {
}
type ListTablesResponse struct {
// list of tables
Tables []string `json:"tables"`
}
type ReadRequest struct { type ReadRequest struct {
// Read by id. Equivalent to 'id == "your-id"' // Read by id. Equivalent to 'id == "your-id"'
Id string `json:"id"` Id string `json:"id"`
@@ -163,21 +122,14 @@ type ReadResponse struct {
Records []map[string]interface{} `json:"records"` Records []map[string]interface{} `json:"records"`
} }
type RenameTableRequest struct {
// current table name
From string `json:"from"`
// new table name
To string `json:"to"`
}
type RenameTableResponse struct {
}
type TruncateRequest struct { type TruncateRequest struct {
// Optional table name. Defaults to 'default'
Table string `json:"table"` Table string `json:"table"`
} }
type TruncateResponse struct { type TruncateResponse struct {
// The table truncated
Table string `json:"table"`
} }
type UpdateRequest struct { type UpdateRequest struct {

View File

@@ -28,13 +28,13 @@ type SendRequest struct {
// the display name of the sender // the display name of the sender
From string `json:"from"` From string `json:"from"`
// the html body // the html body
HtmlBody string `json:"html_body"` HtmlBody string `json:"htmlBody"`
// an optional reply to email address // an optional reply to email address
ReplyTo string `json:"reply_to"` ReplyTo string `json:"replyTo"`
// the email subject // the email subject
Subject string `json:"subject"` Subject string `json:"subject"`
// the text body // the text body
TextBody string `json:"text_body"` TextBody string `json:"textBody"`
// the email address of the recipient // the email address of the recipient
To string `json:"to"` To string `json:"to"`
} }

View File

@@ -34,50 +34,50 @@ func (t *EvchargersService) Search(request *SearchRequest) (*SearchResponse, err
type Address struct { type Address struct {
// Any comments about how to access the charger // Any comments about how to access the charger
AccessComments string `json:"access_comments"` AccessComments string `json:"accessComments"`
AddressLine1 string `json:"address_line_1"` AddressLine1 string `json:"addressLine1"`
AddressLine2 string `json:"address_line_2"` AddressLine2 string `json:"addressLine2"`
Country *Country `json:"country"` Country *Country `json:"country"`
CountryId string `json:"country_id"` CountryId string `json:"countryId"`
LatLng string `json:"lat_lng"` LatLng string `json:"latLng"`
Location *Coordinates `json:"location"` Location *Coordinates `json:"location"`
Postcode string `json:"postcode"` Postcode string `json:"postcode"`
StateOrProvince string `json:"state_or_province"` StateOrProvince string `json:"stateOrProvince"`
Title string `json:"title"` Title string `json:"title"`
Town string `json:"town"` Town string `json:"town"`
} }
type BoundingBox struct { type BoundingBox struct {
BottomLeft *Coordinates `json:"bottom_left"` BottomLeft *Coordinates `json:"bottomLeft"`
TopRight *Coordinates `json:"top_right"` TopRight *Coordinates `json:"topRight"`
} }
type ChargerType struct { type ChargerType struct {
Comments string `json:"comments"` Comments string `json:"comments"`
Id string `json:"id"` Id string `json:"id"`
// Is this 40KW+ // Is this 40KW+
IsFastChargeCapable bool `json:"is_fast_charge_capable"` IsFastChargeCapable bool `json:"isFastChargeCapable"`
Title string `json:"title"` Title string `json:"title"`
} }
type CheckinStatusType struct { type CheckinStatusType struct {
Id string `json:"id"` Id string `json:"id"`
IsAutomated bool `json:"is_automated"` IsAutomated bool `json:"isAutomated"`
IsPositive bool `json:"is_positive"` IsPositive bool `json:"isPositive"`
Title string `json:"title"` Title string `json:"title"`
} }
type Connection struct { type Connection struct {
// The amps offered // The amps offered
Amps float64 `json:"amps"` Amps float64 `json:"amps"`
ConnectionType *ConnectionType `json:"connection_type"` ConnectionType *ConnectionType `json:"connectionType"`
// The ID of the connection type // The ID of the connection type
ConnectionTypeId string `json:"connection_type_id"` ConnectionTypeId string `json:"connectionTypeId"`
// The current // The current
Current string `json:"current"` Current string `json:"current"`
Level *ChargerType `json:"level"` Level *ChargerType `json:"level"`
// The level of charging power available // The level of charging power available
LevelId string `json:"level_id"` LevelId string `json:"levelId"`
// The power in KW // The power in KW
Power float64 `json:"power"` Power float64 `json:"power"`
Reference string `json:"reference"` Reference string `json:"reference"`
@@ -86,10 +86,10 @@ type Connection struct {
} }
type ConnectionType struct { type ConnectionType struct {
FormalName string `json:"formal_name"` FormalName string `json:"formalName"`
Id string `json:"id"` Id string `json:"id"`
IsDiscontinued bool `json:"is_discontinued"` IsDiscontinued bool `json:"isDiscontinued"`
IsObsolete bool `json:"is_obsolete"` IsObsolete bool `json:"isObsolete"`
Title string `json:"title"` Title string `json:"title"`
} }
@@ -99,9 +99,9 @@ type Coordinates struct {
} }
type Country struct { type Country struct {
ContinentCode string `json:"continent_code"` ContinentCode string `json:"continentCode"`
Id string `json:"id"` Id string `json:"id"`
IsoCode string `json:"iso_code"` IsoCode string `json:"isoCode"`
Title string `json:"title"` Title string `json:"title"`
} }
@@ -113,7 +113,7 @@ type CurrentType struct {
type DataProvider struct { type DataProvider struct {
Comments string `json:"comments"` Comments string `json:"comments"`
DataProviderStatusType *DataProviderStatusType `json:"data_provider_status_type"` DataProviderStatusType *DataProviderStatusType `json:"dataProviderStatusType"`
Id string `json:"id"` Id string `json:"id"`
// How is this data licensed // How is this data licensed
License string `json:"license"` License string `json:"license"`
@@ -123,19 +123,19 @@ type DataProvider struct {
type DataProviderStatusType struct { type DataProviderStatusType struct {
Id string `json:"id"` Id string `json:"id"`
IsProviderEnabled bool `json:"is_provider_enabled"` IsProviderEnabled bool `json:"isProviderEnabled"`
Title string `json:"title"` Title string `json:"title"`
} }
type Operator struct { type Operator struct {
Comments string `json:"comments"` Comments string `json:"comments"`
ContactEmail string `json:"contact_email"` ContactEmail string `json:"contactEmail"`
FaultReportEmail string `json:"fault_report_email"` FaultReportEmail string `json:"faultReportEmail"`
Id string `json:"id"` Id string `json:"id"`
// Is this operator a private individual vs a company // Is this operator a private individual vs a company
IsPrivateIndividual bool `json:"is_private_individual"` IsPrivateIndividual bool `json:"isPrivateIndividual"`
PhonePrimary string `json:"phone_primary"` PhonePrimary string `json:"phonePrimary"`
PhoneSecondary string `json:"phone_secondary"` PhoneSecondary string `json:"phoneSecondary"`
Title string `json:"title"` Title string `json:"title"`
Website string `json:"website"` Website string `json:"website"`
} }
@@ -148,19 +148,19 @@ type Poi struct {
// The cost of charging // The cost of charging
Cost string `json:"cost"` Cost string `json:"cost"`
// The ID of the data provider // The ID of the data provider
DataProviderId string `json:"data_provider_id"` DataProviderId string `json:"dataProviderId"`
// The ID of the charger // The ID of the charger
Id string `json:"id"` Id string `json:"id"`
// The number of charging points // The number of charging points
NumPoints int64 `json:"num_points,string"` NumPoints int64 `json:"numPoints,string"`
// The operator // The operator
Operator *Operator `json:"operator"` Operator *Operator `json:"operator"`
// The ID of the operator of the charger // The ID of the operator of the charger
OperatorId string `json:"operator_id"` OperatorId string `json:"operatorId"`
// The type of usage // The type of usage
UsageType *UsageType `json:"usage_type"` UsageType *UsageType `json:"usageType"`
// The type of usage for this charger point (is it public, membership required, etc) // The type of usage for this charger point (is it public, membership required, etc)
UsageTypeId string `json:"usage_type_id"` UsageTypeId string `json:"usageTypeId"`
} }
type ReferenceDataRequest struct { type ReferenceDataRequest struct {
@@ -168,36 +168,36 @@ type ReferenceDataRequest struct {
type ReferenceDataResponse struct { type ReferenceDataResponse struct {
// The types of charger // The types of charger
ChargerTypes *ChargerType `json:"charger_types"` ChargerTypes *ChargerType `json:"chargerTypes"`
// The types of checkin status // The types of checkin status
CheckinStatusTypes *CheckinStatusType `json:"checkin_status_types"` CheckinStatusTypes *CheckinStatusType `json:"checkinStatusTypes"`
// The types of connection // The types of connection
ConnectionTypes *ConnectionType `json:"connection_types"` ConnectionTypes *ConnectionType `json:"connectionTypes"`
// The countries // The countries
Countries []Country `json:"countries"` Countries []Country `json:"countries"`
// The types of current // The types of current
CurrentTypes *CurrentType `json:"current_types"` CurrentTypes *CurrentType `json:"currentTypes"`
// The providers of the charger data // The providers of the charger data
DataProviders *DataProvider `json:"data_providers"` DataProviders *DataProvider `json:"dataProviders"`
// The companies operating the chargers // The companies operating the chargers
Operators []Operator `json:"operators"` Operators []Operator `json:"operators"`
// The status of the charger // The status of the charger
StatusTypes *StatusType `json:"status_types"` StatusTypes *StatusType `json:"statusTypes"`
// The status of a submission // The status of a submission
SubmissionStatusTypes *SubmissionStatusType `json:"submission_status_types"` SubmissionStatusTypes *SubmissionStatusType `json:"submissionStatusTypes"`
// The different types of usage // The different types of usage
UsageTypes *UsageType `json:"usage_types"` UsageTypes *UsageType `json:"usageTypes"`
// The types of user comment // The types of user comment
UserCommentTypes *UserCommentType `json:"user_comment_types"` UserCommentTypes *UserCommentType `json:"userCommentTypes"`
} }
type SearchRequest struct { type SearchRequest struct {
// Bounding box to search within (top left and bottom right coordinates) // Bounding box to search within (top left and bottom right coordinates)
Box *BoundingBox `json:"box"` Box *BoundingBox `json:"box"`
// IDs of the connection type // IDs of the connection type
ConnectionTypes string `json:"connection_types"` ConnectionTypes string `json:"connectionTypes"`
// Country ID // Country ID
CountryId string `json:"country_id"` CountryId string `json:"countryId"`
// Search distance from point in metres, defaults to 5000m // Search distance from point in metres, defaults to 5000m
Distance int64 `json:"distance,string"` Distance int64 `json:"distance,string"`
// Supported charging levels // Supported charging levels
@@ -205,13 +205,13 @@ type SearchRequest struct {
// Coordinates from which to begin search // Coordinates from which to begin search
Location *Coordinates `json:"location"` Location *Coordinates `json:"location"`
// Maximum number of results to return, defaults to 100 // Maximum number of results to return, defaults to 100
MaxResults int64 `json:"max_results,string"` MaxResults int64 `json:"maxResults,string"`
// Minimum power in KW. Note: data not available for many chargers // Minimum power in KW. Note: data not available for many chargers
MinPower int64 `json:"min_power,string"` MinPower int64 `json:"minPower,string"`
// IDs of the the EV charger operator // IDs of the the EV charger operator
Operators []string `json:"operators"` Operators []string `json:"operators"`
// Usage of the charge point (is it public, membership required, etc) // Usage of the charge point (is it public, membership required, etc)
UsageTypes string `json:"usage_types"` UsageTypes string `json:"usageTypes"`
} }
type SearchResponse struct { type SearchResponse struct {
@@ -220,21 +220,21 @@ type SearchResponse struct {
type StatusType struct { type StatusType struct {
Id string `json:"id"` Id string `json:"id"`
IsOperational bool `json:"is_operational"` IsOperational bool `json:"isOperational"`
Title string `json:"title"` Title string `json:"title"`
} }
type SubmissionStatusType struct { type SubmissionStatusType struct {
Id string `json:"id"` Id string `json:"id"`
IsLive bool `json:"is_live"` IsLive bool `json:"isLive"`
Title string `json:"title"` Title string `json:"title"`
} }
type UsageType struct { type UsageType struct {
Id string `json:"id"` Id string `json:"id"`
IsAccessKeyRequired bool `json:"is_access_key_required"` IsAccessKeyRequired bool `json:"isAccessKeyRequired"`
IsMembershipRequired bool `json:"is_membership_required"` IsMembershipRequired bool `json:"isMembershipRequired"`
IsPayAtLocation bool `json:"is_pay_at_location"` IsPayAtLocation bool `json:"isPayAtLocation"`
Title string `json:"title"` Title string `json:"title"`
} }

View File

@@ -14,4 +14,5 @@ func main() {
Postcode: "SW1A 2AA", Postcode: "SW1A 2AA",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -14,4 +14,5 @@ func main() {
Query: "microsoft", Query: "microsoft",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -1,232 +0,0 @@
# App
An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/App/api](https://m3o.com/App/api).
Endpoints:
## Update
Update the app. The latest source code will be downloaded, built and deployed.
[https://m3o.com/app/api#Update](https://m3o.com/app/api#Update)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/app"
)
// Update the app. The latest source code will be downloaded, built and deployed.
func UpdateAnApp() {
appService := app.NewAppService(os.Getenv("M3O_API_TOKEN"))
rsp, err := appService.Update(&app.UpdateRequest{
Name: "helloworld",
})
fmt.Println(rsp, err)
}
```
## Delete
Delete an app
[https://m3o.com/app/api#Delete](https://m3o.com/app/api#Delete)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/app"
)
// Delete an app
func DeleteAnApp() {
appService := app.NewAppService(os.Getenv("M3O_API_TOKEN"))
rsp, err := appService.Delete(&app.DeleteRequest{
Name: "helloworld",
})
fmt.Println(rsp, err)
}
```
## Reserve
Reserve apps beyond the free quota. Call Run after.
[https://m3o.com/app/api#Reserve](https://m3o.com/app/api#Reserve)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/app"
)
// Reserve apps beyond the free quota. Call Run after.
func ReserveAppName() {
appService := app.NewAppService(os.Getenv("M3O_API_TOKEN"))
rsp, err := appService.Reserve(&app.ReserveRequest{
Name: "helloworld",
})
fmt.Println(rsp, err)
}
```
## List
List all the apps
[https://m3o.com/app/api#List](https://m3o.com/app/api#List)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/app"
)
// List all the apps
func ListTheApps() {
appService := app.NewAppService(os.Getenv("M3O_API_TOKEN"))
rsp, err := appService.List(&app.ListRequest{
})
fmt.Println(rsp, err)
}
```
## Run
Run an app from a source repo. Specify region etc.
[https://m3o.com/app/api#Run](https://m3o.com/app/api#Run)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/app"
)
// Run an app from a source repo. Specify region etc.
func RunAnApp() {
appService := app.NewAppService(os.Getenv("M3O_API_TOKEN"))
rsp, err := appService.Run(&app.RunRequest{
Branch: "master",
Name: "helloworld",
Port: 8080,
Region: "europe-west1",
Repo: "github.com/asim/helloworld",
})
fmt.Println(rsp, err)
}
```
## Regions
Return the support regions
[https://m3o.com/app/api#Regions](https://m3o.com/app/api#Regions)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/app"
)
// Return the support regions
func ListRegions() {
appService := app.NewAppService(os.Getenv("M3O_API_TOKEN"))
rsp, err := appService.Regions(&app.RegionsRequest{
})
fmt.Println(rsp, err)
}
```
## Status
Get the status of an app
[https://m3o.com/app/api#Status](https://m3o.com/app/api#Status)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/app"
)
// Get the status of an app
func GetTheStatusOfAnApp() {
appService := app.NewAppService(os.Getenv("M3O_API_TOKEN"))
rsp, err := appService.Status(&app.StatusRequest{
Name: "helloworld",
})
fmt.Println(rsp, err)
}
```
## Resolve
Resolve an app by id to its raw backend endpoint
[https://m3o.com/app/api#Resolve](https://m3o.com/app/api#Resolve)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/app"
)
// Resolve an app by id to its raw backend endpoint
func ResolveAppById() {
appService := app.NewAppService(os.Getenv("M3O_API_TOKEN"))
rsp, err := appService.Resolve(&app.ResolveRequest{
Id: "helloworld",
})
fmt.Println(rsp, err)
}
```

View File

@@ -1,17 +0,0 @@
package main
import (
"fmt"
"os"
"go.m3o.com/app"
)
// Delete an app
func main() {
appService := app.NewAppService(os.Getenv("M3O_API_TOKEN"))
rsp, err := appService.Delete(&app.DeleteRequest{
Name: "helloworld",
})
fmt.Println(rsp, err)
}

View File

@@ -1,15 +0,0 @@
package main
import (
"fmt"
"os"
"go.m3o.com/app"
)
// List all the apps
func main() {
appService := app.NewAppService(os.Getenv("M3O_API_TOKEN"))
rsp, err := appService.List(&app.ListRequest{})
fmt.Println(rsp, err)
}

View File

@@ -1,15 +0,0 @@
package main
import (
"fmt"
"os"
"go.m3o.com/app"
)
// Return the support regions
func main() {
appService := app.NewAppService(os.Getenv("M3O_API_TOKEN"))
rsp, err := appService.Regions(&app.RegionsRequest{})
fmt.Println(rsp, err)
}

View File

@@ -1,17 +0,0 @@
package main
import (
"fmt"
"os"
"go.m3o.com/app"
)
// Reserve apps beyond the free quota. Call Run after.
func main() {
appService := app.NewAppService(os.Getenv("M3O_API_TOKEN"))
rsp, err := appService.Reserve(&app.ReserveRequest{
Name: "helloworld",
})
fmt.Println(rsp, err)
}

View File

@@ -1,17 +0,0 @@
package main
import (
"fmt"
"os"
"go.m3o.com/app"
)
// Resolve an app by id to its raw backend endpoint
func main() {
appService := app.NewAppService(os.Getenv("M3O_API_TOKEN"))
rsp, err := appService.Resolve(&app.ResolveRequest{
Id: "helloworld",
})
fmt.Println(rsp, err)
}

View File

@@ -1,21 +0,0 @@
package main
import (
"fmt"
"os"
"go.m3o.com/app"
)
// Run an app from a source repo. Specify region etc.
func main() {
appService := app.NewAppService(os.Getenv("M3O_API_TOKEN"))
rsp, err := appService.Run(&app.RunRequest{
Branch: "master",
Name: "helloworld",
Port: 8080,
Region: "europe-west1",
Repo: "github.com/asim/helloworld",
})
fmt.Println(rsp, err)
}

View File

@@ -1,17 +0,0 @@
package main
import (
"fmt"
"os"
"go.m3o.com/app"
)
// Get the status of an app
func main() {
appService := app.NewAppService(os.Getenv("M3O_API_TOKEN"))
rsp, err := appService.Status(&app.StatusRequest{
Name: "helloworld",
})
fmt.Println(rsp, err)
}

View File

@@ -1,17 +0,0 @@
package main
import (
"fmt"
"os"
"go.m3o.com/app"
)
// Update the app. The latest source code will be downloaded, built and deployed.
func main() {
appService := app.NewAppService(os.Getenv("M3O_API_TOKEN"))
rsp, err := appService.Update(&app.UpdateRequest{
Name: "helloworld",
})
fmt.Println(rsp, err)
}

View File

@@ -1,68 +0,0 @@
# Avatar
An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/Avatar/api](https://m3o.com/Avatar/api).
Endpoints:
## Generate
[https://m3o.com/avatar/api#Generate](https://m3o.com/avatar/api#Generate)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/avatar"
)
//
func GenerateAvatarAndReturnBase64stringOfTheAvatar() {
avatarService := avatar.NewAvatarService(os.Getenv("M3O_API_TOKEN"))
rsp, err := avatarService.Generate(&avatar.GenerateRequest{
Format: "png",
Gender: "female",
Upload: true,
Username: "",
})
fmt.Println(rsp, err)
}
```
## Generate
[https://m3o.com/avatar/api#Generate](https://m3o.com/avatar/api#Generate)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/avatar"
)
//
func GenerateAnAvatarAndUploadTheAvatarToMicrosCdn() {
avatarService := avatar.NewAvatarService(os.Getenv("M3O_API_TOKEN"))
rsp, err := avatarService.Generate(&avatar.GenerateRequest{
Format: "jpeg",
Gender: "female",
Upload: false,
Username: "",
})
fmt.Println(rsp, err)
}
```

View File

@@ -1,20 +0,0 @@
package main
import (
"fmt"
"os"
"go.m3o.com/avatar"
)
//
func main() {
avatarService := avatar.NewAvatarService(os.Getenv("M3O_API_TOKEN"))
rsp, err := avatarService.Generate(&avatar.GenerateRequest{
Format: "jpeg",
Gender: "female",
Upload: false,
Username: "",
})
fmt.Println(rsp, err)
}

View File

@@ -1,20 +0,0 @@
package main
import (
"fmt"
"os"
"go.m3o.com/avatar"
)
//
func main() {
avatarService := avatar.NewAvatarService(os.Getenv("M3O_API_TOKEN"))
rsp, err := avatarService.Generate(&avatar.GenerateRequest{
Format: "png",
Gender: "female",
Upload: true,
Username: "",
})
fmt.Println(rsp, err)
}

View File

@@ -4,63 +4,6 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/Cache/api](htt
Endpoints: Endpoints:
## Set
Set an item in the cache. Overwrites any existing value already set.
[https://m3o.com/cache/api#Set](https://m3o.com/cache/api#Set)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/cache"
)
// Set an item in the cache. Overwrites any existing value already set.
func SetAvalue() {
cacheService := cache.NewCacheService(os.Getenv("M3O_API_TOKEN"))
rsp, err := cacheService.Set(&cache.SetRequest{
Key: "foo",
Value: "bar",
})
fmt.Println(rsp, err)
}
```
## Get
Get an item from the cache by key. If key is not found, an empty response is returned.
[https://m3o.com/cache/api#Get](https://m3o.com/cache/api#Get)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/cache"
)
// Get an item from the cache by key. If key is not found, an empty response is returned.
func GetAvalue() {
cacheService := cache.NewCacheService(os.Getenv("M3O_API_TOKEN"))
rsp, err := cacheService.Get(&cache.GetRequest{
Key: "foo",
})
fmt.Println(rsp, err)
}
```
## Delete ## Delete
Delete a value from the cache. If key not found a success response is returned. Delete a value from the cache. If key not found a success response is returned.
@@ -147,3 +90,60 @@ Value: 2,
} }
``` ```
## Set
Set an item in the cache. Overwrites any existing value already set.
[https://m3o.com/cache/api#Set](https://m3o.com/cache/api#Set)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/cache"
)
// Set an item in the cache. Overwrites any existing value already set.
func SetAvalue() {
cacheService := cache.NewCacheService(os.Getenv("M3O_API_TOKEN"))
rsp, err := cacheService.Set(&cache.SetRequest{
Key: "foo",
Value: "bar",
})
fmt.Println(rsp, err)
}
```
## Get
Get an item from the cache by key. If key is not found, an empty response is returned.
[https://m3o.com/cache/api#Get](https://m3o.com/cache/api#Get)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/cache"
)
// Get an item from the cache by key. If key is not found, an empty response is returned.
func GetAvalue() {
cacheService := cache.NewCacheService(os.Getenv("M3O_API_TOKEN"))
rsp, err := cacheService.Get(&cache.GetRequest{
Key: "foo",
})
fmt.Println(rsp, err)
}
```

View File

@@ -15,4 +15,5 @@ func main() {
Value: 2, Value: 2,
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -14,4 +14,5 @@ func main() {
Key: "foo", Key: "foo",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -14,4 +14,5 @@ func main() {
Key: "foo", Key: "foo",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -15,4 +15,5 @@ func main() {
Value: 2, Value: 2,
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -15,4 +15,5 @@ func main() {
Value: "bar", Value: "bar",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -4,6 +4,34 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/Crypto/api](ht
Endpoints: Endpoints:
## History
Returns the history for the previous close
[https://m3o.com/crypto/api#History](https://m3o.com/crypto/api#History)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/crypto"
)
// Returns the history for the previous close
func GetPreviousClose() {
cryptoService := crypto.NewCryptoService(os.Getenv("M3O_API_TOKEN"))
rsp, err := cryptoService.History(&crypto.HistoryRequest{
Symbol: "BTCUSD",
})
fmt.Println(rsp, err)
}
```
## News ## News
Get news related to a currency Get news related to a currency
@@ -88,31 +116,3 @@ func GetAcryptocurrencyQuote() {
} }
``` ```
## History
Returns the history for the previous close
[https://m3o.com/crypto/api#History](https://m3o.com/crypto/api#History)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/crypto"
)
// Returns the history for the previous close
func GetPreviousClose() {
cryptoService := crypto.NewCryptoService(os.Getenv("M3O_API_TOKEN"))
rsp, err := cryptoService.History(&crypto.HistoryRequest{
Symbol: "BTCUSD",
})
fmt.Println(rsp, err)
}
```

View File

@@ -14,4 +14,5 @@ func main() {
Symbol: "BTCUSD", Symbol: "BTCUSD",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -14,4 +14,5 @@ func main() {
Symbol: "BTCUSD", Symbol: "BTCUSD",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -14,4 +14,5 @@ func main() {
Symbol: "BTCUSD", Symbol: "BTCUSD",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -14,4 +14,5 @@ func main() {
Symbol: "BTCUSD", Symbol: "BTCUSD",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -4,35 +4,6 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/Currency/api](
Endpoints: Endpoints:
## History
Returns the historic rates for a currency on a given date
[https://m3o.com/currency/api#History](https://m3o.com/currency/api#History)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/currency"
)
// Returns the historic rates for a currency on a given date
func HistoricRatesForAcurrency() {
currencyService := currency.NewCurrencyService(os.Getenv("M3O_API_TOKEN"))
rsp, err := currencyService.History(&currency.HistoryRequest{
Code: "USD",
Date: "2021-05-30",
})
fmt.Println(rsp, err)
}
```
## Codes ## Codes
Codes returns the supported currency codes for the API Codes returns the supported currency codes for the API
@@ -147,3 +118,32 @@ To: "GBP",
} }
``` ```
## History
Returns the historic rates for a currency on a given date
[https://m3o.com/currency/api#History](https://m3o.com/currency/api#History)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/currency"
)
// Returns the historic rates for a currency on a given date
func HistoricRatesForAcurrency() {
currencyService := currency.NewCurrencyService(os.Getenv("M3O_API_TOKEN"))
rsp, err := currencyService.History(&currency.HistoryRequest{
Code: "USD",
Date: "2021-05-30",
})
fmt.Println(rsp, err)
}
```

View File

@@ -12,4 +12,5 @@ func main() {
currencyService := currency.NewCurrencyService(os.Getenv("M3O_API_TOKEN")) currencyService := currency.NewCurrencyService(os.Getenv("M3O_API_TOKEN"))
rsp, err := currencyService.Codes(&currency.CodesRequest{}) rsp, err := currencyService.Codes(&currency.CodesRequest{})
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -16,4 +16,5 @@ func main() {
To: "GBP", To: "GBP",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -15,4 +15,5 @@ func main() {
To: "GBP", To: "GBP",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -15,4 +15,5 @@ func main() {
Date: "2021-05-30", Date: "2021-05-30",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -14,4 +14,5 @@ func main() {
Code: "USD", Code: "USD",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -4,175 +4,6 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/Db/api](https:
Endpoints: Endpoints:
## Read
Read data from a table. Lookup can be by ID or via querying any field in the record.
[https://m3o.com/db/api#Read](https://m3o.com/db/api#Read)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/db"
)
// Read data from a table. Lookup can be by ID or via querying any field in the record.
func ReadRecords() {
dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN"))
rsp, err := dbService.Read(&db.ReadRequest{
Query: "age == 43",
Table: "example",
})
fmt.Println(rsp, err)
}
```
## DropTable
Drop a table in the DB
[https://m3o.com/db/api#DropTable](https://m3o.com/db/api#DropTable)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/db"
)
// Drop a table in the DB
func DropTable() {
dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN"))
rsp, err := dbService.DropTable(&db.DropTableRequest{
Table: "example",
})
fmt.Println(rsp, err)
}
```
## RenameTable
Rename a table
[https://m3o.com/db/api#RenameTable](https://m3o.com/db/api#RenameTable)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/db"
)
// Rename a table
func RenameTable() {
dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN"))
rsp, err := dbService.RenameTable(&db.RenameTableRequest{
From: "examples2",
To: "examples3",
})
fmt.Println(rsp, err)
}
```
## Truncate
Truncate the records in a table
[https://m3o.com/db/api#Truncate](https://m3o.com/db/api#Truncate)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/db"
)
// Truncate the records in a table
func TruncateTable() {
dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN"))
rsp, err := dbService.Truncate(&db.TruncateRequest{
Table: "example",
})
fmt.Println(rsp, err)
}
```
## Count
Count records in a table
[https://m3o.com/db/api#Count](https://m3o.com/db/api#Count)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/db"
)
// Count records in a table
func CountEntriesInAtable() {
dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN"))
rsp, err := dbService.Count(&db.CountRequest{
Table: "example",
})
fmt.Println(rsp, err)
}
```
## ListTables
List tables in the DB
[https://m3o.com/db/api#ListTables](https://m3o.com/db/api#ListTables)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/db"
)
// List tables in the DB
func ListTables() {
dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN"))
rsp, err := dbService.ListTables(&db.ListTablesRequest{
})
fmt.Println(rsp, err)
}
```
## Create ## Create
Create a record in the database. Optionally include an "id" field otherwise it's set automatically. Create a record in the database. Optionally include an "id" field otherwise it's set automatically.
@@ -195,12 +26,12 @@ func CreateArecord() {
dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN")) dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN"))
rsp, err := dbService.Create(&db.CreateRequest{ rsp, err := dbService.Create(&db.CreateRequest{
Record: map[string]interface{}{ Record: map[string]interface{}{
"isActive": true,
"id": "1", "id": "1",
"name": "Jane", "name": "Jane",
"age": 42, "age": 42,
"isActive": true,
}, },
Table: "example", Table: "users",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
@@ -232,7 +63,36 @@ func UpdateArecord() {
"id": "1", "id": "1",
"age": 43, "age": 43,
}, },
Table: "example", Table: "users",
})
fmt.Println(rsp, err)
}
```
## Read
Read data from a table. Lookup can be by ID or via querying any field in the record.
[https://m3o.com/db/api#Read](https://m3o.com/db/api#Read)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/db"
)
// Read data from a table. Lookup can be by ID or via querying any field in the record.
func ReadRecords() {
dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN"))
rsp, err := dbService.Read(&db.ReadRequest{
Query: "age == 43",
Table: "users",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
@@ -261,7 +121,63 @@ func DeleteArecord() {
dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN")) dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN"))
rsp, err := dbService.Delete(&db.DeleteRequest{ rsp, err := dbService.Delete(&db.DeleteRequest{
Id: "1", Id: "1",
Table: "example", Table: "users",
})
fmt.Println(rsp, err)
}
```
## Truncate
Truncate the records in a table
[https://m3o.com/db/api#Truncate](https://m3o.com/db/api#Truncate)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/db"
)
// Truncate the records in a table
func TruncateTable() {
dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN"))
rsp, err := dbService.Truncate(&db.TruncateRequest{
Table: "users",
})
fmt.Println(rsp, err)
}
```
## Count
Count records in a table
[https://m3o.com/db/api#Count](https://m3o.com/db/api#Count)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/db"
)
// Count records in a table
func CountEntriesInAtable() {
dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN"))
rsp, err := dbService.Count(&db.CountRequest{
Table: "users",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)

View File

@@ -11,7 +11,8 @@ import (
func main() { func main() {
dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN")) dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN"))
rsp, err := dbService.Count(&db.CountRequest{ rsp, err := dbService.Count(&db.CountRequest{
Table: "example", Table: "users",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -17,7 +17,8 @@ func main() {
"age": 42, "age": 42,
"isActive": true, "isActive": true,
}, },
Table: "example", Table: "users",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -12,7 +12,8 @@ func main() {
dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN")) dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN"))
rsp, err := dbService.Delete(&db.DeleteRequest{ rsp, err := dbService.Delete(&db.DeleteRequest{
Id: "1", Id: "1",
Table: "example", Table: "users",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -1,17 +0,0 @@
package main
import (
"fmt"
"os"
"go.m3o.com/db"
)
// Drop a table in the DB
func main() {
dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN"))
rsp, err := dbService.DropTable(&db.DropTableRequest{
Table: "example",
})
fmt.Println(rsp, err)
}

View File

@@ -1,15 +0,0 @@
package main
import (
"fmt"
"os"
"go.m3o.com/db"
)
// List tables in the DB
func main() {
dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN"))
rsp, err := dbService.ListTables(&db.ListTablesRequest{})
fmt.Println(rsp, err)
}

View File

@@ -12,7 +12,8 @@ func main() {
dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN")) dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN"))
rsp, err := dbService.Read(&db.ReadRequest{ rsp, err := dbService.Read(&db.ReadRequest{
Query: "age == 43", Query: "age == 43",
Table: "example", Table: "users",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -1,18 +0,0 @@
package main
import (
"fmt"
"os"
"go.m3o.com/db"
)
// Rename a table
func main() {
dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN"))
rsp, err := dbService.RenameTable(&db.RenameTableRequest{
From: "examples2",
To: "examples3",
})
fmt.Println(rsp, err)
}

View File

@@ -11,7 +11,8 @@ import (
func main() { func main() {
dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN")) dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN"))
rsp, err := dbService.Truncate(&db.TruncateRequest{ rsp, err := dbService.Truncate(&db.TruncateRequest{
Table: "example", Table: "users",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -15,7 +15,8 @@ func main() {
"id": "1", "id": "1",
"age": 43, "age": 43,
}, },
Table: "example", Table: "users",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -18,4 +18,5 @@ func main() {
Please verify your email by clicking this link: $micro_verification_link`, Please verify your email by clicking this link: $micro_verification_link`,
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -14,4 +14,5 @@ func main() {
Alias: ":beer:", Alias: ":beer:",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -12,4 +12,5 @@ func main() {
emojiService := emoji.NewEmojiService(os.Getenv("M3O_API_TOKEN")) emojiService := emoji.NewEmojiService(os.Getenv("M3O_API_TOKEN"))
rsp, err := emojiService.Flag(&emoji.FlagRequest{}) rsp, err := emojiService.Flag(&emoji.FlagRequest{})
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -15,4 +15,5 @@ func main() {
Text: "let's grab a :beer:", Text: "let's grab a :beer:",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -16,4 +16,5 @@ func main() {
To: "+44782669123", To: "+44782669123",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -4,6 +4,33 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/Evchargers/api
Endpoints: Endpoints:
## ReferenceData
Retrieve reference data as used by this API and in conjunction with the Search endpoint
[https://m3o.com/evchargers/api#ReferenceData](https://m3o.com/evchargers/api#ReferenceData)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/evchargers"
)
// Retrieve reference data as used by this API and in conjunction with the Search endpoint
func GetReferenceData() {
evchargersService := evchargers.NewEvchargersService(os.Getenv("M3O_API_TOKEN"))
rsp, err := evchargersService.ReferenceData(&evchargers.ReferenceDataRequest{
})
fmt.Println(rsp, err)
}
```
## Search ## Search
Search by giving a coordinate and a max distance, or bounding box and optional filters Search by giving a coordinate and a max distance, or bounding box and optional filters
@@ -98,30 +125,3 @@ Location: &evchargers.Coordinates{
} }
``` ```
## ReferenceData
Retrieve reference data as used by this API and in conjunction with the Search endpoint
[https://m3o.com/evchargers/api#ReferenceData](https://m3o.com/evchargers/api#ReferenceData)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/evchargers"
)
// Retrieve reference data as used by this API and in conjunction with the Search endpoint
func GetReferenceData() {
evchargersService := evchargers.NewEvchargersService(os.Getenv("M3O_API_TOKEN"))
rsp, err := evchargersService.ReferenceData(&evchargers.ReferenceDataRequest{
})
fmt.Println(rsp, err)
}
```

View File

@@ -12,4 +12,5 @@ func main() {
evchargersService := evchargers.NewEvchargersService(os.Getenv("M3O_API_TOKEN")) evchargersService := evchargers.NewEvchargersService(os.Getenv("M3O_API_TOKEN"))
rsp, err := evchargersService.ReferenceData(&evchargers.ReferenceDataRequest{}) rsp, err := evchargersService.ReferenceData(&evchargers.ReferenceDataRequest{})
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -14,4 +14,5 @@ func main() {
Box: &evchargers.BoundingBox{}, Box: &evchargers.BoundingBox{},
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -18,4 +18,5 @@ func main() {
}, },
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -19,4 +19,5 @@ func main() {
}, },
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -26,9 +26,9 @@ func PublishAnEvent() {
eventService := event.NewEventService(os.Getenv("M3O_API_TOKEN")) eventService := event.NewEventService(os.Getenv("M3O_API_TOKEN"))
rsp, err := eventService.Publish(&event.PublishRequest{ rsp, err := eventService.Publish(&event.PublishRequest{
Message: map[string]interface{}{ Message: map[string]interface{}{
"user": "john",
"id": "1", "id": "1",
"type": "signup", "type": "signup",
"user": "john",
}, },
Topic: "user", Topic: "user",

View File

@@ -10,6 +10,7 @@ import (
// Consume events from a given topic. // Consume events from a given topic.
func main() { func main() {
eventService := event.NewEventService(os.Getenv("M3O_API_TOKEN")) eventService := event.NewEventService(os.Getenv("M3O_API_TOKEN"))
stream, err := eventService.Consume(&event.ConsumeRequest{ stream, err := eventService.Consume(&event.ConsumeRequest{
Topic: "user", Topic: "user",
}) })

View File

@@ -19,4 +19,5 @@ func main() {
Topic: "user", Topic: "user",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -14,4 +14,5 @@ func main() {
Topic: "user", Topic: "user",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -0,0 +1,17 @@
package example
import (
"fmt"
"os"
"go.m3o.com/event"
)
// Subscribe to messages for a given topic.
func SubscribeToAtopic() {
eventService := event.NewEventService(os.Getenv("M3O_API_TOKEN"))
rsp, err := eventService.Subscribe(&event.SubscribeRequest{
Topic: "user",
})
fmt.Println(rsp, err)
}

View File

@@ -31,35 +31,6 @@ Project: "examples",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
}
```
## Delete
Delete a file by project name/path
[https://m3o.com/file/api#Delete](https://m3o.com/file/api#Delete)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/file"
)
// Delete a file by project name/path
func DeleteFile() {
fileService := file.NewFileService(os.Getenv("M3O_API_TOKEN"))
rsp, err := fileService.Delete(&file.DeleteRequest{
Path: "/document/text-files/file.txt",
Project: "examples",
})
fmt.Println(rsp, err)
} }
``` ```
## Save ## Save
@@ -122,3 +93,32 @@ func ListFiles() {
} }
``` ```
## Delete
Delete a file by project name/path
[https://m3o.com/file/api#Delete](https://m3o.com/file/api#Delete)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/file"
)
// Delete a file by project name/path
func DeleteFile() {
fileService := file.NewFileService(os.Getenv("M3O_API_TOKEN"))
rsp, err := fileService.Delete(&file.DeleteRequest{
Path: "/document/text-files/file.txt",
Project: "examples",
})
fmt.Println(rsp, err)
}
```

View File

@@ -15,4 +15,5 @@ func main() {
Project: "examples", Project: "examples",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -14,4 +14,5 @@ func main() {
Project: "examples", Project: "examples",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -15,4 +15,5 @@ func main() {
Project: "examples", Project: "examples",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -18,4 +18,5 @@ func main() {
}, },
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -14,4 +14,5 @@ func main() {
Symbol: "GBPUSD", Symbol: "GBPUSD",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -14,4 +14,5 @@ func main() {
Symbol: "GBPUSD", Symbol: "GBPUSD",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -14,4 +14,5 @@ func main() {
Symbol: "GBPUSD", Symbol: "GBPUSD",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -26,38 +26,8 @@ func DeployAfunction() {
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN")) functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
rsp, err := functionService.Deploy(&function.DeployRequest{ rsp, err := functionService.Deploy(&function.DeployRequest{
Entrypoint: "helloworld", Entrypoint: "helloworld",
Name: "helloworld", Name: "my-first-func",
Repo: "github.com/m3o/nodejs-function-example", Project: "tests",
Runtime: "nodejs14",
})
fmt.Println(rsp, err)
}
```
## Update
Update a function
[https://m3o.com/function/api#Update](https://m3o.com/function/api#Update)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/function"
)
// Update a function
func UpdateAfunction() {
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
rsp, err := functionService.Update(&function.UpdateRequest{
Entrypoint: "helloworld",
Name: "helloworld",
Repo: "github.com/m3o/nodejs-function-example", Repo: "github.com/m3o/nodejs-function-example",
Runtime: "nodejs14", Runtime: "nodejs14",
@@ -87,7 +57,7 @@ import(
func CallAfunction() { func CallAfunction() {
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN")) functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
rsp, err := functionService.Call(&function.CallRequest{ rsp, err := functionService.Call(&function.CallRequest{
Name: "helloworld", Name: "my-first-func",
Request: map[string]interface{}{ Request: map[string]interface{}{
}, },
@@ -144,7 +114,8 @@ import(
func DeleteAfunction() { func DeleteAfunction() {
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN")) functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
rsp, err := functionService.Delete(&function.DeleteRequest{ rsp, err := functionService.Delete(&function.DeleteRequest{
Name: "helloworld", Name: "my-first-func",
Project: "tests",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
@@ -172,7 +143,8 @@ import(
func DescribeFunctionStatus() { func DescribeFunctionStatus() {
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN")) functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
rsp, err := functionService.Describe(&function.DescribeRequest{ rsp, err := functionService.Describe(&function.DescribeRequest{
Name: "helloworld", Name: "my-first-func",
Project: "tests",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)

View File

@@ -11,8 +11,9 @@ import (
func main() { func main() {
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN")) functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
rsp, err := functionService.Call(&function.CallRequest{ rsp, err := functionService.Call(&function.CallRequest{
Name: "helloworld", Name: "my-first-func",
Request: map[string]interface{}{}, Request: map[string]interface{}{},
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -11,7 +11,9 @@ import (
func main() { func main() {
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN")) functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
rsp, err := functionService.Delete(&function.DeleteRequest{ rsp, err := functionService.Delete(&function.DeleteRequest{
Name: "helloworld", Name: "my-first-func",
Project: "tests",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -12,9 +12,11 @@ func main() {
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN")) functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
rsp, err := functionService.Deploy(&function.DeployRequest{ rsp, err := functionService.Deploy(&function.DeployRequest{
Entrypoint: "helloworld", Entrypoint: "helloworld",
Name: "helloworld", Name: "my-first-func",
Project: "tests",
Repo: "github.com/m3o/nodejs-function-example", Repo: "github.com/m3o/nodejs-function-example",
Runtime: "nodejs14", Runtime: "nodejs14",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -11,7 +11,9 @@ import (
func main() { func main() {
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN")) functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
rsp, err := functionService.Describe(&function.DescribeRequest{ rsp, err := functionService.Describe(&function.DescribeRequest{
Name: "helloworld", Name: "my-first-func",
Project: "tests",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -12,4 +12,5 @@ func main() {
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN")) functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
rsp, err := functionService.List(&function.ListRequest{}) rsp, err := functionService.List(&function.ListRequest{})
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -1,20 +0,0 @@
package main
import (
"fmt"
"os"
"go.m3o.com/function"
)
// Update a function
func main() {
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
rsp, err := functionService.Update(&function.UpdateRequest{
Entrypoint: "helloworld",
Name: "helloworld",
Repo: "github.com/m3o/nodejs-function-example",
Runtime: "nodejs14",
})
fmt.Println(rsp, err)
}

View File

@@ -17,4 +17,5 @@ func main() {
Postcode: "wc2b", Postcode: "wc2b",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -15,4 +15,5 @@ func main() {
Longitude: -0.1216235, Longitude: -0.1216235,
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -15,4 +15,5 @@ func main() {
Query: "dogs", Query: "dogs",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -14,4 +14,5 @@ func main() {
Query: "how to make donuts", Query: "how to make donuts",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -14,4 +14,5 @@ func main() {
Name: "John", Name: "John",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -10,6 +10,7 @@ import (
// Stream returns a stream of "Hello $name" responses // Stream returns a stream of "Hello $name" responses
func main() { func main() {
helloworldService := helloworld.NewHelloworldService(os.Getenv("M3O_API_TOKEN")) helloworldService := helloworld.NewHelloworldService(os.Getenv("M3O_API_TOKEN"))
stream, err := helloworldService.Stream(&helloworld.StreamRequest{ stream, err := helloworldService.Stream(&helloworld.StreamRequest{
Messages: 10, Messages: 10,
Name: "John", Name: "John",

View File

@@ -12,4 +12,5 @@ func main() {
holidaysService := holidays.NewHolidaysService(os.Getenv("M3O_API_TOKEN")) holidaysService := holidays.NewHolidaysService(os.Getenv("M3O_API_TOKEN"))
rsp, err := holidaysService.Countries(&holidays.CountriesRequest{}) rsp, err := holidaysService.Countries(&holidays.CountriesRequest{})
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -14,4 +14,5 @@ func main() {
Year: 2022, Year: 2022,
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -4,33 +4,6 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/Id/api](https:
Endpoints: Endpoints:
## Types
List the types of IDs available. No query params needed.
[https://m3o.com/id/api#Types](https://m3o.com/id/api#Types)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/id"
)
// List the types of IDs available. No query params needed.
func ListTheTypesOfIdsAvailable() {
idService := id.NewIdService(os.Getenv("M3O_API_TOKEN"))
rsp, err := idService.Types(&id.TypesRequest{
})
fmt.Println(rsp, err)
}
```
## Generate ## Generate
Generate a unique ID. Defaults to uuid. Generate a unique ID. Defaults to uuid.
@@ -143,3 +116,30 @@ func GenerateAbigflakeId() {
} }
``` ```
## Types
List the types of IDs available. No query params needed.
[https://m3o.com/id/api#Types](https://m3o.com/id/api#Types)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/id"
)
// List the types of IDs available. No query params needed.
func ListTheTypesOfIdsAvailable() {
idService := id.NewIdService(os.Getenv("M3O_API_TOKEN"))
rsp, err := idService.Types(&id.TypesRequest{
})
fmt.Println(rsp, err)
}
```

View File

@@ -14,4 +14,5 @@ func main() {
Type: "bigflake", Type: "bigflake",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -14,4 +14,5 @@ func main() {
Type: "shortid", Type: "shortid",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -14,4 +14,5 @@ func main() {
Type: "snowflake", Type: "snowflake",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -14,4 +14,5 @@ func main() {
Type: "uuid", Type: "uuid",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -12,4 +12,5 @@ func main() {
idService := id.NewIdService(os.Getenv("M3O_API_TOKEN")) idService := id.NewIdService(os.Getenv("M3O_API_TOKEN"))
rsp, err := idService.Types(&id.TypesRequest{}) rsp, err := idService.Types(&id.TypesRequest{})
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -4,6 +4,206 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/Image/api](htt
Endpoints: Endpoints:
## Resize
Resize an image on the fly without storing it (by sending and receiving a base64 encoded image), or resize and upload depending on parameters.
If one of width or height is 0, the image aspect ratio is preserved.
Optional cropping.
[https://m3o.com/image/api#Resize](https://m3o.com/image/api#Resize)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/image"
)
// Resize an image on the fly without storing it (by sending and receiving a base64 encoded image), or resize and upload depending on parameters.
// If one of width or height is 0, the image aspect ratio is preserved.
// Optional cropping.
func Base64toHostedImage() {
imageService := image.NewImageService(os.Getenv("M3O_API_TOKEN"))
rsp, err := imageService.Resize(&image.ResizeRequest{
Base64: "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",
Height: 100,
Name: "cat.png",
Width: 100,
})
fmt.Println(rsp, err)
}
```
## Resize
Resize an image on the fly without storing it (by sending and receiving a base64 encoded image), or resize and upload depending on parameters.
If one of width or height is 0, the image aspect ratio is preserved.
Optional cropping.
[https://m3o.com/image/api#Resize](https://m3o.com/image/api#Resize)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/image"
)
// Resize an image on the fly without storing it (by sending and receiving a base64 encoded image), or resize and upload depending on parameters.
// If one of width or height is 0, the image aspect ratio is preserved.
// Optional cropping.
func Base64toBase64image() {
imageService := image.NewImageService(os.Getenv("M3O_API_TOKEN"))
rsp, err := imageService.Resize(&image.ResizeRequest{
Base64: "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",
Height: 100,
Width: 100,
})
fmt.Println(rsp, err)
}
```
## Resize
Resize an image on the fly without storing it (by sending and receiving a base64 encoded image), or resize and upload depending on parameters.
If one of width or height is 0, the image aspect ratio is preserved.
Optional cropping.
[https://m3o.com/image/api#Resize](https://m3o.com/image/api#Resize)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/image"
)
// Resize an image on the fly without storing it (by sending and receiving a base64 encoded image), or resize and upload depending on parameters.
// If one of width or height is 0, the image aspect ratio is preserved.
// Optional cropping.
func Base64toBase64imageWithCropping() {
imageService := image.NewImageService(os.Getenv("M3O_API_TOKEN"))
rsp, err := imageService.Resize(&image.ResizeRequest{
Base64: "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",
CropOptions: &image.CropOptions{
Height: 50,
Width: 50,
},
Height: 100,
Width: 100,
})
fmt.Println(rsp, err)
}
```
## Convert
Convert an image from one format (jpeg, png etc.) to an other either on the fly (from base64 to base64),
or by uploading the conversion result.
[https://m3o.com/image/api#Convert](https://m3o.com/image/api#Convert)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/image"
)
// Convert an image from one format (jpeg, png etc.) to an other either on the fly (from base64 to base64),
// or by uploading the conversion result.
func ConvertApngImageToAjpegTakenFromAurlAndSavedToAurlOnMicrosCdn() {
imageService := image.NewImageService(os.Getenv("M3O_API_TOKEN"))
rsp, err := imageService.Convert(&image.ConvertRequest{
Name: "cat.jpeg",
Url: "somewebsite.com/cat.png",
})
fmt.Println(rsp, err)
}
```
## Upload
Upload an image by either sending a base64 encoded image to this endpoint or a URL.
To resize an image before uploading, see the Resize endpoint.
[https://m3o.com/image/api#Upload](https://m3o.com/image/api#Upload)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/image"
)
// Upload an image by either sending a base64 encoded image to this endpoint or a URL.
// To resize an image before uploading, see the Resize endpoint.
func UploadAbase64imageToMicrosCdn() {
imageService := image.NewImageService(os.Getenv("M3O_API_TOKEN"))
rsp, err := imageService.Upload(&image.UploadRequest{
Base64: "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAx0lEQVR4nOzaMaoDMQyE4ZHj+x82vVdhwQoTkzKQEcwP5r0ihT7sbjUTeAJ4HCegXQJYfOYefOyjDuBiz3yjwJBoCIl6QZOeUjTC1Ix1IxEJXF9+0KWsf2bD4bn37OO/c/wuQ9QyRC1D1DJELUPUMkQtQ9QyRC1D1DJELUPUMkQtQ9QyRC1D1DJELUPUMkQtQ9Sa/NG94Tf3j4WBdaxudMEkn4IM2rZBA0wBrvo7aOcpj2emXvLeVt0IGm0GVXUj91mvAAAA//+V2CZl+4AKXwAAAABJRU5ErkJggg==",
Name: "cat.jpeg",
})
fmt.Println(rsp, err)
}
```
## Upload
Upload an image by either sending a base64 encoded image to this endpoint or a URL.
To resize an image before uploading, see the Resize endpoint.
[https://m3o.com/image/api#Upload](https://m3o.com/image/api#Upload)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/image"
)
// Upload an image by either sending a base64 encoded image to this endpoint or a URL.
// To resize an image before uploading, see the Resize endpoint.
func UploadAnImageFromAurlToMicrosCdn() {
imageService := image.NewImageService(os.Getenv("M3O_API_TOKEN"))
rsp, err := imageService.Upload(&image.UploadRequest{
Name: "cat.jpeg",
Url: "somewebsite.com/cat.png",
})
fmt.Println(rsp, err)
}
```
## Delete ## Delete
Delete an image previously uploaded. Delete an image previously uploaded.
@@ -32,227 +232,3 @@ func DeleteAnUploadedImage() {
} }
``` ```
## Resize
Resize an image on the fly without storing it (by sending and receiving a base64 encoded image), or resize and upload depending on parameters.
If one of width or height is 0, the image aspect ratio is preserved.
Optional cropping.
To use the file parameter you need to send the request as a multipart/form-data rather than the usual application/json
with each parameter as a form field.
[https://m3o.com/image/api#Resize](https://m3o.com/image/api#Resize)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/image"
)
// Resize an image on the fly without storing it (by sending and receiving a base64 encoded image), or resize and upload depending on parameters.
// If one of width or height is 0, the image aspect ratio is preserved.
// Optional cropping.
// To use the file parameter you need to send the request as a multipart/form-data rather than the usual application/json
// with each parameter as a form field.
func Base64toHostedImage() {
imageService := image.NewImageService(os.Getenv("M3O_API_TOKEN"))
rsp, err := imageService.Resize(&image.ResizeRequest{
Base64: "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",
Height: 100,
Name: "cat.png",
Width: 100,
})
fmt.Println(rsp, err)
}
```
## Resize
Resize an image on the fly without storing it (by sending and receiving a base64 encoded image), or resize and upload depending on parameters.
If one of width or height is 0, the image aspect ratio is preserved.
Optional cropping.
To use the file parameter you need to send the request as a multipart/form-data rather than the usual application/json
with each parameter as a form field.
[https://m3o.com/image/api#Resize](https://m3o.com/image/api#Resize)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/image"
)
// Resize an image on the fly without storing it (by sending and receiving a base64 encoded image), or resize and upload depending on parameters.
// If one of width or height is 0, the image aspect ratio is preserved.
// Optional cropping.
// To use the file parameter you need to send the request as a multipart/form-data rather than the usual application/json
// with each parameter as a form field.
func Base64toBase64image() {
imageService := image.NewImageService(os.Getenv("M3O_API_TOKEN"))
rsp, err := imageService.Resize(&image.ResizeRequest{
Base64: "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",
Height: 100,
Width: 100,
})
fmt.Println(rsp, err)
}
```
## Resize
Resize an image on the fly without storing it (by sending and receiving a base64 encoded image), or resize and upload depending on parameters.
If one of width or height is 0, the image aspect ratio is preserved.
Optional cropping.
To use the file parameter you need to send the request as a multipart/form-data rather than the usual application/json
with each parameter as a form field.
[https://m3o.com/image/api#Resize](https://m3o.com/image/api#Resize)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/image"
)
// Resize an image on the fly without storing it (by sending and receiving a base64 encoded image), or resize and upload depending on parameters.
// If one of width or height is 0, the image aspect ratio is preserved.
// Optional cropping.
// To use the file parameter you need to send the request as a multipart/form-data rather than the usual application/json
// with each parameter as a form field.
func Base64toBase64imageWithCropping() {
imageService := image.NewImageService(os.Getenv("M3O_API_TOKEN"))
rsp, err := imageService.Resize(&image.ResizeRequest{
Base64: "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",
CropOptions: &image.CropOptions{
Height: 50,
Width: 50,
},
Height: 100,
Width: 100,
})
fmt.Println(rsp, err)
}
```
## Convert
Convert an image from one format (jpeg, png etc.) to an other either on the fly (from base64 to base64),
or by uploading the conversion result.
To use the file parameter you need to send the request as a multipart/form-data rather than the usual application/json
with each parameter as a form field.
[https://m3o.com/image/api#Convert](https://m3o.com/image/api#Convert)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/image"
)
// Convert an image from one format (jpeg, png etc.) to an other either on the fly (from base64 to base64),
// or by uploading the conversion result.
// To use the file parameter you need to send the request as a multipart/form-data rather than the usual application/json
// with each parameter as a form field.
func ConvertApngImageToAjpegTakenFromAurlAndSavedToAurlOnMicrosCdn() {
imageService := image.NewImageService(os.Getenv("M3O_API_TOKEN"))
rsp, err := imageService.Convert(&image.ConvertRequest{
Name: "cat.jpeg",
Url: "somewebsite.com/cat.png",
})
fmt.Println(rsp, err)
}
```
## Upload
Upload an image by either sending a base64 encoded image to this endpoint or a URL.
To resize an image before uploading, see the Resize endpoint.
To use the file parameter you need to send the request as a multipart/form-data rather than the usual application/json
with each parameter as a form field.
[https://m3o.com/image/api#Upload](https://m3o.com/image/api#Upload)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/image"
)
// Upload an image by either sending a base64 encoded image to this endpoint or a URL.
// To resize an image before uploading, see the Resize endpoint.
// To use the file parameter you need to send the request as a multipart/form-data rather than the usual application/json
// with each parameter as a form field.
func UploadAbase64imageToMicrosCdn() {
imageService := image.NewImageService(os.Getenv("M3O_API_TOKEN"))
rsp, err := imageService.Upload(&image.UploadRequest{
Base64: "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAx0lEQVR4nOzaMaoDMQyE4ZHj+x82vVdhwQoTkzKQEcwP5r0ihT7sbjUTeAJ4HCegXQJYfOYefOyjDuBiz3yjwJBoCIl6QZOeUjTC1Ix1IxEJXF9+0KWsf2bD4bn37OO/c/wuQ9QyRC1D1DJELUPUMkQtQ9QyRC1D1DJELUPUMkQtQ9QyRC1D1DJELUPUMkQtQ9Sa/NG94Tf3j4WBdaxudMEkn4IM2rZBA0wBrvo7aOcpj2emXvLeVt0IGm0GVXUj91mvAAAA//+V2CZl+4AKXwAAAABJRU5ErkJggg==",
Name: "cat.jpeg",
})
fmt.Println(rsp, err)
}
```
## Upload
Upload an image by either sending a base64 encoded image to this endpoint or a URL.
To resize an image before uploading, see the Resize endpoint.
To use the file parameter you need to send the request as a multipart/form-data rather than the usual application/json
with each parameter as a form field.
[https://m3o.com/image/api#Upload](https://m3o.com/image/api#Upload)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/image"
)
// Upload an image by either sending a base64 encoded image to this endpoint or a URL.
// To resize an image before uploading, see the Resize endpoint.
// To use the file parameter you need to send the request as a multipart/form-data rather than the usual application/json
// with each parameter as a form field.
func UploadAnImageFromAurlToMicrosCdn() {
imageService := image.NewImageService(os.Getenv("M3O_API_TOKEN"))
rsp, err := imageService.Upload(&image.UploadRequest{
Name: "cat.jpeg",
Url: "somewebsite.com/cat.png",
})
fmt.Println(rsp, err)
}
```

View File

@@ -9,8 +9,6 @@ import (
// Convert an image from one format (jpeg, png etc.) to an other either on the fly (from base64 to base64), // Convert an image from one format (jpeg, png etc.) to an other either on the fly (from base64 to base64),
// or by uploading the conversion result. // or by uploading the conversion result.
// To use the file parameter you need to send the request as a multipart/form-data rather than the usual application/json
// with each parameter as a form field.
func main() { func main() {
imageService := image.NewImageService(os.Getenv("M3O_API_TOKEN")) imageService := image.NewImageService(os.Getenv("M3O_API_TOKEN"))
rsp, err := imageService.Convert(&image.ConvertRequest{ rsp, err := imageService.Convert(&image.ConvertRequest{
@@ -18,4 +16,5 @@ func main() {
Url: "somewebsite.com/cat.png", Url: "somewebsite.com/cat.png",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -14,4 +14,5 @@ func main() {
Url: "https://cdn.m3ocontent.com/micro/images/micro/41e23b39-48dd-42b6-9738-79a313414bb8/cat.png", Url: "https://cdn.m3ocontent.com/micro/images/micro/41e23b39-48dd-42b6-9738-79a313414bb8/cat.png",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -10,8 +10,6 @@ import (
// Resize an image on the fly without storing it (by sending and receiving a base64 encoded image), or resize and upload depending on parameters. // Resize an image on the fly without storing it (by sending and receiving a base64 encoded image), or resize and upload depending on parameters.
// If one of width or height is 0, the image aspect ratio is preserved. // If one of width or height is 0, the image aspect ratio is preserved.
// Optional cropping. // Optional cropping.
// To use the file parameter you need to send the request as a multipart/form-data rather than the usual application/json
// with each parameter as a form field.
func main() { func main() {
imageService := image.NewImageService(os.Getenv("M3O_API_TOKEN")) imageService := image.NewImageService(os.Getenv("M3O_API_TOKEN"))
rsp, err := imageService.Resize(&image.ResizeRequest{ rsp, err := imageService.Resize(&image.ResizeRequest{
@@ -20,4 +18,5 @@ func main() {
Width: 100, Width: 100,
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -10,8 +10,6 @@ import (
// Resize an image on the fly without storing it (by sending and receiving a base64 encoded image), or resize and upload depending on parameters. // Resize an image on the fly without storing it (by sending and receiving a base64 encoded image), or resize and upload depending on parameters.
// If one of width or height is 0, the image aspect ratio is preserved. // If one of width or height is 0, the image aspect ratio is preserved.
// Optional cropping. // Optional cropping.
// To use the file parameter you need to send the request as a multipart/form-data rather than the usual application/json
// with each parameter as a form field.
func main() { func main() {
imageService := image.NewImageService(os.Getenv("M3O_API_TOKEN")) imageService := image.NewImageService(os.Getenv("M3O_API_TOKEN"))
rsp, err := imageService.Resize(&image.ResizeRequest{ rsp, err := imageService.Resize(&image.ResizeRequest{
@@ -24,4 +22,5 @@ func main() {
Width: 100, Width: 100,
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -10,8 +10,6 @@ import (
// Resize an image on the fly without storing it (by sending and receiving a base64 encoded image), or resize and upload depending on parameters. // Resize an image on the fly without storing it (by sending and receiving a base64 encoded image), or resize and upload depending on parameters.
// If one of width or height is 0, the image aspect ratio is preserved. // If one of width or height is 0, the image aspect ratio is preserved.
// Optional cropping. // Optional cropping.
// To use the file parameter you need to send the request as a multipart/form-data rather than the usual application/json
// with each parameter as a form field.
func main() { func main() {
imageService := image.NewImageService(os.Getenv("M3O_API_TOKEN")) imageService := image.NewImageService(os.Getenv("M3O_API_TOKEN"))
rsp, err := imageService.Resize(&image.ResizeRequest{ rsp, err := imageService.Resize(&image.ResizeRequest{
@@ -21,4 +19,5 @@ func main() {
Width: 100, Width: 100,
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

View File

@@ -9,8 +9,6 @@ import (
// Upload an image by either sending a base64 encoded image to this endpoint or a URL. // Upload an image by either sending a base64 encoded image to this endpoint or a URL.
// To resize an image before uploading, see the Resize endpoint. // To resize an image before uploading, see the Resize endpoint.
// To use the file parameter you need to send the request as a multipart/form-data rather than the usual application/json
// with each parameter as a form field.
func main() { func main() {
imageService := image.NewImageService(os.Getenv("M3O_API_TOKEN")) imageService := image.NewImageService(os.Getenv("M3O_API_TOKEN"))
rsp, err := imageService.Upload(&image.UploadRequest{ rsp, err := imageService.Upload(&image.UploadRequest{
@@ -18,4 +16,5 @@ func main() {
Name: "cat.jpeg", Name: "cat.jpeg",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
} }

Some files were not shown because too many files have changed in this diff Show More