resources

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Jul 10, 2024 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Balance

type Balance struct {
	Key
	Attributes BalanceAttributes `json:"attributes"`
}

type BalanceAttributes

type BalanceAttributes struct {
	// Amount of points
	Amount int64 `json:"amount"`
	// Unix timestamp of balance creation
	CreatedAt int32 `json:"created_at"`
	// Whether the user was not referred by anybody, but the balance with some events was reserved. It happens when the user fulfills some event before the balance creation.
	IsDisabled *bool `json:"is_disabled,omitempty"`
	// Whether the user has scanned passport. Returned only for the single user.
	IsVerified *bool `json:"is_verified,omitempty"`
	// The level indicates user permissions and features
	Level int `json:"level"`
	// Rank of the user in the full leaderboard. Returned only for the single user.
	Rank *int `json:"rank,omitempty"`
	// Referral codes. Returned only for the single user.
	ReferralCodes *[]ReferralCode `json:"referral_codes,omitempty"`
	// Unix timestamp of the last points accruing
	UpdatedAt int32 `json:"updated_at"`
}

type BalanceListResponse

type BalanceListResponse struct {
	Data     []Balance       `json:"data"`
	Included Included        `json:"included"`
	Links    *Links          `json:"links"`
	Meta     json.RawMessage `json:"meta,omitempty"`
}

func (*BalanceListResponse) GetMeta

func (r *BalanceListResponse) GetMeta(out interface{}) error

func (*BalanceListResponse) PutMeta

func (r *BalanceListResponse) PutMeta(v interface{}) (err error)

type BalanceResponse

type BalanceResponse struct {
	Data     Balance  `json:"data"`
	Included Included `json:"included"`
}

type CreateBalance

type CreateBalance struct {
	Key
	Attributes CreateBalanceAttributes `json:"attributes"`
}

type CreateBalanceAttributes

type CreateBalanceAttributes struct {
	// referrer code from the link
	ReferredBy string `json:"referred_by"`
}

type CreateBalanceListRequest

type CreateBalanceListRequest struct {
	Data     []CreateBalance `json:"data"`
	Included Included        `json:"included"`
	Links    *Links          `json:"links"`
	Meta     json.RawMessage `json:"meta,omitempty"`
}

func (*CreateBalanceListRequest) GetMeta

func (r *CreateBalanceListRequest) GetMeta(out interface{}) error

func (*CreateBalanceListRequest) PutMeta

func (r *CreateBalanceListRequest) PutMeta(v interface{}) (err error)

type CreateBalanceRequest

type CreateBalanceRequest struct {
	Data     CreateBalance `json:"data"`
	Included Included      `json:"included"`
}

type Details

type Details json.RawMessage

func (Details) MarshalJSON

func (d Details) MarshalJSON() ([]byte, error)

MarshalJSON - casts Details to []byte

func (*Details) Scan

func (r *Details) Scan(src interface{}) error

Scan - implements db driver method for auto unmarshal

func (Details) String

func (d Details) String() string

func (*Details) UnmarshalJSON

func (d *Details) UnmarshalJSON(data []byte) error

UnmarshalJSON - casts data to Details

func (Details) Value

func (r Details) Value() (driver.Value, error)

Value - implements db driver method for auto marshal

type Event

type Event struct {
	Key
	Attributes    EventAttributes     `json:"attributes"`
	Relationships *EventRelationships `json:"relationships,omitempty"`
}

type EventAttributes

type EventAttributes struct {
	// Unix timestamp of event creation
	CreatedAt int32 `json:"created_at"`
	// Whether this event may become expired.
	HasExpiration bool      `json:"has_expiration"`
	Meta          EventMeta `json:"meta"`
	// How many points were accrued. Required only for `claimed` events. This is necessary, as the reward might change over time, while the certain balance should be left intact.
	PointsAmount *int64 `json:"points_amount,omitempty"`
	// See `filter[status]` parameter for explanation
	Status string `json:"status"`
	// Unix timestamp of the event status change
	UpdatedAt int32 `json:"updated_at"`
}

