Documentation
¶
Index ¶
- Constants
- Variables
- func AdminRebuildDBHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
- func AdminRebuildImagesHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
- func AdminVersionHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
- func AppHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
- func AppsHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
- func AuthorHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
- func BootHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
- func CollectionHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
- func DummyHandler(w http.ResponseWriter, r *http.Request)
- func Handlers(context *HandlerContext) *mux.Router
- func HomeHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
- func ImagesHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
- func RecurseFolder(w http.ResponseWriter, path string, f os.FileInfo, lvl int)
- func SearchHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
- func TagsHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
- func VersionsHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
- type BootConfig
- type BootJSON
- type HandlerContext
- type PebbleAppList
- type PebbleApplication
- type PebbleApplicationRelease
- type PebbleCompatibility
- type PebbleCompatibilityBool
- type PebbleHeaderImage
- type PebbleHeaderImages
- type PebbleIcons
- type PebbleScreenshotImage
- type PebbleScreenshotImages
- type PebbleVersion
- type RebbleChangelog
- type RebbleCollection
- type RebbleTagList
- type WebviewsConfig
Constants ¶
const ( LOCAL_BOOT_URI string = "http://127.0.0.1:8080" PEBBLE_BOOT_URL string = "https://boot.getpebble.com/api/config/" STORE_URI string = "https://store.rebble.io" )
Variables ¶
var StoreUrl string
StoreUrl contains the URL of the frontend for the Access-Control-Allow-Origin header
Functions ¶
func AdminRebuildDBHandler ¶
func AdminRebuildDBHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
AdminRebuildDBHandler allows an administrator to rebuild the database from the application directory after hitting a single API end point.
func AdminRebuildImagesHandler ¶
func AdminRebuildImagesHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
AdminRebuildImagesHandler allows an administrator to rebuild the images database from the application directory after hitting a single API end point.
func AdminVersionHandler ¶
func AdminVersionHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
AdminVersionHandler returns the latest build information from the host in-which it was built on, such as: The current application version, the host that built the binary, the date in-which the binary was built, and the current git commit hash. Build information is populated during builds triggered via the "make build" or "sup production deploy" commands.
func AppHandler ¶
func AppHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
AppHandler returns a particular application from the backend DB as JSON
func AppsHandler ¶
func AppsHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
AppsHandler lists all of the available applications from the backend DB.
func AuthorHandler ¶
func AuthorHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
func BootHandler ¶
func BootHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
BootHandler is based off of [@afourney|https://github.com/afourney]'s development bootstrap override.
func CollectionHandler ¶
func CollectionHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
CollectionHandler serves a list of cards from a collection
func DummyHandler ¶
func DummyHandler(w http.ResponseWriter, r *http.Request)
DummyHandler is useful for adding a route when the handler hasn't been completed/fleshed out yet.
func Handlers ¶
func Handlers(context *HandlerContext) *mux.Router
Handlers returns a mux.Router with all possible routes already setup.
func HomeHandler ¶
func HomeHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
HomeHandler is the index page.
func ImagesHandler ¶
func ImagesHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
ImagesHandler serves a static image from PebbleImages/
func RecurseFolder ¶
func SearchHandler ¶
func SearchHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
SearchHandler is the search page
func TagsHandler ¶
func TagsHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
TagsHandler returns the list of tags of a particular appliction as JSON
func VersionsHandler ¶
func VersionsHandler(ctx *HandlerContext, w http.ResponseWriter, r *http.Request) (int, error)
VersionsHandler returns the server version
Types ¶
type BootConfig ¶
type BootConfig struct {
Algolia json.RawMessage `json:"algolia"`
AppMeta json.RawMessage `json:"app_meta"`
Authentication json.RawMessage `json:"authentication"`
Cohorts json.RawMessage `json:"cohorts"`
Developer json.RawMessage `json:"developer"`
Health json.RawMessage `json:"health"`
Href string `json:"href"`
Id string `json:"id"`
KeenIo json.RawMessage `json:"keen_io"`
LinkedServices json.RawMessage `json:"linked_services"`
Links json.RawMessage `json:"links"`
Locker json.RawMessage `json:"locker"`
Notifications json.RawMessage `json:"notifications"`
SupportRequest json.RawMessage `json:"support_request"`
Timeline json.RawMessage `json:"timeline"`
TreasureData json.RawMessage `json:"treasure_data"`
Voice json.RawMessage `json:"voice"`
Webviews map[string]string `json:"webviews"`
}
BootConfig contains the webviews from the JSON file.
type BootJSON ¶
type BootJSON struct {
Config BootConfig `json:"config"`
}
BootJSON is just a Go container object for the JSON response.
type HandlerContext ¶
HandlerContext is our struct for storing the data we want to inject in to each handler we can also add things like authorization level, user information, templates, etc.
type PebbleAppList ¶
type PebbleAppList struct {
Apps []*PebbleApplication `json:"data"`
}
PebbleAppList contains a list of PebbleApplication. It matches the format of Pebble API answers.
type PebbleApplication ¶
type PebbleApplication struct {
Id string `json:"id"`
Name string `json:"title"`
Author string `json:"author"`
CategoryId string `json:"category_id"`
CategoryName string `json:"category_name"`
CategoryColor string `json:"category_color"`
Description string `json:"description"`
Published db.JSONTime `json:"published_date"`
Release PebbleApplicationRelease `json:"latest_release"`
Website string `json:"website"`
Source string `json:"source"`
Screenshots PebbleScreenshotImages `json:"screenshot_images"`
Icons PebbleIcons `json:"icon_image"`
ScreenshotHardware string `json:"screenshot_hardware"`
HeaderImages PebbleHeaderImages `json:"header_images"`
Hearts int `json:"hearts"`
Type string `json:"type"`
Compatibility PebbleCompatibility `json:"compatibility"`
Changelog []PebbleVersion `json:"changelog"`
}
PebbleApplication is used by the parseApp() function. It matches directly the `{id}.json` format.
type PebbleApplicationRelease ¶
type PebbleApplicationRelease struct {
Id string `json:"id"`
PbwUrl string `json:"pbw_file"`
Published db.JSONTime `json:"published_date"`
Version string `json:"version"`
}
PebbleApplicationRelease describes the `release` tag of a pebble JSON
type PebbleCompatibility ¶
type PebbleCompatibility struct {
Ios PebbleCompatibilityBool `json:"ios"`
Android PebbleCompatibilityBool `json:"android"`
Aplite PebbleCompatibilityBool `json:"aplite"`
Basalt PebbleCompatibilityBool `json:"basalt"`
Chalk PebbleCompatibilityBool `json:"chalk"`
Diorite PebbleCompatibilityBool `json:"diorite"`
}
PebbleCompatibility describes the `compatibility` tag of a pebble JSON
type PebbleCompatibilityBool ¶
type PebbleCompatibilityBool struct {
Supported bool `json:"supported"`
}
PebbleCompatibilityBool describes the contents of a `compatibility` tag of a pebble JSON
type PebbleHeaderImage ¶
type PebbleHeaderImage struct {
Orig string `json:"orig"`
}
PebbleHeaderImage is used by PebbleHeaderImages to allow mixed contents
type PebbleHeaderImages ¶
type PebbleHeaderImages []PebbleHeaderImage
PebbleHeaderImages is a generic type to allow mixed contents (empty string or array of header images)
func (*PebbleHeaderImages) UnmarshalJSON ¶
func (phi *PebbleHeaderImages) UnmarshalJSON(b []byte) error
UnmarshalJSON for PebbleHeaderImages allows for mixed content
type PebbleIcons ¶
PebbleIcons contains the icon at varying resolutions
func (*PebbleIcons) UnmarshalJSON ¶
func (pi *PebbleIcons) UnmarshalJSON(b []byte) error
type PebbleScreenshotImage ¶
PebbleScreenshotImage is used by PebbleHeaderImages to allow mixed contents
type PebbleScreenshotImages ¶
type PebbleScreenshotImages []PebbleScreenshotImage
PebbleScreenshotImages is a generic type to allow mixed contents (empty string or array of screenshots)
func (*PebbleScreenshotImages) UnmarshalJSON ¶
func (psi *PebbleScreenshotImages) UnmarshalJSON(b []byte) error
UnmarshalJSON for PebbleScreenshotImages allows for mixed content
type PebbleVersion ¶
type PebbleVersion struct {
Version string `json:"version"`
Published db.JSONTime `json:"published_date"`
Notes string `json:"release_notes"`
}
PebbleVersion describes a version change
type RebbleChangelog ¶
type RebbleChangelog struct {
Versions []db.RebbleVersion `json:"versions"`
}
RebbleChangelog contains a list of version changes for an app
type RebbleCollection ¶
type RebbleCollection struct {
Id string `json:"id"`
Name string `json:"name"`
Pages int `json:"pages"`
Cards []db.RebbleCard `json:"cards"`
}
type RebbleTagList ¶
type RebbleTagList struct {
Tags []db.RebbleCollection `json:"tags"`
}
RebbleTagList contains a list of tag. Used by getApi(id)
type WebviewsConfig ¶
type WebviewsConfig struct {
FAQ string `json:"support/faq"`
Application string `json:"appstore/application"`
ApplicationChangelog string `json:"appstore/application_changelog"`
DeveloperApps string `json:"appstore/developer_apps"`
Watchfaces string `json:"appstore/watchfaces"`
Watchapps string `json:"appstore/watchapps"`
}
WebviewConfig contains the webviews in-which we would like to override.