Go 用の Pixela API クライアントです。
https://godoc.org/github.com/ebc-2in2crc/pixela4go
$ go get -u github.com/ebc-2in2crc/pixela4go
package main
import (
"context"
"log"
pixela "github.com/ebc-2in2crc/pixela4go"
)
func main() {
// API 呼び出しが拒否されたときにリトライする場合、リトライ回数を指定します。
// もしリトライしないなら指定する必要はありません。
pixela.RetryCount = 10
client := pixela.New("YOUR_NAME", "YOUR_TOKEN")
// 新しいユーザーを作る
uci := &pixela.UserCreateInput{
AgreeTermsOfService: pixela.Bool(true),
NotMinor: pixela.Bool(true),
ThanksCode: pixela.String("thanks-code"),
}
result, err := client.User().CreateWithContext(context.Background(), uci)
if err != nil {
log.Fatal(err)
}
if result.IsSuccess == false {
log.Fatal(result.Message)
}
// ユーザープロフィールページを更新する
upi := &pixela.UserProfileUpdateInput{
DisplayName: pixela.String("display-name"),
GravatarIconEmail: pixela.String("gravatar-icon-email"),
Title: pixela.String("title"),
Timezone: pixela.String("Asia/Tokyo"),
AboutURL: pixela.String("https://github.com/ebc-2in2crc"),
ContributeURLs: []string{},
PinnedGraphID: pixela.String("pinned-graph-id"),
}
result, err = client.UserProfile().UpdateWithContext(context.Background(), upi)
if err != nil {
log.Fatal(err)
}
if result.IsSuccess == false {
log.Fatal(result.Message)
}
// 新しいグラフを作る
gci := &pixela.GraphCreateInput{
ID: pixela.String("graph-id"),
Name: pixela.String("graph-name"),
Unit: pixela.String("commit"),
Type: pixela.String(pixela.GraphTypeInt),
Color: pixela.String(pixela.GraphColorShibafu),
TimeZone: pixela.String("Asia/Tokyo"),
SelfSufficient: pixela.String(pixela.GraphSelfSufficientIncrement),
IsSecret: pixela.Bool(true),
PublishOptionalData: pixela.Bool(true),
}
result, err = client.Graph().CreateWithContext(context.Background(), gci)
if err != nil {
log.Fatal(err)
}
if result.IsSuccess == false {
log.Fatal(result.Message)
}
// 値をピクセルに記録する
pci := &pixela.PixelCreateInput{
Date: pixela.String("20180915"),
Quantity: pixela.String("5"),
GraphID: pixela.String("graph-id"),
}
result, err = client.Pixel().CreateWithContext(context.Background(), pci)
if err != nil {
log.Fatal(err)
}
if result.IsSuccess == false {
log.Fatal(result.Message)
}
// 新しい webhook を作る
wci := &pixela.WebhookCreateInput{
GraphID: pixela.String("graph-id"),
Type: pixela.String(pixela.WebhookTypeIncrement),
}
webhook, err := client.Webhook().CreateWithContext(context.Background(), wci)
if err != nil {
log.Fatal(err)
}
if webhook.IsSuccess == false {
log.Fatal(webhook.Message)
}
// webhook を呼び出す
wii := &pixela.WebhookInvokeInput{WebhookHash: pixela.String("webhook-hash")}
result, err = client.Webhook().InvokeWithContext(context.Background(), wii)
if err != nil {
log.Fatal(err)
}
if result.IsSuccess == false {
log.Fatal(result.Message)
}
}
- このリポジトリをフォークします
- issue ブランチを作成します (
git checkout -b issue/:id
) - コードを変更します
make test
でテストを実行し, パスすることを確認しますmake fmt
でコードをフォーマットします- 変更をコミットします (
git commit -am 'Add some feature'
) - 新しいプルリクエストを作成します