api

package
v0.0.0-...-0384813 Latest Latest
Warning

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

Go to latest
Published: Apr 18, 2017 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var GetBrowsersHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
	before, after := getRequestedPeriods(r)
	results := count.Browsers(before, after, getRequestedLimit(r))
	respond(w, envelope{Data: results})
})

URL: /api/browsers

View Source
var GetLanguagesHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
	before, after := getRequestedPeriods(r)
	results := count.Languages(before, after, getRequestedLimit(r))
	respond(w, envelope{Data: results})
})

URL: /api/languages

View Source
var GetPageviewsCountHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
	before, after := getRequestedPeriods(r)
	result := count.Pageviews(before, after)
	respond(w, envelope{Data: result})
})

URL: /api/pageviews/count

View Source
var GetPageviewsHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
	before, after := getRequestedPeriods(r)

	stmt, err := datastore.DB.Prepare(`
		SELECT
			p.hostname,
			p.path,
			SUM(t.count) AS count,
			SUM(t.count_unique) AS count_unique
		FROM total_pageviews t
		LEFT JOIN pages p ON p.id = t.page_id
		WHERE UNIX_TIMESTAMP(t.date) <= ? AND UNIX_TIMESTAMP(t.date) >= ?
		GROUP BY p.path, p.hostname
		ORDER BY count DESC
		LIMIT ?`)

	checkError(err)
	defer stmt.Close()

	rows, err := stmt.Query(before, after, defaultLimit)
	checkError(err)
	defer rows.Close()

	results := make([]pageviews, 0)
	for rows.Next() {
		var p pageviews
		err = rows.Scan(&p.Hostname, &p.Path, &p.Count, &p.CountUnique)
		checkError(err)
		results = append(results, p)
	}

	err = rows.Err()
	checkError(err)

	respond(w, envelope{Data: results})
})

URL: /api/pageviews

View Source
var GetPageviewsPeriodCountHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
	before, after := getRequestedPeriods(r)
	results := count.PageviewsPerDay(before, after)
	respond(w, envelope{Data: results})
})

URL: /api/pageviews/group/day

View Source
var GetReferrersHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
	before, after := getRequestedPeriods(r)
	results := count.Referrers(before, after, getRequestedLimit(r))
	respond(w, envelope{Data: results})
})

URL: /api/referrers

View Source
var GetScreenResolutionsHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
	before, after := getRequestedPeriods(r)
	results := count.Screens(before, after, getRequestedLimit(r))
	respond(w, envelope{Data: results})
})

URL: /api/screen-resolutions

View Source
var GetVisitorsCountHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
	before, after := getRequestedPeriods(r)
	result := count.Visitors(before, after)
	respond(w, envelope{Data: result})
})

URL: /api/visitors/count

View Source
var GetVisitorsPeriodCountHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
	before, after := getRequestedPeriods(r)
	results := count.VisitorsPerDay(before, after)
	respond(w, envelope{Data: results})
})

URL: /api/visitors/count/group/:period

View Source
var GetVisitorsRealtimeCountHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
	result := count.RealtimeVisitors()
	respond(w, envelope{Data: result})
})

URL: /api/visitors/count/realtime

View Source
var LoginHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {

	// check login creds
	var l login
	json.NewDecoder(r.Body).Decode(&l)

	u, err := datastore.GetUserByEmail(l.Email)

	if err != nil || bcrypt.CompareHashAndPassword([]byte(u.HashedPassword), []byte(l.Password)) != nil {
		w.WriteHeader(http.StatusUnauthorized)
		respond(w, envelope{Error: "invalid_credentials"})
		return
	}

	session, _ := store.Get(r, "auth")
	session.Values["user_id"] = u.ID
	err = session.Save(r, w)
	checkError(err)

	respond(w, envelope{Data: true})
})

URL: POST /api/session

View Source
var LogoutHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
	session, _ := store.Get(r, "auth")
	if !session.IsNew {
		session.Options.MaxAge = -1
		session.Save(r, w)
	}

	respond(w, envelope{Data: true})
})

URL: DELETE /api/session

Functions

func Authorize

func Authorize(next http.Handler) http.Handler

middleware

func NewCollectHandler

func NewCollectHandler() http.Handler

middleware

Types

This section is empty.

Jump to

Keyboard shortcuts

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