85 Commits

Author SHA1 Message Date
m3o-actions
fc990c84ab Commit from m3o/m3o action 2022-02-15 22:22:36 +00:00
m3o-actions
e9229571ad Commit from m3o/m3o action 2022-02-15 17:32:16 +00:00
Asim Aslam
b310d3e1e0 remove auto complete example 2022-02-15 17:26:40 +00:00
m3o-actions
3e8a30c33a Commit from m3o/m3o action 2022-02-15 15:30:41 +00:00
m3o-actions
d5b9efe74e Commit from m3o/m3o action 2022-02-15 15:10:47 +00:00
m3o-actions
da28af7166 Commit from m3o/m3o action 2022-02-15 13:03:21 +00:00
m3o-actions
cceeb16d81 Commit from m3o/m3o action 2022-02-15 12:41:05 +00:00
m3o-actions
a25cabc9be Commit from m3o/m3o action 2022-02-15 12:34:07 +00:00
m3o-actions
4ca21d5561 Commit from m3o/m3o action 2022-02-15 12:32:59 +00:00
m3o-actions
39fcaa24c0 Commit from m3o/m3o action 2022-02-15 12:16:34 +00:00
m3o-actions
fc1099c437 Commit from m3o/m3o action 2022-02-15 11:52:09 +00:00
m3o-actions
f3af3fa1ba Commit from m3o/m3o action 2022-02-15 11:36:20 +00:00
m3o-actions
03a3a1bb91 Commit from m3o/m3o action 2022-02-15 11:27:21 +00:00
m3o-actions
1c58bf602d Commit from m3o/m3o action 2022-02-15 11:04:19 +00:00
m3o-actions
02fc6f735a Commit from m3o/m3o action 2022-02-15 10:02:49 +00:00
m3o-actions
7ea20aefbd Commit from m3o/m3o action 2022-02-15 10:00:53 +00:00
m3o-actions
7698310d1a Commit from m3o/m3o action 2022-02-15 10:00:04 +00:00
m3o-actions
9685cb5d53 Commit from m3o/m3o action 2022-02-14 16:40:54 +00:00
m3o-actions
63fb62a55e Commit from m3o/m3o action 2022-02-14 15:40:49 +00:00
m3o-actions
56cdd3c583 Commit from m3o/m3o action 2022-02-14 14:12:45 +00:00
m3o-actions
97accc758e Commit from m3o/m3o action 2022-02-13 18:44:01 +00:00
m3o-actions
7e5fdc7d77 Commit from m3o/m3o action 2022-02-13 18:13:54 +00:00
m3o-actions
90f27882e8 Commit from m3o/m3o action 2022-02-11 15:10:20 +00:00
m3o-actions
70fd591952 Commit from m3o/m3o action 2022-02-11 14:43:11 +00:00
m3o-actions
7add4ca16b Commit from m3o/m3o action 2022-02-11 14:40:54 +00:00
m3o-actions
243d779a03 Commit from m3o/m3o action 2022-02-11 14:28:51 +00:00
m3o-actions
6b9caa1e59 Commit from m3o/m3o action 2022-02-11 14:27:47 +00:00
m3o-actions
2bbe49f716 Commit from m3o/m3o action 2022-02-10 20:54:17 +00:00
m3o-actions
046127532d Commit from m3o/m3o action 2022-02-09 22:11:39 +00:00
m3o-actions
2e14a4252f Commit from m3o/m3o action 2022-02-09 21:55:39 +00:00
m3o-actions
d1be4f25bc Commit from m3o/m3o action 2022-02-09 17:41:21 +00:00
m3o-actions
f38850c259 Commit from m3o/m3o action 2022-02-09 16:54:13 +00:00
m3o-actions
99979e1167 Commit from m3o/m3o action 2022-02-09 16:22:26 +00:00
m3o-actions
d144fd0b22 Commit from m3o/m3o action 2022-02-09 15:12:53 +00:00
m3o-actions
75cd109929 Commit from m3o/m3o action 2022-02-09 12:34:26 +00:00
m3o-actions
4cd429a8b3 Commit from m3o/m3o action 2022-02-09 12:32:09 +00:00
m3o-actions
aef44febce Commit from m3o/m3o action 2022-02-09 12:28:25 +00:00
m3o-actions
6446146553 Commit from m3o/m3o action 2022-02-09 10:44:26 +00:00
m3o-actions
f251e45b0b Commit from m3o/m3o action 2022-02-08 21:53:46 +00:00
m3o-actions
01f99e0b6d Commit from m3o/m3o action 2022-02-08 21:52:55 +00:00
m3o-actions
d9cabd803a Commit from m3o/m3o action 2022-02-08 21:50:47 +00:00
m3o-actions
064734211e Commit from m3o/m3o action 2022-02-08 21:49:28 +00:00
m3o-actions
d0aeac6b3c Commit from m3o/m3o action 2022-02-08 13:52:58 +00:00
m3o-actions
eb93a5a449 Commit from m3o/m3o action 2022-02-08 12:06:36 +00:00
m3o-actions
78d8e2fa1e Commit from m3o/m3o action 2022-02-07 16:49:25 +00:00
m3o-actions
6bca5af6c5 Commit from m3o/m3o action 2022-02-07 16:44:05 +00:00
m3o-actions
d132d7c27c Commit from m3o/m3o action 2022-02-07 16:25:19 +00:00
m3o-actions
6f3a7a4dd3 Commit from m3o/m3o action 2022-02-07 16:13:31 +00:00
m3o-actions
a2eb34e59a Commit from m3o/m3o action 2022-02-07 15:27:01 +00:00
m3o-actions
709e4180ec Commit from m3o/m3o action 2022-02-06 19:14:19 +00:00
m3o-actions
3abd701901 Commit from m3o/m3o action 2022-02-06 19:13:50 +00:00
m3o-actions
ea5aa65039 Commit from m3o/m3o action 2022-02-06 18:47:42 +00:00
m3o-actions
1ae6969f65 Commit from m3o/m3o action 2022-02-05 23:52:42 +00:00
m3o-actions
9901807b67 Commit from m3o/m3o action 2022-02-05 21:34:41 +00:00
m3o-actions
efb35c528c Commit from m3o/m3o action 2022-02-05 21:34:19 +00:00
m3o-actions
a64a7a6162 Commit from m3o/m3o action 2022-02-05 21:32:59 +00:00
m3o-actions
c7afdd237d Commit from m3o/m3o action 2022-02-05 21:32:06 +00:00
m3o-actions
6f5714dc73 Commit from m3o/m3o action 2022-02-03 22:42:38 +00:00
m3o-actions
6ce3f89757 Commit from m3o/m3o action 2022-02-03 22:02:09 +00:00
m3o-actions
3e655dea52 Commit from m3o/m3o action 2022-02-03 22:01:41 +00:00
m3o-actions
80ca5f8229 Commit from m3o/m3o action 2022-02-03 17:36:03 +00:00
m3o-actions
993c0b1e1c Commit from m3o/m3o action 2022-02-03 17:23:40 +00:00
m3o-actions
f7c6ac50e2 Commit from m3o/m3o action 2022-02-03 16:13:46 +00:00
m3o-actions
1f72651636 Commit from m3o/m3o action 2022-02-03 16:06:11 +00:00
m3o-actions
9f65103806 Commit from m3o/m3o action 2022-02-03 14:18:46 +00:00
m3o-actions
fb85cd000f Commit from m3o/m3o action 2022-02-03 11:32:32 +00:00
m3o-actions
e78ab622d6 Commit from m3o/m3o action 2022-02-03 11:21:15 +00:00
m3o-actions
84a739197e Commit from m3o/m3o action 2022-02-02 16:54:08 +00:00
m3o-actions
83d8cd3702 Commit from m3o/m3o action 2022-02-02 16:49:58 +00:00
m3o-actions
a94d784928 Commit from m3o/m3o action 2022-02-02 16:41:56 +00:00
m3o-actions
fd3a1063b0 Commit from m3o/m3o action 2022-02-02 16:32:36 +00:00
m3o-actions
2b935c2eb1 Commit from m3o/m3o action 2022-02-02 15:30:54 +00:00
m3o-actions
2d46dc2672 Commit from m3o/m3o action 2022-02-02 15:03:48 +00:00
m3o-actions
06f2db6618 Commit from m3o/m3o action 2022-02-02 12:14:14 +00:00
m3o-actions
c0731399ee Commit from m3o/m3o action 2022-02-02 11:33:16 +00:00
m3o-actions
9057f09e41 Commit from m3o/m3o action 2022-02-02 10:29:34 +00:00
m3o-actions
b7853960a4 Commit from m3o/m3o action 2022-02-01 17:25:12 +00:00
m3o-actions
1d96d4517b Commit from m3o/m3o action 2022-02-01 17:11:32 +00:00
m3o-actions
dd282e7ab9 Commit from m3o/m3o action 2022-02-01 15:16:59 +00:00
m3o-actions
8f3fe3d33c Commit from m3o/m3o action 2022-02-01 12:52:37 +00:00
m3o-actions
7e17640b3e Commit from m3o/m3o action 2022-02-01 12:14:35 +00:00
m3o-actions
a46a505a9f Commit from m3o/m3o action 2022-02-01 11:50:37 +00:00
m3o-actions
0a690f02d9 Commit from m3o/m3o action 2022-02-01 11:23:28 +00:00
m3o-actions
434a7615b7 Commit from m3o/m3o action 2022-02-01 11:12:15 +00:00
m3o-actions
7552377ffc Commit from m3o/m3o action 2022-02-01 08:52:03 +00:00
42 changed files with 1870 additions and 1314 deletions

View File

