Client for the pixeldrain API. Used by pixeldrain itself for tranferring data between the web UI and API server. And for rendering JSON responses
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.7 KiB

package pixelapi
import (
"net/url"
"time"
"github.com/gocql/gocql"
)
// Subscription contains information about a user's subscription. When it
// started, when it ends, and what type of subscription it is
type Subscription struct {
ID gocql.UUID `json:"id"`
Used bool `json:"used"`
DurationDays int `json:"duration_days"`
StartTime time.Time `json:"start_date"`
WarningDate time.Time `json:"warning_date"`
EndDate time.Time `json:"end_date"`
SubscriptionType SubscriptionType `json:"subscription_type"`
}
// SubscriptionType contains information about a subscription type. It's not the
// active subscription itself, only the properties of the subscription. Like the
// perks and cost
type SubscriptionType struct {
ID string `json:"id"`
Name string `json:"name"`
Type string `json:"type"`
DisableAdDisplay bool `json:"disable_ad_display"`
DisableAdsOnFiles bool `json:"disable_ads_on_files"`
FileSizeLimit int64 `json:"file_size_limit"`
FileExpiryDays int `json:"file_expiry_days"`
}
// GetSubscriptionID returns the subscription object identified by the given ID
func (p *PixelAPI) GetSubscriptionID(id string) (resp Subscription, err error) {
return resp, p.jsonRequest("GET", p.apiEndpoint+"/subscription/"+url.PathEscape(id), &resp)
}
// PostSubscriptionLink links a subscription to the logged in user account. Use
// Login() before calling this function to select the account to use. This
// action cannot be undone.
func (p *PixelAPI) PostSubscriptionLink(id string) (err error) {
return p.jsonRequest("POST", p.apiEndpoint+"/subscription/"+url.PathEscape(id)+"/link", nil)
}