coopcode

package
v0.0.0-...-72324ba Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 24, 2015 License: Apache-2.0 Imports: 6 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Account

type Account struct {
	// contains filtered or unexported fields
}

仲介コードに付属させるアカウント情報。

func NewAccount

func NewAccount(id, tag string) *Account

func (*Account) Id

func (this *Account) Id() string

ID を返す。

func (*Account) MarshalJSON

func (this *Account) MarshalJSON() (data []byte, err error)
{
    "id": <ID>,
    "tag": <アカウントタグ>
}

func (*Account) Tag

func (this *Account) Tag() string

アカウントタグを返す。

func (*Account) UnmarshalJSON

func (this *Account) UnmarshalJSON(data []byte) error

type Db

type Db interface {
	// 取得。
	Get(id string) (*Element, error)

	// 保存。
	// exp: 保存期限。この期間以降は Get や Replace できなくて良い。
	Save(elem *Element, exp time.Time) error

	// 上書き。
	// savedDate が保存されている要素の更新日時と同じでなければ失敗する。
	Replace(elem *Element, savedDate time.Time) (ok bool, err error)
}

仲介コード情報の格納庫。

func NewMemoryDb

func NewMemoryDb() Db

func NewRedisDb

func NewRedisDb(pool *redis.Pool, tag string) Db

redis による仲介コード情報の格納庫。 本体と別に更新日時を、日時タグと ID をキーにして、Unix 時間 (ナノ秒) で格納。 RFC3339 じゃない理由は同値比較でタイムゾーンを考えたくないから。

type Element

type Element struct {
	// contains filtered or unexported fields
}

仲介コード情報。

func New

func New(id string, exp time.Time, acnt *Account, srcTok string, scop map[string]bool,
	tokExp time.Time, acnts []*Account, frTa, toTa string) *Element

func (*Element) Account

func (this *Element) Account() *Account

アカウントを返す。

func (*Element) Accounts

func (this *Element) Accounts() []*Account

関連アカウントを返す。

func (*Element) Date

func (this *Element) Date() time.Time

更新日時を返す。

func (*Element) Expires

func (this *Element) Expires() time.Time

有効期限を返す。

func (*Element) FromTa

func (this *Element) FromTa() string

連携元 TA の ID を返す。

func (*Element) Id

func (this *Element) Id() string

ID を返す。

func (*Element) MarshalJSON

func (this *Element) MarshalJSON() (data []byte, err error)
{
    "id": <ID>,
    "expires": <有効期限>,
    "user": <主体>,
    "source_token": <元になったアクセストークン>,
    "scope": [
        <発行されるアクセストークンの許可スコープ>,
        ...
    ],
    "token_expires": <発行されるアクセストークンの有効期限>,
    "users": [
        <主体でないアカウント>,
        ...
    ],
    "client_from": <連携元 TA の ID>,
    "client_to": <連携先 TA の ID>,
    "token": <アクセストークン>,
    "date": <更新日時>,
}

func (*Element) Scope

func (this *Element) Scope() map[string]bool

許可スコープを返す。

func (*Element) SetToken

func (this *Element) SetToken(tok string)

発行したアクセストークンを保存する。

func (*Element) SourceToken

func (this *Element) SourceToken() string

元になったアクセストークンを返す。

func (*Element) ToTa

func (this *Element) ToTa() string

連携先 TA の ID を返す。

func (*Element) Token

func (this *Element) Token() string

発行したアクセストークンを返す。

func (*Element) TokenExpires

func (this *Element) TokenExpires() time.Time

発行されるアクセストークンの有効期限を返す。

func (*Element) UnmarshalJSON

func (this *Element) UnmarshalJSON(data []byte) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL