Documentation
¶
Index ¶
- Variables
- type APIRequestStructAdd
- type APIRequestStructAuth
- type APIRequestStructCreateToken
- type APIRequestStructCreateUser
- type APIRequestStructMe
- type APIRequestStructNotes
- type APIRequestStructSubscribe
- type APIRequestStructVerifyUser
- type APIResponseStructAccount
- type APIResponseStructNote
- type Configuration
- type Handler
- type Route
Constants ¶
This section is empty.
Variables ¶
View Source
var APIRouteAccount = Route{ "/account", func(res http.ResponseWriter, req *http.Request) (interface{}, error) { // Parse JSON request var reqData APIRequestStructMe if err := checkJSONBody(req, res, &reqData); err != nil { return nil, err } account, err := data.AccountByAddress(reqData.Address) if err != nil { return nil, errors.New("Unknown account address") } _, err = account.GetToken(reqData.Token, data.TokenTypeAccess) if err != nil { return nil, errors.New("Unable to use provided token") } account, err = account.Verify() if err != nil { return nil, errors.New("Unable to use provided token") } return APIResponseStructAccount{ account.Address, account.Created, account.HasSubscription(), }, nil }, }
APIRouteAccount is
View Source
var APIRouteAccountCreate = Route{ "/account/create", func(res http.ResponseWriter, req *http.Request) (interface{}, error) { var reqData APIRequestStructCreateUser if err := checkJSONBody(req, res, &reqData); err != nil { return nil, err } account := data.AccountNew(reqData.Address) account, err := account.Store() if err != nil { return nil, errors.New("Unable to create account") } token := data.TokenNew(account.ID, data.TokenTypeMaintenace) tokenRaw := token.Raw() token, err = token.Store() if err != nil { account.Remove() return nil, errors.New("Unable to create account") } _, err = sendTokenWithTemplate(account.Address, tokenRaw, conf.TemplateWelcome) if err != nil { return nil, errors.New("Unable to send welcome mail") } if err != nil { account.Remove() return nil, errors.New("Unable to create account") } return nil, nil }, }
APIRouteAccountCreate is
View Source
var APIRouteAccountVerify = Route{ "/account/verify", func(res http.ResponseWriter, req *http.Request) (interface{}, error) { // Parse JSON request var reqData APIRequestStructVerifyUser if err := checkJSONBody(req, res, &reqData); err != nil { return nil, err } account, err := data.AccountByAddress(reqData.Address) if err != nil { return nil, errors.New("Unknown account address") } _, err = account.GetToken(reqData.Token, data.TokenTypeMaintenace) if err != nil { return nil, errors.New("Unable to use provided token") } account, err = account.Verify() if err != nil { return nil, errors.New("Unable to use provided token") } _, err = sendTokenWithTemplate(account.Address, reqData.Token, conf.TemplateConfirm) if err != nil { return nil, errors.New("Unable to send verification mail") } return nil, nil }, }
APIRouteAccountVerify is
View Source
var APIRouteAdd = Route{ "/add", func(res http.ResponseWriter, req *http.Request) (interface{}, error) { // Parse JSON request var reqData APIRequestStructAdd if err := checkJSONBody(req, res, &reqData); err != nil { return nil, err } account, err := data.AccountByAddress(reqData.Address) if err != nil { return nil, errors.New("Unknown account address") } if !account.Verified { return nil, errors.New("Account not verified") } _, err = account.GetToken(reqData.Token, data.TokenTypeAccess) if err != nil { return nil, errors.New("Unable to use provided token") } note := data.NoteNew(account.ID, reqData.Note) note, err = note.Store() if err != nil { return nil, errors.New("Unable to store note") } return nil, nil }, }
APIRouteAdd is
View Source
var APIRouteAuth = Route{ "/auth", func(res http.ResponseWriter, req *http.Request) (interface{}, error) { // Parse JSON request var reqData APIRequestStructAuth if err := checkJSONBody(req, res, &reqData); err != nil { return nil, err } account, err := data.AccountByAddress(reqData.Address) if err != nil { return nil, errors.New("Unknown account address") } if !account.Verified { return nil, errors.New("Account not verified") } _, err = account.GetToken(reqData.Token, data.TokenTypeAccess) if err != nil { return nil, errors.New("Unable to use provided token") } return nil, nil }, }
APIRouteAuth is
View Source
var APIRouteNotes = Route{ "/notes", func(res http.ResponseWriter, req *http.Request) (interface{}, error) { // Parse JSON request var reqData APIRequestStructNotes if err := checkJSONBody(req, res, &reqData); err != nil { return nil, err } account, err := data.AccountByAddress(reqData.Address) if err != nil { return nil, errors.New("Unknown account address") } if !account.Verified { return nil, errors.New("Account not verified") } _, err = account.GetToken(reqData.Token, data.TokenTypeAccess) if err != nil { return nil, errors.New("Unable to use provided token") } list, err := data.NoteListByAccount(account.ID) if err != nil { return nil, errors.New("Failed to get notes") } var noteList []APIResponseStructNote for i := 0; i < len(list); i++ { noteList = append(noteList, APIResponseStructNote{list[i].Text, list[i].Created}) } return noteList, nil }, }
APIRouteNotes is
View Source
var APIRouteSubscribe = Route{ "/subscribe", func(res http.ResponseWriter, req *http.Request) (interface{}, error) { // Parse JSON request var reqData APIRequestStructSubscribe if err := checkJSONBody(req, res, &reqData); err != nil { return nil, err } account, err := data.AccountByAddress(reqData.Address) if err != nil { return nil, errors.New("Unknown account address") } if !account.Verified { return nil, errors.New("Account not verified") } _, err = account.GetToken(reqData.Token, data.TokenTypeAccess) if err != nil { return nil, errors.New("Unable to use provided token") } stripe.Key = os.Getenv("STRIPE_API_KEY") expire := strings.Split(reqData.Expire, "/") t, err := stripeToken.New(&stripe.TokenParams{ Card: &stripe.CardParams{ Number: reqData.Number, Month: expire[0], Year: expire[1], CVC: reqData.CVC, }, }) if err != nil { return nil, errors.New("Invalid card information") } customerParams := &stripe.CustomerParams{ Desc: fmt.Sprintf("%s (#%d)", account.Address, account.ID), } customerParams.SetSource(t.ID) c, err := stripeCustomer.New(customerParams) if err != nil { return nil, errors.New("Invalid account information") } s, err := stripeSub.New(&stripe.SubParams{ Customer: c.ID, Plan: "blue", }) if err != nil { return nil, errors.New("Invalid account information") } subscription := data.SubscriptionNew(account.ID, s.ID) subscription, err = subscription.Store() subscription, err = subscription.Activate() if err != nil { return nil, errors.New("Invalid account information") } return nil, nil }, }
APIRouteSubscribe is
View Source
var APIRouteTokenCreate = Route{ "/token/create", func(res http.ResponseWriter, req *http.Request) (interface{}, error) { // Parse JSON request var reqData APIRequestStructCreateToken if err := checkJSONBody(req, res, &reqData); err != nil { return nil, err } account, err := data.AccountByAddress(reqData.Address) if err != nil { return nil, errors.New("Unknown account address") } if !account.Verified { return nil, errors.New("Account not verified") } token := data.TokenNew(account.ID, data.TokenTypeAccess) tokenRaw := token.Raw() token, err = token.Store() _, err = sendTokenWithTemplate(reqData.Address, tokenRaw, conf.TemplateToken) if err != nil { token.Remove() return nil, errors.New("Unable to create token for account") } return nil, nil }, }
APIRouteTokenCreate is
Functions ¶
This section is empty.
Types ¶
type APIRequestStructAdd ¶
type APIRequestStructAdd struct { Address string `json:"address"` Token string `json:"token"` Note string `json:"note"` }
APIRequestStructAdd is
type APIRequestStructAuth ¶
APIRequestStructAuth is
type APIRequestStructCreateToken ¶
type APIRequestStructCreateToken struct {
Address string `json:"address"`
}
APIRequestStructCreateToken is
type APIRequestStructCreateUser ¶
type APIRequestStructCreateUser struct {
Address string `json:"address"`
}
APIRequestStructCreateUser is
type APIRequestStructMe ¶
APIRequestStructMe is
type APIRequestStructNotes ¶
APIRequestStructNotes is
type APIRequestStructSubscribe ¶
type APIRequestStructSubscribe struct { Address string `json:"address"` Token string `json:"token"` Number string `json:"number"` Expire string `json:"expire"` CVC string `json:"cvc"` }
APIRequestStructSubscribe is
type APIRequestStructVerifyUser ¶
type APIRequestStructVerifyUser struct { Address string `json:"address"` Token string `json:"token"` }
APIRequestStructVerifyUser is
type APIResponseStructAccount ¶
APIResponseStructAccount is
type APIResponseStructNote ¶
APIResponseStructNote is
type Configuration ¶
type Configuration struct { TemplateWelcome int64 TemplateConfirm int64 TemplateToken int64 PostmarkToken string PostmarkFrom string PostmarkReplyTo string }
Configuration stores need variables
Click to show internal directories.
Click to hide internal directories.