@@ -67,7 +67,7 @@ func (t *AppService) Resolve(request *ResolveRequest) (*ResolveResponse, error)
} }
// Run an app from a source repo. Specify region etc. // Run an app from source
func (t *AppService) Run(request *RunRequest) (*RunResponse, error) { func (t *AppService) Run(request *RunRequest) (*RunResponse, error) {
rsp := &RunResponse{} rsp := &RunResponse{}
@@ -150,7 +150,7 @@ type ResolveResponse struct {
type RunRequest struct { type RunRequest struct {
// branch. defaults to master // branch. defaults to master
Branch string `json:"branch"` Branch string `json:"branch"`
// associatede env vars to pass in // associated env vars to pass in
EnvVars map[string]string `json:"env_vars"` EnvVars map[string]string `json:"env_vars"`
// name of the app // name of the app
Name string `json:"name"` Name string `json:"name"`

View File

@@ -4,62 +4,6 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/app/api](https
Endpoints: Endpoints:
## 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
List all the apps List all the apps
@@ -89,7 +33,7 @@ func ListTheApps() {
``` ```
## Run ## Run
Run an app from a source repo. Specify region etc. Run an app from source
[https://m3o.com/app/api#Run](https://m3o.com/app/api#Run) [https://m3o.com/app/api#Run](https://m3o.com/app/api#Run)
@@ -104,7 +48,7 @@ import(
"go.m3o.com/app" "go.m3o.com/app"
) )
// Run an app from a source repo. Specify region etc. // Run an app from source
func RunAnApp() { func RunAnApp() {
appService := app.NewAppService(os.Getenv("M3O_API_TOKEN")) appService := app.NewAppService(os.Getenv("M3O_API_TOKEN"))
rsp, err := appService.Run(&app.RunRequest{ rsp, err := appService.Run(&app.RunRequest{
@@ -230,3 +174,59 @@ func UpdateAnApp() {
} }
``` ```
## 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)
}
```

View File

@@ -7,7 +7,7 @@ import (
"go.m3o.com/app" "go.m3o.com/app"
) )
// Run an app from a source repo. Specify region etc. // Run an app from source
func main() { func main() {
appService := app.NewAppService(os.Getenv("M3O_API_TOKEN")) appService := app.NewAppService(os.Getenv("M3O_API_TOKEN"))
rsp, err := appService.Run(&app.RunRequest{ rsp, err := appService.Run(&app.RunRequest{

View File

@@ -4,91 +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 a value from the cache. If key not found a success response is returned.
[https://m3o.com/cache/api#Delete](https://m3o.com/cache/api#Delete)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/cache"
)
// Delete a value from the cache. If key not found a success response is returned.
func DeleteAvalue() {
cacheService := cache.NewCacheService(os.Getenv("M3O_API_TOKEN"))
rsp, err := cacheService.Delete(&cache.DeleteRequest{
Key: "foo",
})
fmt.Println(rsp, err)
}
```
## Increment ## Increment
Increment a value (if it's a number). If key not found it is equivalent to set. Increment a value (if it's a number). If key not found it is equivalent to set.
@@ -174,3 +89,88 @@ func ListTheKeys() {
} }
``` ```
## 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 a value from the cache. If key not found a success response is returned.
[https://m3o.com/cache/api#Delete](https://m3o.com/cache/api#Delete)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/cache"
)
// Delete a value from the cache. If key not found a success response is returned.
func DeleteAvalue() {
cacheService := cache.NewCacheService(os.Getenv("M3O_API_TOKEN"))
rsp, err := cacheService.Delete(&cache.DeleteRequest{
Key: "foo",
})
fmt.Println(rsp, err)
}
```

View File

@@ -4,6 +4,90 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/contact/api](h
Endpoints: Endpoints:
## Delete
[https://m3o.com/contact/api#Delete](https://m3o.com/contact/api#Delete)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/contact"
)
//
func DeleteAcontact() {
contactService := contact.NewContactService(os.Getenv("M3O_API_TOKEN"))
rsp, err := contactService.Delete(&contact.DeleteRequest{
Id: "42e48a3c-6221-11ec-96d2-acde48001122",
})
fmt.Println(rsp, err)
}
```
## List
[https://m3o.com/contact/api#List](https://m3o.com/contact/api#List)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/contact"
)
//
func ListContactsWithDefaultOffsetAndLimitDefaultLimitIs20() {
contactService := contact.NewContactService(os.Getenv("M3O_API_TOKEN"))
rsp, err := contactService.List(&contact.ListRequest{
})
fmt.Println(rsp, err)
}
```
## List
[https://m3o.com/contact/api#List](https://m3o.com/contact/api#List)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/contact"
)
//
func ListContactsWithSpecificOffsetAndLimit() {
contactService := contact.NewContactService(os.Getenv("M3O_API_TOKEN"))
rsp, err := contactService.List(&contact.ListRequest{
Limit: 1,
Offset: 1,
})
fmt.Println(rsp, err)
}
```
## Create ## Create
@@ -133,87 +217,3 @@ func GetAcontact() {
} }
``` ```
## Delete
[https://m3o.com/contact/api#Delete](https://m3o.com/contact/api#Delete)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/contact"
)
//
func DeleteAcontact() {
contactService := contact.NewContactService(os.Getenv("M3O_API_TOKEN"))
rsp, err := contactService.Delete(&contact.DeleteRequest{
Id: "42e48a3c-6221-11ec-96d2-acde48001122",
})
fmt.Println(rsp, err)
}
```
## List
[https://m3o.com/contact/api#List](https://m3o.com/contact/api#List)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/contact"
)
//
func ListContactsWithDefaultOffsetAndLimitDefaultLimitIs20() {
contactService := contact.NewContactService(os.Getenv("M3O_API_TOKEN"))
rsp, err := contactService.List(&contact.ListRequest{
})
fmt.Println(rsp, err)
}
```
## List
[https://m3o.com/contact/api#List](https://m3o.com/contact/api#List)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/contact"
)
//
func ListContactsWithSpecificOffsetAndLimit() {
contactService := contact.NewContactService(os.Getenv("M3O_API_TOKEN"))
rsp, err := contactService.List(&contact.ListRequest{
Limit: 1,
Offset: 1,
})
fmt.Println(rsp, err)
}
```

View File

@@ -4,6 +4,61 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/currency/api](
Endpoints: Endpoints:
## Codes
Codes returns the supported currency codes for the API
[https://m3o.com/currency/api#Codes](https://m3o.com/currency/api#Codes)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/currency"
)
// Codes returns the supported currency codes for the API
func GetSupportedCodes() {
currencyService := currency.NewCurrencyService(os.Getenv("M3O_API_TOKEN"))
rsp, err := currencyService.Codes(&currency.CodesRequest{
})
fmt.Println(rsp, err)
}
```
## Rates
Rates returns the currency rates for a given code e.g USD
[https://m3o.com/currency/api#Rates](https://m3o.com/currency/api#Rates)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/currency"
)
// Rates returns the currency rates for a given code e.g USD
func GetRatesForUsd() {
currencyService := currency.NewCurrencyService(os.Getenv("M3O_API_TOKEN"))
rsp, err := currencyService.Rates(&currency.RatesRequest{
Code: "USD",
})
fmt.Println(rsp, err)
}
```
## Convert ## Convert
Convert returns the currency conversion rate between two pairs e.g USD/GBP Convert returns the currency conversion rate between two pairs e.g USD/GBP
@@ -92,58 +147,3 @@ Date: "2021-05-30",
} }
``` ```
## Codes
Codes returns the supported currency codes for the API
[https://m3o.com/currency/api#Codes](https://m3o.com/currency/api#Codes)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/currency"
)
// Codes returns the supported currency codes for the API
func GetSupportedCodes() {
currencyService := currency.NewCurrencyService(os.Getenv("M3O_API_TOKEN"))
rsp, err := currencyService.Codes(&currency.CodesRequest{
})
fmt.Println(rsp, err)
}
```
## Rates
Rates returns the currency rates for a given code e.g USD
[https://m3o.com/currency/api#Rates](https://m3o.com/currency/api#Rates)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/currency"
)
// Rates returns the currency rates for a given code e.g USD
func GetRatesForUsd() {
currencyService := currency.NewCurrencyService(os.Getenv("M3O_API_TOKEN"))
rsp, err := currencyService.Rates(&currency.RatesRequest{
Code: "USD",
})
fmt.Println(rsp, err)
}
```

View File

@@ -4,12 +4,12 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/db/api](https:
Endpoints: Endpoints:
## Update ## RenameTable
Update a record in the database. Include an "id" in the record to update. Rename a table
[https://m3o.com/db/api#Update](https://m3o.com/db/api#Update) [https://m3o.com/db/api#RenameTable](https://m3o.com/db/api#RenameTable)
```go ```go
package example package example
@@ -21,19 +21,72 @@ import(
"go.m3o.com/db" "go.m3o.com/db"
) )
// Update a record in the database. Include an "id" in the record to update. // Rename a table
func UpdateArecord() { func RenameTable() {
dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN")) dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN"))
rsp, err := dbService.Update(&db.UpdateRequest{ rsp, err := dbService.RenameTable(&db.RenameTableRequest{
Record: map[string]interface{}{ From: "examples2",
"id": "1", To: "examples3",
"age": 43,
}, })
fmt.Println(rsp, err)
}
```
## Delete
Delete a record in the database by id.
[https://m3o.com/db/api#Delete](https://m3o.com/db/api#Delete)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/db"
)
// Delete a record in the database by id.
func DeleteArecord() {
dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN"))
rsp, err := dbService.Delete(&db.DeleteRequest{
Id: "1",
Table: "example", Table: "example",
}) })
fmt.Println(rsp, err) 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)
} }
``` ```
## Read ## Read
@@ -63,6 +116,34 @@ Table: "example",
}) })
fmt.Println(rsp, err) 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)
} }
``` ```
## DropTable ## DropTable
@@ -119,33 +200,6 @@ func CountEntriesInAtable() {
}) })
fmt.Println(rsp, err) 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
@@ -170,10 +224,10 @@ 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: "example",
@@ -182,12 +236,12 @@ Table: "example",
} }
``` ```
## Delete ## Update
Delete a record in the database by id. Update a record in the database. Include an "id" in the record to update.
[https://m3o.com/db/api#Delete](https://m3o.com/db/api#Delete) [https://m3o.com/db/api#Update](https://m3o.com/db/api#Update)
```go ```go
package example package example
@@ -199,11 +253,14 @@ import(
"go.m3o.com/db" "go.m3o.com/db"
) )
// Delete a record in the database by id. // Update a record in the database. Include an "id" in the record to update.
func DeleteArecord() { func UpdateArecord() {
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.Update(&db.UpdateRequest{
Id: "1", Record: map[string]interface{}{
"id": "1",
"age": 43,
},
Table: "example", Table: "example",
}) })
@@ -211,60 +268,3 @@ Table: "example",
} }
``` ```
## 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)
}
```
## 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)
}
```

View File

@@ -12,8 +12,8 @@ func main() {
dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN")) dbService := db.NewDbService(os.Getenv("M3O_API_TOKEN"))
rsp, err := dbService.Update(&db.UpdateRequest{ rsp, err := dbService.Update(&db.UpdateRequest{
Record: map[string]interface{}{ Record: map[string]interface{}{
"id": "1",
"age": 43, "age": 43,
"id": "1",
}, },
Table: "example", Table: "example",
}) })

View File

@@ -4,6 +4,34 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/email/api](htt
Endpoints: Endpoints:
## Parse
Parse an RFC5322 address e.g "Joe Blogs <joe@example.com>"
[https://m3o.com/email/api#Parse](https://m3o.com/email/api#Parse)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/email"
)
// Parse an RFC5322 address e.g "Joe Blogs <joe@example.com>"
func ParseEmail() {
emailService := email.NewEmailService(os.Getenv("M3O_API_TOKEN"))
rsp, err := emailService.Parse(&email.ParseRequest{
Address: "Joe Blogs <joe@example.com>",
})
fmt.Println(rsp, err)
}
```
## Validate ## Validate
Validate an email address format Validate an email address format
@@ -64,31 +92,3 @@ Please verify your email by clicking this link: $micro_verification_link`,
} }
``` ```
## Parse
Parse an RFC5322 address e.g "Joe Blogs <joe@example.com>"
[https://m3o.com/email/api#Parse](https://m3o.com/email/api#Parse)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/email"
)
// Parse an RFC5322 address e.g "Joe Blogs <joe@example.com>"
func ParseEmail() {
emailService := email.NewEmailService(os.Getenv("M3O_API_TOKEN"))
rsp, err := emailService.Parse(&email.ParseRequest{
Address: "Joe Blogs <joe@example.com>",
})
fmt.Println(rsp, err)
}
```

View File

@@ -4,6 +4,36 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/emoji/api](htt
Endpoints: Endpoints:
## Send
Send an emoji to anyone via SMS. Messages are sent in the form '<message> Sent from <from>'
[https://m3o.com/emoji/api#Send](https://m3o.com/emoji/api#Send)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/emoji"
)
// Send an emoji to anyone via SMS. Messages are sent in the form '<message> Sent from <from>'
func SendAtextContainingAnEmojiToAnyoneViaSms() {
emojiService := emoji.NewEmojiService(os.Getenv("M3O_API_TOKEN"))
rsp, err := emojiService.Send(&emoji.SendRequest{
From: "Alice",
Message: "let's grab a :beer:",
To: "+44782669123",
})
fmt.Println(rsp, err)
}
```
## Find ## Find
Find an emoji by its alias e.g :beer: Find an emoji by its alias e.g :beer:
@@ -89,33 +119,3 @@ func PrintTextIncludingEmoji() {
} }
``` ```
## Send
Send an emoji to anyone via SMS. Messages are sent in the form '<message> Sent from <from>'
[https://m3o.com/emoji/api#Send](https://m3o.com/emoji/api#Send)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/emoji"
)
// Send an emoji to anyone via SMS. Messages are sent in the form '<message> Sent from <from>'
func SendAtextContainingAnEmojiToAnyoneViaSms() {
emojiService := emoji.NewEmojiService(os.Getenv("M3O_API_TOKEN"))
rsp, err := emojiService.Send(&emoji.SendRequest{
From: "Alice",
Message: "let's grab a :beer:",
To: "+44782669123",
})
fmt.Println(rsp, err)
}
```

View File

@@ -4,6 +4,39 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/event/api](htt
Endpoints: Endpoints:
## Publish
Publish a event to the event stream.
[https://m3o.com/event/api#Publish](https://m3o.com/event/api#Publish)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/event"
)
// Publish a event to the event stream.
func PublishAnEvent() {
eventService := event.NewEventService(os.Getenv("M3O_API_TOKEN"))
rsp, err := eventService.Publish(&event.PublishRequest{
Message: map[string]interface{}{
"id": "1",
"type": "signup",
"user": "john",
},
Topic: "user",
})
fmt.Println(rsp, err)
}
```
## Consume ## Consume
Consume events from a given topic. Consume events from a given topic.
@@ -73,36 +106,3 @@ func ReadEventsOnAtopic() {
} }
``` ```
## Publish
Publish a event to the event stream.
[https://m3o.com/event/api#Publish](https://m3o.com/event/api#Publish)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/event"
)
// Publish a event to the event stream.
func PublishAnEvent() {
eventService := event.NewEventService(os.Getenv("M3O_API_TOKEN"))
rsp, err := eventService.Publish(&event.PublishRequest{
Message: map[string]interface{}{
"id": "1",
"type": "signup",
"user": "john",
},
Topic: "user",
})
fmt.Println(rsp, err)
}
```

View File

@@ -4,6 +4,38 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/file/api](http
Endpoints: Endpoints:
## Save
Save a file
[https://m3o.com/file/api#Save](https://m3o.com/file/api#Save)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/file"
)
// Save a file
func SaveFile() {
fileService := file.NewFileService(os.Getenv("M3O_API_TOKEN"))
rsp, err := fileService.Save(&file.SaveRequest{
File: &file.Record{
Content: "file content example",
Path: "/document/text-files/file.txt",
Project: "examples",
},
})
fmt.Println(rsp, err)
}
```
## List ## List
List files by their project and optionally a path. List files by their project and optionally a path.
@@ -90,35 +122,3 @@ Project: "examples",
} }
``` ```
## Save
Save a file
[https://m3o.com/file/api#Save](https://m3o.com/file/api#Save)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/file"
)
// Save a file
func SaveFile() {
fileService := file.NewFileService(os.Getenv("M3O_API_TOKEN"))
rsp, err := fileService.Save(&file.SaveRequest{
File: &file.Record{
Content: "file content example",
Path: "/document/text-files/file.txt",
Project: "examples",
},
})
fmt.Println(rsp, err)
}
```

View File

@@ -4,6 +4,33 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/function/api](
Endpoints: Endpoints:
## List
List all the deployed functions
[https://m3o.com/function/api#List](https://m3o.com/function/api#List)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/function"
)
// List all the deployed functions
func ListFunctions() {
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
rsp, err := functionService.List(&function.ListRequest{
})
fmt.Println(rsp, err)
}
```
## Reserve ## Reserve
Reserve function names and resources beyond free quota Reserve function names and resources beyond free quota
@@ -30,6 +57,34 @@ func ReserveAfunction() {
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
}
```
## Proxy
Return the backend url for proxying
[https://m3o.com/function/api#Proxy](https://m3o.com/function/api#Proxy)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/function"
)
// Return the backend url for proxying
func ProxyUrl() {
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
rsp, err := functionService.Proxy(&function.ProxyRequest{
Id: "helloworld",
})
fmt.Println(rsp, err)
} }
``` ```
## Deploy ## Deploy
@@ -66,12 +121,12 @@ Subfolder: "examples/go-function",
} }
``` ```
## Regions ## Call
Return a list of supported regions Call a function by name
[https://m3o.com/function/api#Regions](https://m3o.com/function/api#Regions) [https://m3o.com/function/api#Call](https://m3o.com/function/api#Call)
```go ```go
package example package example
@@ -83,37 +138,14 @@ import(
"go.m3o.com/function" "go.m3o.com/function"
) )
// Return a list of supported regions // Call a function by name
func ListRegions() { func CallAfunction() {
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN")) functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
rsp, err := functionService.Regions(&function.RegionsRequest{ rsp, err := functionService.Call(&function.CallRequest{
Name: "helloworld",
}) Request: map[string]interface{}{
fmt.Println(rsp, err) "name": "Alice",
},
}
```
## List
List all the deployed functions
[https://m3o.com/function/api#List](https://m3o.com/function/api#List)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/function"
)
// List all the deployed functions
func ListFunctions() {
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
rsp, err := functionService.List(&function.ListRequest{
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
@@ -176,12 +208,12 @@ func DescribeFunctionStatus() {
} }
``` ```
## Proxy ## Regions
Return the backend url for proxying Return a list of supported regions
[https://m3o.com/function/api#Proxy](https://m3o.com/function/api#Proxy) [https://m3o.com/function/api#Regions](https://m3o.com/function/api#Regions)
```go ```go
package example package example
@@ -193,11 +225,10 @@ import(
"go.m3o.com/function" "go.m3o.com/function"
) )
// Return the backend url for proxying // Return a list of supported regions
func ProxyUrl() { func ListRegions() {
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN")) functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
rsp, err := functionService.Proxy(&function.ProxyRequest{ rsp, err := functionService.Regions(&function.RegionsRequest{
Id: "helloworld",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
@@ -232,34 +263,3 @@ func UpdateAfunction() {
} }
``` ```
## Call
Call a function by name
[https://m3o.com/function/api#Call](https://m3o.com/function/api#Call)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/function"
)
// Call a function by name
func CallAfunction() {
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
rsp, err := functionService.Call(&function.CallRequest{
Name: "helloworld",
Request: map[string]interface{}{
"name": "Alice",
},
})
fmt.Println(rsp, err)
}
```

View File

@@ -4,6 +4,42 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/location/api](
Endpoints: Endpoints:
## Save
Save an entity's current position
[https://m3o.com/location/api#Save](https://m3o.com/location/api#Save)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/location"
)
// Save an entity's current position
func SaveAnEntity() {
locationService := location.NewLocationService(os.Getenv("M3O_API_TOKEN"))
rsp, err := locationService.Save(&location.SaveRequest{
Entity: &location.Entity{
Id: "1",
Location: &location.Point{
Latitude: 51.511061,
Longitude: -0.120022,
Timestamp: 1622802761,
},
Type: "bike",
},
})
fmt.Println(rsp, err)
}
```
## Read ## Read
Read an entity by its ID Read an entity by its ID
@@ -66,39 +102,3 @@ Type: "bike",
} }
``` ```
## Save
Save an entity's current position
[https://m3o.com/location/api#Save](https://m3o.com/location/api#Save)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/location"
)
// Save an entity's current position
func SaveAnEntity() {
locationService := location.NewLocationService(os.Getenv("M3O_API_TOKEN"))
rsp, err := locationService.Save(&location.SaveRequest{
Entity: &location.Entity{
Id: "1",
Location: &location.Point{
Latitude: 51.511061,
Longitude: -0.120022,
Timestamp: 1622802761,
},
Type: "bike",
},
})
fmt.Println(rsp, err)
}
```

34
examples/minecraft/README.md Executable file
View File

@@ -0,0 +1,34 @@
# Minecraft
An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/minecraft/api](https://m3o.com/minecraft/api).
Endpoints:
## Ping
Ping a minecraft server
[https://m3o.com/minecraft/api#Ping](https://m3o.com/minecraft/api#Ping)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/minecraft"
)
// Ping a minecraft server
func PingAminecraftServer() {
minecraftService := minecraft.NewMinecraftService(os.Getenv("M3O_API_TOKEN"))
rsp, err := minecraftService.Ping(&minecraft.PingRequest{
Address: "funcraft.net",
})
fmt.Println(rsp, err)
}
```

View File

@@ -0,0 +1,17 @@
package main
import (
"fmt"
"os"
"go.m3o.com/minecraft"
)
// Ping a minecraft server
func main() {
minecraftService := minecraft.NewMinecraftService(os.Getenv("M3O_API_TOKEN"))
rsp, err := minecraftService.Ping(&minecraft.PingRequest{
Address: "funcraft.net",
})
fmt.Println(rsp, err)
}

View File

@@ -4,6 +4,39 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/mq/api](https:
Endpoints: Endpoints:
## Publish
Publish a message. Specify a topic to group messages for a specific topic.
[https://m3o.com/mq/api#Publish](https://m3o.com/mq/api#Publish)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/mq"
)
// Publish a message. Specify a topic to group messages for a specific topic.
func PublishAmessage() {
mqService := mq.NewMqService(os.Getenv("M3O_API_TOKEN"))
rsp, err := mqService.Publish(&mq.PublishRequest{
Message: map[string]interface{}{
"id": "1",
"type": "signup",
"user": "john",
},
Topic: "events",
})
fmt.Println(rsp, err)
}
```
## Subscribe ## Subscribe
Subscribe to messages for a given topic. Subscribe to messages for a given topic.
@@ -45,36 +78,3 @@ func SubscribeToAtopic() {
} }
} }
``` ```
## Publish
Publish a message. Specify a topic to group messages for a specific topic.
[https://m3o.com/mq/api#Publish](https://m3o.com/mq/api#Publish)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/mq"
)
// Publish a message. Specify a topic to group messages for a specific topic.
func PublishAmessage() {
mqService := mq.NewMqService(os.Getenv("M3O_API_TOKEN"))
rsp, err := mqService.Publish(&mq.PublishRequest{
Message: map[string]interface{}{
"id": "1",
"type": "signup",
"user": "john",
},
Topic: "events",
})
fmt.Println(rsp, err)
}
```

View File

@@ -4,34 +4,6 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/nft/api](https
Endpoints: Endpoints:
## Collections
Get a list of collections
[https://m3o.com/nft/api#Collections](https://m3o.com/nft/api#Collections)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/nft"
)
// Get a list of collections
func ListCollections() {
nftService := nft.NewNftService(os.Getenv("M3O_API_TOKEN"))
rsp, err := nftService.Collections(&nft.CollectionsRequest{
Limit: 1,
})
fmt.Println(rsp, err)
}
```
## Assets ## Assets
Return a list of assets Return a list of assets
@@ -89,3 +61,31 @@ Name: "Guybrush Threepwood",
} }
``` ```
## Collections
Get a list of collections
[https://m3o.com/nft/api#Collections](https://m3o.com/nft/api#Collections)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/nft"
)
// Get a list of collections
func ListCollections() {
nftService := nft.NewNftService(os.Getenv("M3O_API_TOKEN"))
rsp, err := nftService.Collections(&nft.CollectionsRequest{
Limit: 1,
})
fmt.Println(rsp, err)
}
```

View File

@@ -4,6 +4,63 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/notes/api](htt
Endpoints: Endpoints:
## Create
Create a new note
[https://m3o.com/notes/api#Create](https://m3o.com/notes/api#Create)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/notes"
)
// Create a new note
func CreateAnote() {
notesService := notes.NewNotesService(os.Getenv("M3O_API_TOKEN"))
rsp, err := notesService.Create(&notes.CreateRequest{
Text: "This is my note",
Title: "New Note",
})
fmt.Println(rsp, err)
}
```
## Read
Read a note
[https://m3o.com/notes/api#Read](https://m3o.com/notes/api#Read)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/notes"
)
// Read a note
func ReadAnote() {
notesService := notes.NewNotesService(os.Getenv("M3O_API_TOKEN"))
rsp, err := notesService.Read(&notes.ReadRequest{
Id: "63c0cdf8-2121-11ec-a881-0242e36f037a",
})
fmt.Println(rsp, err)
}
```
## List ## List
List all the notes List all the notes
@@ -132,60 +189,3 @@ func SubscribeToEvents() {
} }
} }
``` ```
## Create
Create a new note
[https://m3o.com/notes/api#Create](https://m3o.com/notes/api#Create)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/notes"
)
// Create a new note
func CreateAnote() {
notesService := notes.NewNotesService(os.Getenv("M3O_API_TOKEN"))
rsp, err := notesService.Create(&notes.CreateRequest{
Text: "This is my note",
Title: "New Note",
})
fmt.Println(rsp, err)
}
```
## Read
Read a note
[https://m3o.com/notes/api#Read](https://m3o.com/notes/api#Read)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/notes"
)
// Read a note
func ReadAnote() {
notesService := notes.NewNotesService(os.Getenv("M3O_API_TOKEN"))
rsp, err := notesService.Read(&notes.ReadRequest{
Id: "63c0cdf8-2121-11ec-a881-0242e36f037a",
})
fmt.Println(rsp, err)
}
```

90
examples/ping/README.md Executable file
View File

@@ -0,0 +1,90 @@
# Ping
An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/ping/api](https://m3o.com/ping/api).
Endpoints:
## Tcp
Ping a TCP port is open
[https://m3o.com/ping/api#Tcp](https://m3o.com/ping/api#Tcp)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/ping"
)
// Ping a TCP port is open
func DialAtcpAddress() {
pingService := ping.NewPingService(os.Getenv("M3O_API_TOKEN"))
rsp, err := pingService.Tcp(&ping.TcpRequest{
Address: "google.com:80",
})
fmt.Println(rsp, err)
}
```
## Url
Ping a HTTP URL
[https://m3o.com/ping/api#Url](https://m3o.com/ping/api#Url)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/ping"
)
// Ping a HTTP URL
func CheckAurl() {
pingService := ping.NewPingService(os.Getenv("M3O_API_TOKEN"))
rsp, err := pingService.Url(&ping.UrlRequest{
Address: "google.com",
})
fmt.Println(rsp, err)
}
```
## Ip
Ping an IP address
[https://m3o.com/ping/api#Ip](https://m3o.com/ping/api#Ip)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/ping"
)
// Ping an IP address
func PingAnIp() {
pingService := ping.NewPingService(os.Getenv("M3O_API_TOKEN"))
rsp, err := pingService.Ip(&ping.IpRequest{
Address: "google.com",
})
fmt.Println(rsp, err)
}
```

View File

@@ -0,0 +1,17 @@
package main
import (
"fmt"
"os"
"go.m3o.com/ping"
)
// Ping an IP address
func main() {
pingService := ping.NewPingService(os.Getenv("M3O_API_TOKEN"))
rsp, err := pingService.Ip(&ping.IpRequest{
Address: "google.com",
})
fmt.Println(rsp, err)
}

View File

@@ -0,0 +1,17 @@
package main
import (
"fmt"
"os"
"go.m3o.com/ping"
)
// Ping a TCP port is open
func main() {
pingService := ping.NewPingService(os.Getenv("M3O_API_TOKEN"))
rsp, err := pingService.Tcp(&ping.TcpRequest{
Address: "google.com:80",
})
fmt.Println(rsp, err)
}

View File

@@ -0,0 +1,17 @@
package main
import (
"fmt"
"os"
"go.m3o.com/ping"
)
// Ping a HTTP URL
func main() {
pingService := ping.NewPingService(os.Getenv("M3O_API_TOKEN"))
rsp, err := pingService.Url(&ping.UrlRequest{
Address: "google.com",
})
fmt.Println(rsp, err)
}

65
examples/place/README.md Executable file
View File

@@ -0,0 +1,65 @@
# Place
An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/place/api](https://m3o.com/place/api).
Endpoints:
## Nearby
Find places nearby using a location
[https://m3o.com/place/api#Nearby](https://m3o.com/place/api#Nearby)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/place"
)
// Find places nearby using a location
func FindPlacesNearby() {
placeService := place.NewPlaceService(os.Getenv("M3O_API_TOKEN"))
rsp, err := placeService.Nearby(&place.NearbyRequest{
Keyword: "tesco",
Location: "51.5074577,-0.1297515",
Type: "store",
})
fmt.Println(rsp, err)
}
```
## Search
Search for places by text query
[https://m3o.com/place/api#Search](https://m3o.com/place/api#Search)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/place"
)
// Search for places by text query
func SearchForPlaces() {
placeService := place.NewPlaceService(os.Getenv("M3O_API_TOKEN"))
rsp, err := placeService.Search(&place.SearchRequest{
Location: "51.5074577,-0.1297515",
Query: "food",
})
fmt.Println(rsp, err)
}
```

View File

@@ -0,0 +1,19 @@
package main
import (
"fmt"
"os"
"go.m3o.com/place"
)
// Find places nearby using a location
func main() {
placeService := place.NewPlaceService(os.Getenv("M3O_API_TOKEN"))
rsp, err := placeService.Nearby(&place.NearbyRequest{
Keyword: "tesco",
Location: "51.5074577,-0.1297515",
Type: "store",
})
fmt.Println(rsp, err)
}

View File

@@ -0,0 +1,18 @@
package main
import (
"fmt"
"os"
"go.m3o.com/place"
)
// Search for places by text query
func main() {
placeService := place.NewPlaceService(os.Getenv("M3O_API_TOKEN"))
rsp, err := placeService.Search(&place.SearchRequest{
Location: "51.5074577,-0.1297515",
Query: "food",
})
fmt.Println(rsp, err)
}

View File

@@ -4,6 +4,34 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/quran/api](htt
Endpoints: Endpoints:
## Chapters
List the Chapters (surahs) of the Quran
[https://m3o.com/quran/api#Chapters](https://m3o.com/quran/api#Chapters)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/quran"
)
// List the Chapters (surahs) of the Quran
func ListChapters() {
quranService := quran.NewQuranService(os.Getenv("M3O_API_TOKEN"))
rsp, err := quranService.Chapters(&quran.ChaptersRequest{
Language: "en",
})
fmt.Println(rsp, err)
}
```
## Summary ## Summary
Get a summary for a given chapter (surah) Get a summary for a given chapter (surah)
@@ -92,31 +120,3 @@ func SearchTheQuran() {
} }
``` ```
## Chapters
List the Chapters (surahs) of the Quran
[https://m3o.com/quran/api#Chapters](https://m3o.com/quran/api#Chapters)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/quran"
)
// List the Chapters (surahs) of the Quran
func ListChapters() {
quranService := quran.NewQuranService(os.Getenv("M3O_API_TOKEN"))
rsp, err := quranService.Chapters(&quran.ChaptersRequest{
Language: "en",
})
fmt.Println(rsp, err)
}
```

View File

@@ -4,6 +4,91 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/search/api](ht
Endpoints: Endpoints:
## Delete
Delete a document given its ID
[https://m3o.com/search/api#Delete](https://m3o.com/search/api#Delete)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/search"
)
// Delete a document given its ID
func DeleteAdocument() {
searchService := search.NewSearchService(os.Getenv("M3O_API_TOKEN"))
rsp, err := searchService.Delete(&search.DeleteRequest{
Id: "1234",
Index: "customers",
})
fmt.Println(rsp, err)
}
```
## CreateIndex
Create an index by name
[https://m3o.com/search/api#CreateIndex](https://m3o.com/search/api#CreateIndex)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/search"
)
// Create an index by name
func CreateAnIndex() {
searchService := search.NewSearchService(os.Getenv("M3O_API_TOKEN"))
rsp, err := searchService.CreateIndex(&search.CreateIndexRequest{
Index: "customers",
})
fmt.Println(rsp, err)
}
```
## DeleteIndex
Delete an index by name
[https://m3o.com/search/api#DeleteIndex](https://m3o.com/search/api#DeleteIndex)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/search"
)
// Delete an index by name
func DeleteAnIndex() {
searchService := search.NewSearchService(os.Getenv("M3O_API_TOKEN"))
rsp, err := searchService.DeleteIndex(&search.DeleteIndexRequest{
Index: "customers",
})
fmt.Println(rsp, err)
}
```
## Index ## Index
Index a document i.e. insert a document to search for. Index a document i.e. insert a document to search for.
@@ -127,88 +212,3 @@ Query: "name == 'John' OR name == 'Jane'",
} }
``` ```
## Delete
Delete a document given its ID
[https://m3o.com/search/api#Delete](https://m3o.com/search/api#Delete)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/search"
)
// Delete a document given its ID
func DeleteAdocument() {
searchService := search.NewSearchService(os.Getenv("M3O_API_TOKEN"))
rsp, err := searchService.Delete(&search.DeleteRequest{
Id: "1234",
Index: "customers",
})
fmt.Println(rsp, err)
}
```
## CreateIndex
Create an index by name
[https://m3o.com/search/api#CreateIndex](https://m3o.com/search/api#CreateIndex)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/search"
)
// Create an index by name
func CreateAnIndex() {
searchService := search.NewSearchService(os.Getenv("M3O_API_TOKEN"))
rsp, err := searchService.CreateIndex(&search.CreateIndexRequest{
Index: "customers",
})
fmt.Println(rsp, err)
}
```
## DeleteIndex
Delete an index by name
[https://m3o.com/search/api#DeleteIndex](https://m3o.com/search/api#DeleteIndex)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/search"
)
// Delete an index by name
func DeleteAnIndex() {
searchService := search.NewSearchService(os.Getenv("M3O_API_TOKEN"))
rsp, err := searchService.DeleteIndex(&search.DeleteIndexRequest{
Index: "customers",
})
fmt.Println(rsp, err)
}
```

View File

@@ -13,9 +13,9 @@ func main() {
rsp, err := searchService.Index(&search.IndexRequest{ rsp, err := searchService.Index(&search.IndexRequest{
Document: &search.Document{ Document: &search.Document{
Contents: map[string]interface{}{ Contents: map[string]interface{}{
"name": "John Doe",
"age": 37, "age": 37,
"starsign": "Leo", "starsign": "Leo",
"name": "John Doe",
}, },
Id: "1234", Id: "1234",
}, },

View File

@@ -4,6 +4,92 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/space/api](htt
Endpoints: Endpoints:
## Update
Update an object. If an object with this name does not exist, creates a new one.
[https://m3o.com/space/api#Update](https://m3o.com/space/api#Update)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/space"
)
// Update an object. If an object with this name does not exist, creates a new one.
func UpdateAnObject() {
spaceService := space.NewSpaceService(os.Getenv("M3O_API_TOKEN"))
rsp, err := spaceService.Update(&space.UpdateRequest{
Name: "images/file.jpg",
Object: "<file bytes>",
Visibility: "public",
})
fmt.Println(rsp, err)
}
```
## Delete
Delete an object from space
[https://m3o.com/space/api#Delete](https://m3o.com/space/api#Delete)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/space"
)
// Delete an object from space
func DeleteAnObject() {
spaceService := space.NewSpaceService(os.Getenv("M3O_API_TOKEN"))
rsp, err := spaceService.Delete(&space.DeleteRequest{
Name: "images/file.jpg",
})
fmt.Println(rsp, err)
}
```
## List
List the objects in space
[https://m3o.com/space/api#List](https://m3o.com/space/api#List)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/space"
)
// List the objects in space
func ListObjectsWithPrefix() {
spaceService := space.NewSpaceService(os.Getenv("M3O_API_TOKEN"))
rsp, err := spaceService.List(&space.ListRequest{
Prefix: "images/",
})
fmt.Println(rsp, err)
}
```
## Head ## Head
Retrieve meta information about an object Retrieve meta information about an object
@@ -146,89 +232,3 @@ Visibility: "public",
} }
``` ```
## Update
Update an object. If an object with this name does not exist, creates a new one.
[https://m3o.com/space/api#Update](https://m3o.com/space/api#Update)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/space"
)
// Update an object. If an object with this name does not exist, creates a new one.
func UpdateAnObject() {
spaceService := space.NewSpaceService(os.Getenv("M3O_API_TOKEN"))
rsp, err := spaceService.Update(&space.UpdateRequest{
Name: "images/file.jpg",
Object: "<file bytes>",
Visibility: "public",
})
fmt.Println(rsp, err)
}
```
## Delete
Delete an object from space
[https://m3o.com/space/api#Delete](https://m3o.com/space/api#Delete)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/space"
)
// Delete an object from space
func DeleteAnObject() {
spaceService := space.NewSpaceService(os.Getenv("M3O_API_TOKEN"))
rsp, err := spaceService.Delete(&space.DeleteRequest{
Name: "images/file.jpg",
})
fmt.Println(rsp, err)
}
```
## List
List the objects in space
[https://m3o.com/space/api#List](https://m3o.com/space/api#List)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/space"
)
// List the objects in space
func ListObjectsWithPrefix() {
spaceService := space.NewSpaceService(os.Getenv("M3O_API_TOKEN"))
rsp, err := spaceService.List(&space.ListRequest{
Prefix: "images/",
})
fmt.Println(rsp, err)
}
```

View File

@@ -4,65 +4,6 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/sunnah/api](ht
Endpoints: Endpoints:
## Collections
Get a list of available collections. A collection is
a compilation of hadiths collected and written by an author.
[https://m3o.com/sunnah/api#Collections](https://m3o.com/sunnah/api#Collections)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/sunnah"
)
// Get a list of available collections. A collection is
// a compilation of hadiths collected and written by an author.
func ListAvailableCollections() {
sunnahService := sunnah.NewSunnahService(os.Getenv("M3O_API_TOKEN"))
rsp, err := sunnahService.Collections(&sunnah.CollectionsRequest{
})
fmt.Println(rsp, err)
}
```
## Books
Get a list of books from within a collection. A book can contain many chapters
each with its own hadiths.
[https://m3o.com/sunnah/api#Books](https://m3o.com/sunnah/api#Books)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/sunnah"
)
// Get a list of books from within a collection. A book can contain many chapters
// each with its own hadiths.
func GetTheBooksWithinAcollection() {
sunnahService := sunnah.NewSunnahService(os.Getenv("M3O_API_TOKEN"))
rsp, err := sunnahService.Books(&sunnah.BooksRequest{
Collection: "bukhari",
})
fmt.Println(rsp, err)
}
```
## Chapters ## Chapters
Get all the chapters of a given book within a collection. Get all the chapters of a given book within a collection.
@@ -123,3 +64,62 @@ Collection: "bukhari",
} }
``` ```
## Collections
Get a list of available collections. A collection is
a compilation of hadiths collected and written by an author.
[https://m3o.com/sunnah/api#Collections](https://m3o.com/sunnah/api#Collections)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/sunnah"
)
// Get a list of available collections. A collection is
// a compilation of hadiths collected and written by an author.
func ListAvailableCollections() {
sunnahService := sunnah.NewSunnahService(os.Getenv("M3O_API_TOKEN"))
rsp, err := sunnahService.Collections(&sunnah.CollectionsRequest{
})
fmt.Println(rsp, err)
}
```
## Books
Get a list of books from within a collection. A book can contain many chapters
each with its own hadiths.
[https://m3o.com/sunnah/api#Books](https://m3o.com/sunnah/api#Books)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/sunnah"
)
// Get a list of books from within a collection. A book can contain many chapters
// each with its own hadiths.
func GetTheBooksWithinAcollection() {
sunnahService := sunnah.NewSunnahService(os.Getenv("M3O_API_TOKEN"))
rsp, err := sunnahService.Books(&sunnah.BooksRequest{
Collection: "bukhari",
})
fmt.Println(rsp, err)
}
```

View File

@@ -4,6 +4,34 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/twitter/api](h
Endpoints: Endpoints:
## User
Get a user's twitter profile
[https://m3o.com/twitter/api#User](https://m3o.com/twitter/api#User)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/twitter"
)
// Get a user's twitter profile
func GetAusersTwitterProfile() {
twitterService := twitter.NewTwitterService(os.Getenv("M3O_API_TOKEN"))
rsp, err := twitterService.User(&twitter.UserRequest{
Username: "crufter",
})
fmt.Println(rsp, err)
}
```
## Timeline ## Timeline
Get the timeline for a given user Get the timeline for a given user
@@ -88,31 +116,3 @@ func GetTheCurrentGlobalTrendingTopics() {
} }
``` ```
## User
Get a user's twitter profile
[https://m3o.com/twitter/api#User](https://m3o.com/twitter/api#User)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/twitter"
)
// Get a user's twitter profile
func GetAusersTwitterProfile() {
twitterService := twitter.NewTwitterService(os.Getenv("M3O_API_TOKEN"))
rsp, err := twitterService.User(&twitter.UserRequest{
Username: "crufter",
})
fmt.Println(rsp, err)
}
```

View File

@@ -4,125 +4,6 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/user/api](http
Endpoints: Endpoints:
## ReadSession
Read a session by the session id. In the event it has expired or is not found and error is returned.
[https://m3o.com/user/api#ReadSession](https://m3o.com/user/api#ReadSession)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/user"
)
// Read a session by the session id. In the event it has expired or is not found and error is returned.
func ReadAsessionByTheSessionId() {
userService := user.NewUserService(os.Getenv("M3O_API_TOKEN"))
rsp, err := userService.ReadSession(&user.ReadSessionRequest{
SessionId: "df91a612-5b24-4634-99ff-240220ab8f55",
})
fmt.Println(rsp, err)
}
```
## List
List all users. Returns a paged list of results
[https://m3o.com/user/api#List](https://m3o.com/user/api#List)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/user"
)
// List all users. Returns a paged list of results
func ListAllUsers() {
userService := user.NewUserService(os.Getenv("M3O_API_TOKEN"))
rsp, err := userService.List(&user.ListRequest{
Limit: 100,
Offset: 0,
})
fmt.Println(rsp, err)
}
```
## ResetPassword
Reset password with the code sent by the "SendPasswordResetEmail" endoint.
[https://m3o.com/user/api#ResetPassword](https://m3o.com/user/api#ResetPassword)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/user"
)
// Reset password with the code sent by the "SendPasswordResetEmail" endoint.
func ResetPassword() {
userService := user.NewUserService(os.Getenv("M3O_API_TOKEN"))
rsp, err := userService.ResetPassword(&user.ResetPasswordRequest{
Code: "012345",
ConfirmPassword: "NewPassword1",
Email: "joe@example.com",
NewPassword: "NewPassword1",
})
fmt.Println(rsp, err)
}
```
## Login
Login using username or email. The response will return a new session for successful login,
401 in the case of login failure and 500 for any other error
[https://m3o.com/user/api#Login](https://m3o.com/user/api#Login)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/user"
)
// Login using username or email. The response will return a new session for successful login,
// 401 in the case of login failure and 500 for any other error
func LogAuserIn() {
userService := user.NewUserService(os.Getenv("M3O_API_TOKEN"))
rsp, err := userService.Login(&user.LoginRequest{
Email: "joe@example.com",
Password: "Password1",
})
fmt.Println(rsp, err)
}
```
## Delete ## Delete
Delete an account by id Delete an account by id
@@ -151,12 +32,12 @@ func DeleteUserAccount() {
} }
``` ```
## Create ## SendMagicLink
Create a new user account. The email address and username for the account must be unique. Login using email only - Passwordless
[https://m3o.com/user/api#Create](https://m3o.com/user/api#Create) [https://m3o.com/user/api#SendMagicLink](https://m3o.com/user/api#SendMagicLink)
```go ```go
package example package example
@@ -168,14 +49,65 @@ import(
"go.m3o.com/user" "go.m3o.com/user"
) )
// Create a new user account. The email address and username for the account must be unique. // Login using email only - Passwordless
func CreateAnAccount() { func SendAmagicLink() {
userService := user.NewUserService(os.Getenv("M3O_API_TOKEN")) userService := user.NewUserService(os.Getenv("M3O_API_TOKEN"))
rsp, err := userService.Create(&user.CreateRequest{ rsp, err := userService.SendMagicLink(&user.SendMagicLinkRequest{
Address: "www.example.com",
Email: "joe@example.com",
Endpoint: "verifytoken",
FromName: "Awesome Dot Com",
Subject: "MagicLink to access your account",
TextContent: `Hi there,
Click here to access your account $micro_verification_link`,
})
fmt.Println(rsp, err)
}
```
## SendVerificationEmail
Send a verification email to a user.
Email "from" will be 'noreply@email.m3ocontent.com'.
The verification link will be injected in the email
as a template variable, $micro_verification_link e.g
'Welcome to M3O! Use the link below to verify your email: $micro_verification_link'
The variable will be replaced with a url similar to:
'https://user.m3o.com/user/verify?token=a-verification-token&redirectUrl=your-redir-url'
[https://m3o.com/user/api#SendVerificationEmail](https://m3o.com/user/api#SendVerificationEmail)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/user"
)
// Send a verification email to a user.
// Email "from" will be 'noreply@email.m3ocontent.com'.
// The verification link will be injected in the email
// as a template variable, $micro_verification_link e.g
// 'Welcome to M3O! Use the link below to verify your email: $micro_verification_link'
// The variable will be replaced with a url similar to:
// 'https://user.m3o.com/user/verify?token=a-verification-token&redirectUrl=your-redir-url'
func SendVerificationEmail() {
userService := user.NewUserService(os.Getenv("M3O_API_TOKEN"))
rsp, err := userService.SendVerificationEmail(&user.SendVerificationEmailRequest{
Email: "joe@example.com", Email: "joe@example.com",
Id: "user-1", FailureRedirectUrl: "https://m3o.com/verification-failed",
Password: "Password1", FromName: "Awesome Dot Com",
Username: "joe", RedirectUrl: "https://m3o.com",
Subject: "Email verification",
TextContent: `Hi there,
Please verify your email by clicking this link: $micro_verification_link`,
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
@@ -295,40 +227,6 @@ UserId: "user-1",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
}
```
## VerifyToken
Check whether the token attached to MagicLink is valid or not.
Ideally, you need to call this endpoint from your http request
handler that handles the endpoint which is specified in the
SendMagicLink request.
[https://m3o.com/user/api#VerifyToken](https://m3o.com/user/api#VerifyToken)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/user"
)
// Check whether the token attached to MagicLink is valid or not.
// Ideally, you need to call this endpoint from your http request
// handler that handles the endpoint which is specified in the
// SendMagicLink request.
func VerifyAtoken() {
userService := user.NewUserService(os.Getenv("M3O_API_TOKEN"))
rsp, err := userService.VerifyToken(&user.VerifyTokenRequest{
Token: "EdsUiidouJJJLldjlloofUiorkojflsWWdld",
})
fmt.Println(rsp, err)
} }
``` ```
## SendPasswordResetEmail ## SendPasswordResetEmail
@@ -386,8 +284,191 @@ import(
func VerifyEmail() { func VerifyEmail() {
userService := user.NewUserService(os.Getenv("M3O_API_TOKEN")) userService := user.NewUserService(os.Getenv("M3O_API_TOKEN"))
rsp, err := userService.VerifyEmail(&user.VerifyEmailRequest{ rsp, err := userService.VerifyEmail(&user.VerifyEmailRequest{
Token: "012345",
})
fmt.Println(rsp, err)
}
```
## ReadSession
Read a session by the session id. In the event it has expired or is not found and error is returned.
[https://m3o.com/user/api#ReadSession](https://m3o.com/user/api#ReadSession)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/user"
)
// Read a session by the session id. In the event it has expired or is not found and error is returned.
func ReadAsessionByTheSessionId() {
userService := user.NewUserService(os.Getenv("M3O_API_TOKEN"))
rsp, err := userService.ReadSession(&user.ReadSessionRequest{
SessionId: "df91a612-5b24-4634-99ff-240220ab8f55",
})
fmt.Println(rsp, err)
}
```
## List
List all users. Returns a paged list of results
[https://m3o.com/user/api#List](https://m3o.com/user/api#List)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/user"
)
// List all users. Returns a paged list of results
func ListAllUsers() {
userService := user.NewUserService(os.Getenv("M3O_API_TOKEN"))
rsp, err := userService.List(&user.ListRequest{
Limit: 100,
Offset: 0,
})
fmt.Println(rsp, err)
}
```
## VerifyToken
Check whether the token attached to MagicLink is valid or not.
Ideally, you need to call this endpoint from your http request
handler that handles the endpoint which is specified in the
SendMagicLink request.
[https://m3o.com/user/api#VerifyToken](https://m3o.com/user/api#VerifyToken)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/user"
)
// Check whether the token attached to MagicLink is valid or not.
// Ideally, you need to call this endpoint from your http request
// handler that handles the endpoint which is specified in the
// SendMagicLink request.
func VerifyAtoken() {
userService := user.NewUserService(os.Getenv("M3O_API_TOKEN"))
rsp, err := userService.VerifyToken(&user.VerifyTokenRequest{
Token: "EdsUiidouJJJLldjlloofUiorkojflsWWdld",
})
fmt.Println(rsp, err)
}
```
## Create
Create a new user account. The email address and username for the account must be unique.
[https://m3o.com/user/api#Create](https://m3o.com/user/api#Create)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/user"
)
// Create a new user account. The email address and username for the account must be unique.
func CreateAnAccount() {
userService := user.NewUserService(os.Getenv("M3O_API_TOKEN"))
rsp, err := userService.Create(&user.CreateRequest{
Email: "joe@example.com", Email: "joe@example.com",
Token: "012345", Id: "user-1",
Password: "Password1",
Username: "joe",
})
fmt.Println(rsp, err)
}
```
## ResetPassword
Reset password with the code sent by the "SendPasswordResetEmail" endoint.
[https://m3o.com/user/api#ResetPassword](https://m3o.com/user/api#ResetPassword)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/user"
)
// Reset password with the code sent by the "SendPasswordResetEmail" endoint.
func ResetPassword() {
userService := user.NewUserService(os.Getenv("M3O_API_TOKEN"))
rsp, err := userService.ResetPassword(&user.ResetPasswordRequest{
Code: "012345",
ConfirmPassword: "NewPassword1",
Email: "joe@example.com",
NewPassword: "NewPassword1",
})
fmt.Println(rsp, err)
}
```
## Login
Login using username or email. The response will return a new session for successful login,
401 in the case of login failure and 500 for any other error
[https://m3o.com/user/api#Login](https://m3o.com/user/api#Login)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/user"
)
// Login using username or email. The response will return a new session for successful login,
// 401 in the case of login failure and 500 for any other error
func LogAuserIn() {
userService := user.NewUserService(os.Getenv("M3O_API_TOKEN"))
rsp, err := userService.Login(&user.LoginRequest{
Email: "joe@example.com",
Password: "Password1",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
@@ -420,41 +501,6 @@ func LogAuserOut() {
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)
}
```
## SendMagicLink
Login using email only - Passwordless
[https://m3o.com/user/api#SendMagicLink](https://m3o.com/user/api#SendMagicLink)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/user"
)
// Login using email only - Passwordless
func SendAmagicLink() {
userService := user.NewUserService(os.Getenv("M3O_API_TOKEN"))
rsp, err := userService.SendMagicLink(&user.SendMagicLinkRequest{
Address: "www.example.com",
Email: "joe@example.com",
Endpoint: "verifytoken",
FromName: "Awesome Dot Com",
Subject: "MagicLink to access your account",
TextContent: `Hi there,
Click here to access your account $micro_verification_link`,
})
fmt.Println(rsp, err)
} }
``` ```
## Update ## Update
@@ -486,50 +532,3 @@ Id: "user-1",
} }
``` ```
## SendVerificationEmail
Send a verification email
to the user being signed up. Email from will be from 'noreply@email.m3ocontent.com',
but you can provide the title and contents.
The verification link will be injected in to the email as a template variable, $micro_verification_link.
Example: 'Hi there, welcome onboard! Use the link below to verify your email: $micro_verification_link'
The variable will be replaced with an actual url that will look similar to this:
'https://user.m3o.com/user/verify?token=a-verification-token&redirectUrl=your-redir-url'
[https://m3o.com/user/api#SendVerificationEmail](https://m3o.com/user/api#SendVerificationEmail)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/user"
)
// Send a verification email
// to the user being signed up. Email from will be from 'noreply@email.m3ocontent.com',
// but you can provide the title and contents.
// The verification link will be injected in to the email as a template variable, $micro_verification_link.
// Example: 'Hi there, welcome onboard! Use the link below to verify your email: $micro_verification_link'
// The variable will be replaced with an actual url that will look similar to this:
// 'https://user.m3o.com/user/verify?token=a-verification-token&redirectUrl=your-redir-url'
func SendVerificationEmail() {
userService := user.NewUserService(os.Getenv("M3O_API_TOKEN"))
rsp, err := userService.SendVerificationEmail(&user.SendVerificationEmailRequest{
Email: "joe@example.com",
FailureRedirectUrl: "https://m3o.com/verification-failed",
FromName: "Awesome Dot Com",
RedirectUrl: "https://m3o.com",
Subject: "Email verification",
TextContent: `Hi there,
Please verify your email by clicking this link: $micro_verification_link`,
})
fmt.Println(rsp, err)
}
```

View File

@@ -7,12 +7,12 @@ import (
"go.m3o.com/user" "go.m3o.com/user"
) )
// Send a verification email // Send a verification email to a user.
// to the user being signed up. Email from will be from 'noreply@email.m3ocontent.com', // Email "from" will be 'noreply@email.m3ocontent.com'.
// but you can provide the title and contents. // The verification link will be injected in the email
// The verification link will be injected in to the email as a template variable, $micro_verification_link. // as a template variable, $micro_verification_link e.g
// Example: 'Hi there, welcome onboard! Use the link below to verify your email: $micro_verification_link' // 'Welcome to M3O! Use the link below to verify your email: $micro_verification_link'
// The variable will be replaced with an actual url that will look similar to this: // The variable will be replaced with a url similar to:
// 'https://user.m3o.com/user/verify?token=a-verification-token&redirectUrl=your-redir-url' // 'https://user.m3o.com/user/verify?token=a-verification-token&redirectUrl=your-redir-url'
func main() { func main() {
userService := user.NewUserService(os.Getenv("M3O_API_TOKEN")) userService := user.NewUserService(os.Getenv("M3O_API_TOKEN"))

View File

@@ -11,7 +11,6 @@ import (
func main() { func main() {
userService := user.NewUserService(os.Getenv("M3O_API_TOKEN")) userService := user.NewUserService(os.Getenv("M3O_API_TOKEN"))
rsp, err := userService.VerifyEmail(&user.VerifyEmailRequest{ rsp, err := userService.VerifyEmail(&user.VerifyEmailRequest{
Email: "joe@example.com",
Token: "012345", Token: "012345",
}) })
fmt.Println(rsp, err) fmt.Println(rsp, err)

View File

@@ -4,34 +4,6 @@ An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/youtube/api](h
Endpoints: Endpoints:
## Embed
Embed a YouTube video
[https://m3o.com/youtube/api#Embed](https://m3o.com/youtube/api#Embed)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/youtube"
)
// Embed a YouTube video
func EmbedAyoutubeVideo() {
youtubeService := youtube.NewYoutubeService(os.Getenv("M3O_API_TOKEN"))
rsp, err := youtubeService.Embed(&youtube.EmbedRequest{
Url: "https://www.youtube.com/watch?v=GWRWZu7XsJ0",
})
fmt.Println(rsp, err)
}
```
## Search ## Search
Search for videos on YouTube Search for videos on YouTube
@@ -60,3 +32,31 @@ func SearchForVideos() {
} }
``` ```
## Embed
Embed a YouTube video
[https://m3o.com/youtube/api#Embed](https://m3o.com/youtube/api#Embed)
```go
package example
import(
"fmt"
"os"
"go.m3o.com/youtube"
)
// Embed a YouTube video
func EmbedAyoutubeVideo() {
youtubeService := youtube.NewYoutubeService(os.Getenv("M3O_API_TOKEN"))
rsp, err := youtubeService.Embed(&youtube.EmbedRequest{
Url: "https://www.youtube.com/watch?v=GWRWZu7XsJ0",
})
fmt.Println(rsp, err)
}
```

View File

@@ -108,8 +108,13 @@ type Record struct {
} }
type SaveRequest struct { type SaveRequest struct {
// The file to save
File *Record `json:"file"` File *Record `json:"file"`
// Make the file public: true or false
Public bool `json:"public"`
} }
type SaveResponse struct { type SaveResponse struct {
// The permalink for the file if made public
Url string `json:"url"`
} }