type EventClaimingState

type EventClaimingState struct {
	Key
	Attributes EventClaimingStateAttributes `json:"attributes"`
}

type EventClaimingStateAttributes

type EventClaimingStateAttributes struct {
	// If passport scan event was automatically claimed
	Claimed bool `json:"claimed"`
}

type EventClaimingStateListResponse

type EventClaimingStateListResponse struct {
	Data     []EventClaimingState `json:"data"`
	Included Included             `json:"included"`
	Links    *Links               `json:"links"`
	Meta     json.RawMessage      `json:"meta,omitempty"`
}

func (*EventClaimingStateListResponse) GetMeta

func (r *EventClaimingStateListResponse) GetMeta(out interface{}) error

func (*EventClaimingStateListResponse) PutMeta

func (r *EventClaimingStateListResponse) PutMeta(v interface{}) (err error)

type EventClaimingStateResponse

type EventClaimingStateResponse struct {
	Data     EventClaimingState `json:"data"`
	Included Included           `json:"included"`
}

type EventListResponse

type EventListResponse struct {
	Data     []Event         `json:"data"`
	Included Included        `json:"included"`
	Links    *Links          `json:"links"`
	Meta     json.RawMessage `json:"meta,omitempty"`
}

func (*EventListResponse) GetMeta

func (r *EventListResponse) GetMeta(out interface{}) error

func (*EventListResponse) PutMeta

func (r *EventListResponse) PutMeta(v interface{}) (err error)

type EventMeta

type EventMeta struct {
	// Some events require dynamic data, which can be filled into `static` template.
	Dynamic *json.RawMessage `json:"dynamic,omitempty"`
	Static  EventStaticMeta  `json:"static"`
}

type EventRelationships

type EventRelationships struct {
	Balance Relation `json:"balance"`
}

type EventResponse

type EventResponse struct {
	Data     Event    `json:"data"`
	Included Included `json:"included"`
}

type EventStaticMeta

type EventStaticMeta struct {
	// Page where you can fulfill the event
	ActionUrl *string `json:"action_url,omitempty"`
	// Whether the event is automatically claimed on fulfillment, or requires manual claim
	AutoClaim   bool   `json:"auto_claim"`
	Description string `json:"description"`
	// Whether the event is disabled in the system. Disabled events can only be retrieved.
	Disabled bool `json:"disabled"`
	// General event expiration date (UTC RFC3339)
	ExpiresAt *time.Time `json:"expires_at,omitempty"`
	// Event configuration flag:   - active: Events can be opened, fulfilled, claimed   - not_started: Event are not available yet, see `starts_at`   - expired: Event is not available, as it has already expired, see `expires_at`   - disabled: Event is disabled in the system  If event is disabled, it doesn't matter if it's expired or not started: it has `disabled` flag.  Do not specify this field on creation: this structure is reused for request body too.
	Flag string `json:"flag"`
	// Event frequency, which means how often you can fulfill certain task and claim the reward.
	Frequency string `json:"frequency"`
	Logo *string `json:"logo,omitempty"`
	// Unique event code name
	Name string `json:"name"`
	// Base64-encoded QR code. Must match the code provided in event type.
	QrCodeValue *string `json:"qr_code_value,omitempty"`
	// Reward amount in points
	Reward           int64  `json:"reward"`
	ShortDescription string `json:"short_description"`
	// General event starting date (UTC RFC3339)
	StartsAt *time.Time `json:"starts_at,omitempty"`
	Title    string     `json:"title"`
}

Primary event metadata in plain JSON. This is a template to be filled by `dynamic` when it's present. This structure is also reused as request body to event type creation and update.

type EventType

type EventType struct {
	Key
	Attributes EventStaticMeta `json:"attributes"`
}

type EventTypeListResponse

