package arn import ( "github.com/aerogo/aero" "github.com/aerogo/api" jsoniter "github.com/json-iterator/go" ) // Force interface implementations var ( _ Identifiable = (*Analytics)(nil) _ api.Newable = (*Analytics)(nil) ) // Authorize returns an error if the given API POST request is not authorized. func (analytics *Analytics) Authorize(ctx aero.Context, action string) error { return AuthorizeIfLoggedIn(ctx) } // Create creates a new analytics object. func (analytics *Analytics) Create(ctx aero.Context) error { body, err := ctx.Request().Body().Bytes() if err != nil { return err } err = jsoniter.Unmarshal(body, analytics) if err != nil { return err } analytics.UserID = GetUserFromContext(ctx).ID return nil } // Save saves the analytics in the database. func (analytics *Analytics) Save() { DB.Set("Analytics", analytics.UserID, analytics) }