9
m3o.go
View File

@@ -28,12 +28,15 @@ import (
"go.m3o.com/ip" "go.m3o.com/ip"
"go.m3o.com/joke" "go.m3o.com/joke"
"go.m3o.com/location" "go.m3o.com/location"
"go.m3o.com/minecraft"
"go.m3o.com/movie" "go.m3o.com/movie"
"go.m3o.com/mq" "go.m3o.com/mq"
"go.m3o.com/news" "go.m3o.com/news"
"go.m3o.com/nft" "go.m3o.com/nft"
"go.m3o.com/notes" "go.m3o.com/notes"
"go.m3o.com/otp" "go.m3o.com/otp"
"go.m3o.com/ping"
"go.m3o.com/place"
"go.m3o.com/postcode" "go.m3o.com/postcode"
"go.m3o.com/prayer" "go.m3o.com/prayer"
"go.m3o.com/qr" "go.m3o.com/qr"
@@ -90,12 +93,15 @@ func NewClient(token string) *Client {
IpService: ip.NewIpService(token), IpService: ip.NewIpService(token),
JokeService: joke.NewJokeService(token), JokeService: joke.NewJokeService(token),
LocationService: location.NewLocationService(token), LocationService: location.NewLocationService(token),
MinecraftService: minecraft.NewMinecraftService(token),
MovieService: movie.NewMovieService(token), MovieService: movie.NewMovieService(token),
MqService: mq.NewMqService(token), MqService: mq.NewMqService(token),
NewsService: news.NewNewsService(token), NewsService: news.NewNewsService(token),
NftService: nft.NewNftService(token), NftService: nft.NewNftService(token),
NotesService: notes.NewNotesService(token), NotesService: notes.NewNotesService(token),
OtpService: otp.NewOtpService(token), OtpService: otp.NewOtpService(token),
PingService: ping.NewPingService(token),
PlaceService: place.NewPlaceService(token),
PostcodeService: postcode.NewPostcodeService(token), PostcodeService: postcode.NewPostcodeService(token),
PrayerService: prayer.NewPrayerService(token), PrayerService: prayer.NewPrayerService(token),
QrService: qr.NewQrService(token), QrService: qr.NewQrService(token),
@@ -152,12 +158,15 @@ type Client struct {
IpService *ip.IpService IpService *ip.IpService
JokeService *joke.JokeService JokeService *joke.JokeService
LocationService *location.LocationService LocationService *location.LocationService
MinecraftService *minecraft.MinecraftService
MovieService *movie.MovieService MovieService *movie.MovieService
MqService *mq.MqService MqService *mq.MqService
NewsService *news.NewsService NewsService *news.NewsService
NftService *nft.NftService NftService *nft.NftService
NotesService *notes.NotesService NotesService *notes.NotesService
OtpService *otp.OtpService OtpService *otp.OtpService
PingService *ping.PingService
PlaceService *place.PlaceService
PostcodeService *postcode.PostcodeService PostcodeService *postcode.PostcodeService
PrayerService *prayer.PrayerService PrayerService *prayer.PrayerService
QrService *qr.QrService QrService *qr.QrService

60
minecraft/minecraft.go Executable file
View File

@@ -0,0 +1,60 @@
package minecraft
import (
"go.m3o.com/client"
)
type Minecraft interface {
Ping(*PingRequest) (*PingResponse, error)
}
func NewMinecraftService(token string) *MinecraftService {
return &MinecraftService{
client: client.NewClient(&client.Options{
Token: token,
}),
}
}
type MinecraftService struct {
client *client.Client
}
// Ping a minecraft server
func (t *MinecraftService) Ping(request *PingRequest) (*PingResponse, error) {
rsp := &PingResponse{}
return rsp, t.client.Call("minecraft", "Ping", request, rsp)
}
type PingRequest struct {
// address of the server
Address string `json:"address"`
}
type PingResponse struct {
// Favicon in base64
Favicon string `json:"favicon"`
// Latency (ms) between us and the server (EU)
Latency int32 `json:"latency"`
// Max players ever
MaxPlayers int32 `json:"max_players"`
// Message of the day
Motd string `json:"motd"`
// Number of players online
Players int32 `json:"players"`
// Protocol number of the server
Protocol int32 `json:"protocol"`
// List of connected players
Sample []PlayerSample `json:"sample"`
// Version of the server
Version string `json:"version"`
}
type PlayerSample struct {
// name of the player
Name string `json:"name"`
// unique id of player
Uuid string `json:"uuid"`
}

87
ping/ping.go Executable file
View File

@@ -0,0 +1,87 @@
package ping
import (
"go.m3o.com/client"
)
type Ping interface {
Ip(*IpRequest) (*IpResponse, error)
Tcp(*TcpRequest) (*TcpResponse, error)
Url(*UrlRequest) (*UrlResponse, error)
}
func NewPingService(token string) *PingService {
return &PingService{
client: client.NewClient(&client.Options{
Token: token,
}),
}
}
type PingService struct {
client *client.Client
}
// Ping an IP address
func (t *PingService) Ip(request *IpRequest) (*IpResponse, error) {
rsp := &IpResponse{}
return rsp, t.client.Call("ping", "Ip", request, rsp)
}
// Ping a TCP port is open
func (t *PingService) Tcp(request *TcpRequest) (*TcpResponse, error) {
rsp := &TcpResponse{}
return rsp, t.client.Call("ping", "Tcp", request, rsp)
}
// Ping a HTTP URL
func (t *PingService) Url(request *UrlRequest) (*UrlResponse, error) {
rsp := &UrlResponse{}
return rsp, t.client.Call("ping", "Url", request, rsp)
}
type IpRequest struct {
// address to ping
Address string `json:"address"`
}
type IpResponse struct {
// average latency e.g 10ms
Latency string `json:"latency"`
// response status
Status string `json:"status"`
}
type TcpRequest struct {
// address to dial
Address string `json:"address"`
// optional data to send
Data string `json:"data"`
}
type TcpResponse struct {
// response data if any
Data string `json:"data"`
// response status
Status string `json:"status"`
}
type UrlRequest struct {
// address to use
Address string `json:"address"`
// method of the call
Method string `json:"method"`
}
type UrlResponse struct {
// the response code
Code int32 `json:"code"`
// the response status
Status string `json:"status"`
}

103
place/place.go Executable file
View File

@@ -0,0 +1,103 @@
package place
import (
"go.m3o.com/client"
)
type Place interface {
Nearby(*NearbyRequest) (*NearbyResponse, error)
Search(*SearchRequest) (*SearchResponse, error)
}
func NewPlaceService(token string) *PlaceService {
return &PlaceService{
client: client.NewClient(&client.Options{
Token: token,
}),
}
}
type PlaceService struct {
client *client.Client
}
// Find places nearby using a location
func (t *PlaceService) Nearby(request *NearbyRequest) (*NearbyResponse, error) {
rsp := &NearbyResponse{}
return rsp, t.client.Call("place", "Nearby", request, rsp)
}
// Search for places by text query
func (t *PlaceService) Search(request *SearchRequest) (*SearchResponse, error) {
rsp := &SearchResponse{}
return rsp, t.client.Call("place", "Search", request, rsp)
}
type AutocompleteRequest struct {
}
type AutocompleteResponse struct {
}
type NearbyRequest struct {
// Keyword to include in the search
Keyword string `json:"keyword"`
// specify the location by lat,lng e.g -33.8670522,-151.1957362
Location string `json:"location"`
// Name of the place to search for
Name string `json:"name"`
// Whether the place is open now
OpenNow bool `json:"open_now"`
// radius in meters within which to search
Radius int32 `json:"radius"`
// Type of place. https://developers.google.com/maps/documentation/places/web-service/supported_types
Type string `json:"type"`
}
type NearbyResponse struct {
Results []Result `json:"results"`
}
type Result struct {
// address of place
Address string `json:"address"`
// url of an icon
IconUrl string `json:"icon_url"`
// lat/lng of place
Location string `json:"location"`
// name of the place
Name string `json:"name"`
// open now
OpenNow bool `json:"open_now"`
// opening hours
OpeningHours string `json:"opening_hours"`
// rating from 1.0 to 5.0
Rating float64 `json:"rating"`
// type of location
Type string `json:"type"`
// feature types
Types []string `json:"types"`
// simplified address
Vicinity string `json:"vicinity"`
}
type SearchRequest struct {
// the location by lat,lng e.g -33.8670522,-151.1957362
Location string `json:"location"`
// Whether the place is open now
OpenNow bool `json:"open_now"`
// the text string on which to search, for example: "restaurant"
Query string `json:"query"`
// radius in meters within which to search
Radius int32 `json:"radius"`
// Type of place. https://developers.google.com/maps/documentation/places/web-service/supported_types
Type string `json:"type"`
}
type SearchResponse struct {
Results []Result `json:"results"`
}

View File

@@ -116,12 +116,12 @@ func (t *UserService) SendPasswordResetEmail(request *SendPasswordResetEmailRequ
} }
// Send a verification email // Send a verification email to a user.
// to the user being signed up. Email from will be from 'noreply@email.m3ocontent.com', // Email "from" will be 'noreply@email.m3ocontent.com'.
// but you can provide the title and contents. // The verification link will be injected in the email
// The verification link will be injected in to the email as a template variable, $micro_verification_link. // as a template variable, $micro_verification_link e.g
// Example: 'Hi there, welcome onboard! Use the link below to verify your email: $micro_verification_link' // 'Welcome to M3O! Use the link below to verify your email: $micro_verification_link'
// The variable will be replaced with an actual url that will look similar to this: // The variable will be replaced with a url similar to:
// 'https://user.m3o.com/user/verify?token=a-verification-token&redirectUrl=your-redir-url' // 'https://user.m3o.com/user/verify?token=a-verification-token&redirectUrl=your-redir-url'
func (t *UserService) SendVerificationEmail(request *SendVerificationEmailRequest) (*SendVerificationEmailResponse, error) { func (t *UserService) SendVerificationEmail(request *SendVerificationEmailRequest) (*SendVerificationEmailResponse, error) {
@@ -316,10 +316,12 @@ type SendPasswordResetEmailResponse struct {
type SendVerificationEmailRequest struct { type SendVerificationEmailRequest struct {
// email address to send the verification code // email address to send the verification code
Email string `json:"email"` Email string `json:"email"`
// The url to redirect to incase of failure
FailureRedirectUrl string `json:"failureRedirectUrl"` FailureRedirectUrl string `json:"failureRedirectUrl"`
// Display name of the sender for the email. Note: the email address will still be 'noreply@email.m3ocontent.com' // Display name of the sender for the email. Note: the email address will still be 'noreply@email.m3ocontent.com'
FromName string `json:"fromName"` FromName string `json:"fromName"`
// The url to redirect to after successful verification
RedirectUrl string `json:"redirectUrl"` RedirectUrl string `json:"redirectUrl"`
// subject of the email // subject of the email
Subject string `json:"subject"` Subject string `json:"subject"`
@@ -371,8 +373,6 @@ type UpdateResponse struct {
} }
type VerifyEmailRequest struct { type VerifyEmailRequest struct {
// the email address to verify
Email string `json:"email"`
// The token from the verification email // The token from the verification email
Token string `json:"token"` Token string `json:"token"`
} }