type EventTypeListResponse struct {
	Data     []EventType     `json:"data"`
	Included Included        `json:"included"`
	Links    *Links          `json:"links"`
	Meta     json.RawMessage `json:"meta,omitempty"`
}

func (*EventTypeListResponse) GetMeta

func (r *EventTypeListResponse) GetMeta(out interface{}) error

func (*EventTypeListResponse) PutMeta

func (r *EventTypeListResponse) PutMeta(v interface{}) (err error)

type EventTypeResponse

type EventTypeResponse struct {
	Data     EventType `json:"data"`
	Included Included  `json:"included"`
}

type Flag

type Flag struct {
	Name  string `json:"name"`
	Value int32  `json:"value"`
}

type Flagger

type Flagger interface {
	IsFlag() bool
}

type Flags

type Flags struct {
	Mask   int32  `json:"mask"`
	Values []Flag `json:"flags"`
}

func FlagsFromMask

func FlagsFromMask(mask int32, allFlags map[int32]string) Flags

type FulfillQrEvent

type FulfillQrEvent struct {
	Key
	Attributes FulfillQrEventAttributes `json:"attributes"`
}

type FulfillQrEventAttributes

type FulfillQrEventAttributes struct {
	// Base64-encoded QR code
	QrCode string `json:"qr_code"`
}

type FulfillQrEventListRequest

type FulfillQrEventListRequest struct {
	Data     []FulfillQrEvent `json:"data"`
	Included Included         `json:"included"`
	Links    *Links           `json:"links"`
	Meta     json.RawMessage  `json:"meta,omitempty"`
}

func (*FulfillQrEventListRequest) GetMeta

func (r *FulfillQrEventListRequest) GetMeta(out interface{}) error

func (*FulfillQrEventListRequest) PutMeta

func (r *FulfillQrEventListRequest) PutMeta(v interface{}) (err error)

type FulfillQrEventRequest

type FulfillQrEventRequest struct {
	Data     FulfillQrEvent `json:"data"`
	Included Included       `json:"included"`
}

type Included

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

Included - an array of Resource objects that are related to the primary data and/or each other (“included resources”).

func (*Included) Add

func (c *Included) Add(includes ...Resource)

Add - adds new include into collection. If one already present - skips it

func (Included) MarshalJSON

func (c Included) MarshalJSON() ([]byte, error)

MarshalJSON - marshals include collection as array of json objects

func (*Included) MustBalance

func (c *Included) MustBalance(key Key) *Balance

MustBalance - returns Balance from include collection. if entry with specified key does not exist - returns nil if entry with specified key exists but type or ID mismatches - panics

func (*Included) MustCreateBalance

func (c *Included) MustCreateBalance(key Key) *CreateBalance

MustCreateBalance - returns CreateBalance from include collection. if entry with specified key does not exist - returns nil if entry with specified key exists but type or ID mismatches - panics

func (*Included) MustEvent

func (c *Included) MustEvent(key Key) *Event

MustEvent - returns Event from include collection. if entry with specified key does not exist - returns nil if entry with specified key exists but type or ID mismatches - panics

func (*Included) MustEventClaimingState

func (c *Included) MustEventClaimingState(key Key) *EventClaimingState

MustEventClaimingState - returns EventClaimingState from include collection. if entry with specified key does not exist - returns nil if entry with specified key exists but type or ID mismatches - panics

func (*Included) MustEventType

func (c *Included) MustEventType(key Key) *EventType

MustEventType - returns EventType from include collection. if entry with specified key does not exist - returns nil if entry with specified key exists but type or ID mismatches - panics

func (*Included) MustFulfillQrEvent

func (c *Included) MustFulfillQrEvent(key Key) *FulfillQrEvent

MustFulfillQrEvent - returns FulfillQrEvent from include collection. if entry with specified key does not exist - returns nil if entry with specified key exists but type or ID mismatches - panics

func (*Included) MustVerifyPassport

func (c *Included) MustVerifyPassport(key Key) *VerifyPassport

MustVerifyPassport - returns VerifyPassport from include collection. if entry with specified key does not exist - returns nil if entry with specified key exists but type or ID mismatches - panics

func (*Included) UnmarshalJSON

func (c *Included) UnmarshalJSON(data []byte) error

UmarshalJSON - unmarshal array of json objects into include collection

type Key

type Key struct {
	ID   string       `json:"id"`
	Type ResourceType `json:"type"`
}

func NewKeyInt64

func NewKeyInt64(id int64, resourceType ResourceType) Key

func (Key) AsRelation

func (r Key) AsRelation() *Relation

func (*Key) GetKey

func (r *Key) GetKey() Key

func (Key) GetKeyP

func (r Key) GetKeyP() *Key
type Links struct {
	First string `json:"first,omitempty"`
	Last  string `json:"last,omitempty"`
	Next  string `json:"next,omitempty"`
	Prev  string `json:"prev,omitempty"`
	Self  string `json:"self,omitempty"`
}

type ReferralCode

type ReferralCode struct {
	// Referral code itself, unique identifier
	Id string `json:"id"`
	// Status of the code, belonging to this user (referrer):   1. infinity: the code have unlimited usage count and user can get points for each user who scanned passport   2. active: the code is not used yet by another user (referee)   3. awaiting: the code is used by referee who has scanned passport, but the referrer hasn't yet   4. rewarded: the code is used, both referee and referrer have scanned passports   5. consumed: the code is used by referee who has not scanned passport yet  The list is sorted by priority. E.g. if the referee has scanned passport, but referrer not, the status would be `consumed`. If both not scann passport yet status would be `awaiting`.
	Status string `json:"status"`
}

type Relation

type Relation struct {
	Data  *Key   `json:"data,omitempty"`
	Links *Links `json:"links,omitempty"`
}

type RelationCollection

type RelationCollection struct {
	Data  []Key  `json:"data"`
	Links *Links `json:"links,omitempty"`
}

func (RelationCollection) MarshalJSON

func (r RelationCollection) MarshalJSON() ([]byte, error)

type Resource

type Resource interface {
	//GetKey - returns key of the Resource
	GetKey() Key
}

type ResourceType

type ResourceType string
const (
	BALANCE              ResourceType = "balance"
	CLAIM_EVENT          ResourceType = "claim_event"
	CREATE_BALANCE       ResourceType = "create_balance"
	EVENT_CLAIMING_STATE ResourceType = "event_claiming_state"
	EVENT                ResourceType = "event"
	EVENT_TYPE           ResourceType = "event_type"
	FULFILL_QR_EVENT     ResourceType = "fulfill_qr_event"
	VERIFY_PASSPORT      ResourceType = "verify_passport"
)

List of ResourceType

type VerifyPassport

type VerifyPassport struct {
	Key
	Attributes VerifyPassportAttributes `json:"attributes"`
}

type VerifyPassportAttributes

type VerifyPassportAttributes struct {
	// Unique identifier of the passport.
	AnonymousId string `json:"anonymous_id"`
	// Query ZK passport verification proof. Required for endpoint `/v2/balances/{nullifier}/verifypassport`.
	Proof *types.ZKProof `json:"proof,omitempty"`
}

type VerifyPassportListRequest

type VerifyPassportListRequest struct {
	Data     []VerifyPassport `json:"data"`
	Included Included         `json:"included"`
	Links    *Links           `json:"links"`
	Meta     json.RawMessage  `json:"meta,omitempty"`
}

func (*VerifyPassportListRequest) GetMeta

func (r *VerifyPassportListRequest) GetMeta(out interface{}) error

func (*VerifyPassportListRequest) PutMeta

func (r *VerifyPassportListRequest) PutMeta(v interface{}) (err error)

type VerifyPassportRequest

type VerifyPassportRequest struct {
	Data     VerifyPassport `json:"data"`
	Included Included       `json:"included"`
}

Jump to

Keyboard shortcuts

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