Documentation ¶
Index ¶
- Variables
- func Available(db Database) bool
- func Close(db Database) error
- func Maintenance()
- func Routine()
- type By
- type Database
- type Db
- func (it *Db) AddError(err error) error
- func (it *Db) AddForeignKey(field string, dest string, onDelete string, onUpdate string) Database
- func (it *Db) AddIndex(indexName string, columns ...string) Database
- func (it *Db) AddUniqueIndex(indexName string, columns ...string) Database
- func (it *Db) Assign(attrs ...interface{}) Database
- func (it *Db) Association(column string) *gorm.Association
- func (it *Db) Attrs(attrs ...interface{}) Database
- func (it *Db) AutoMigrate(values ...interface{}) Database
- func (it *Db) Begin() Database
- func (it *Db) Between(t1 time.Time, t2 time.Time) Database
- func (it *Db) Callback() *gorm.Callback
- func (it *Db) ChunkSize() int
- func (it *Db) Close() error
- func (it *Db) Commit() Database
- func (it *Db) CommonDB() gorm.SQLCommon
- func (it *Db) Count(value interface{}) Database
- func (it *Db) Create(value interface{}) Database
- func (it *Db) CreateTable(values ...interface{}) Database
- func (it *Db) DB() *sql.DB
- func (it *Db) DbType() string
- func (it *Db) Debug() Database
- func (it *Db) Delete(value interface{}, where ...interface{}) Database
- func (it *Db) DropColumn(column string) Database
- func (it *Db) DropTable(values ...interface{}) Database
- func (it *Db) DropTableIfExists(values ...interface{}) Database
- func (it *Db) Error() error
- func (it *Db) Exec(sql string, values ...interface{}) Database
- func (it *Db) Find(out interface{}, where ...interface{}) Database
- func (it *Db) First(out interface{}, where ...interface{}) Database
- func (it *Db) FirstOrCreate(out interface{}, where ...interface{}) Database
- func (it *Db) FirstOrInit(out interface{}, where ...interface{}) Database
- func (it *Db) FormatTime(t time.Time) string
- func (it *Db) Get(name string) (interface{}, bool)
- func (it *Db) GetErrors() (errors []error)
- func (it *Db) GormDB() *gorm.DB
- func (it *Db) Group(query string) Database
- func (it *Db) HasTable(value interface{}) bool
- func (it *Db) Having(query string, values ...interface{}) Database
- func (it *Db) InstantSet(name string, value interface{}) Database
- func (it *Db) Joins(query string, args ...interface{}) Database
- func (it *Db) Last(out interface{}, where ...interface{}) Database
- func (it *Db) Limit(value int) Database
- func (it *Db) LogMode(enable bool) Database
- func (it *Db) Loggable() bool
- func (it *Db) Model(value interface{}) Database
- func (it *Db) ModifyColumn(column string, typ string) Database
- func (it *Db) MultipleSelects(args ...string) Database
- func (it *Db) New() Database
- func (it *Db) NewRecord(value interface{}) bool
- func (it *Db) NewScope(value interface{}) *gorm.Scope
- func (it *Db) Not(query interface{}, args ...interface{}) Database
- func (it *Db) Offset(value int) Database
- func (it *Db) Omit(columns ...string) Database
- func (it *Db) Or(query interface{}, args ...interface{}) Database
- func (it *Db) Order(value string, reorder ...bool) Database
- func (it *Db) ParseTime(t string) (time.Time, error)
- func (it *Db) Pluck(column string, value interface{}) Database
- func (it *Db) Preload(column string, conditions ...interface{}) Database
- func (it *Db) Raw(sql string, values ...interface{}) Database
- func (it *Db) RecordNotFound() bool
- func (it *Db) Related(value interface{}, foreignKeys ...string) Database
- func (it *Db) RemoveIndex(indexName string) Database
- func (it *Db) Rollback() Database
- func (it *Db) Row() *sql.Row
- func (it *Db) Rows() (*sql.Rows, error)
- func (it *Db) RowsAffected() int64
- func (it *Db) Save(value interface{}) Database
- func (it *Db) Scan(dest interface{}) Database
- func (it *Db) ScanRows(rows *sql.Rows, result interface{}) error
- func (it *Db) Scopes(funcs ...func(*gorm.DB) *gorm.DB) Database
- func (it *Db) Select(query interface{}, args ...interface{}) Database
- func (it *Db) SelectByTime(increment time.Duration) string
- func (it *Db) Set(name string, value interface{}) Database
- func (it *Db) SetJoinTableHandler(source interface{}, column string, handler gorm.JoinTableHandlerInterface)
- func (it *Db) SetLogger(log gorm.Logger)
- func (it *Db) Since(ago time.Time) Database
- func (it *Db) SingularTable(enable bool)
- func (it *Db) Status() int
- func (it *Db) Table(name string) Database
- func (it *Db) Unscoped() Database
- func (it *Db) Update(attrs ...interface{}) Database
- func (it *Db) UpdateColumn(attrs ...interface{}) Database
- func (it *Db) UpdateColumns(values interface{}) Database
- func (it *Db) Updates(values interface{}, ignoreProtectedAttrs ...bool) Database
- func (it *Db) Where(query interface{}, args ...interface{}) Database
- type DbObject
- type GroupBy
- type GroupByer
- type GroupQuery
- type Sampler
- type TimeGroup
- type TimeValue
- type TimeVar
Constants ¶
This section is empty.
Variables ¶
var ( ByCount = By("COUNT(id) as amount") ByAverage = func(column string, multiplier int) By { switch database.DbType() { case "mysql": return By(fmt.Sprintf("CAST(AVG(%s) as UNSIGNED INT) as amount", column)) case "postgres": return By(fmt.Sprintf("cast(AVG(%s) as int) as amount", column)) default: return By(fmt.Sprintf("cast(AVG(%s) as int) as amount", column)) } } )
Functions ¶
func Maintenance ¶
func Maintenance()
Maintenance will automatically delete old records from 'failures' and 'hits' this function is currently set to delete records 7+ days old every 60 minutes env: REMOVE_AFTER - golang duration parsed time for deleting records older than REMOVE_AFTER duration from now env: CLEANUP_INTERVAL - golang duration parsed time for checking old records routine
Types ¶
type Database ¶
type Database interface { Close() error DB() *sql.DB New() Database NewScope(value interface{}) *gorm.Scope CommonDB() gorm.SQLCommon Callback() *gorm.Callback SetLogger(l gorm.Logger) LogMode(enable bool) Database SingularTable(enable bool) Where(query interface{}, args ...interface{}) Database Or(query interface{}, args ...interface{}) Database Not(query interface{}, args ...interface{}) Database Limit(value int) Database Offset(value int) Database Order(value string, reorder ...bool) Database Select(query interface{}, args ...interface{}) Database Omit(columns ...string) Database Group(query string) Database Having(query string, values ...interface{}) Database Joins(query string, args ...interface{}) Database Scopes(funcs ...func(*gorm.DB) *gorm.DB) Database Unscoped() Database Attrs(attrs ...interface{}) Database Assign(attrs ...interface{}) Database First(out interface{}, where ...interface{}) Database Last(out interface{}, where ...interface{}) Database Find(out interface{}, where ...interface{}) Database Scan(dest interface{}) Database Row() *sql.Row Rows() (*sql.Rows, error) ScanRows(rows *sql.Rows, result interface{}) error Pluck(column string, value interface{}) Database Count(value interface{}) Database Related(value interface{}, foreignKeys ...string) Database FirstOrInit(out interface{}, where ...interface{}) Database FirstOrCreate(out interface{}, where ...interface{}) Database Update(attrs ...interface{}) Database Updates(values interface{}, ignoreProtectedAttrs ...bool) Database UpdateColumn(attrs ...interface{}) Database UpdateColumns(values interface{}) Database Save(value interface{}) Database Create(value interface{}) Database Delete(value interface{}, where ...interface{}) Database Raw(sql string, values ...interface{}) Database Exec(sql string, values ...interface{}) Database Model(value interface{}) Database Table(name string) Database Debug() Database Begin() Database Commit() Database Rollback() Database NewRecord(value interface{}) bool RecordNotFound() bool CreateTable(values ...interface{}) Database DropTable(values ...interface{}) Database DropTableIfExists(values ...interface{}) Database HasTable(value interface{}) bool AutoMigrate(values ...interface{}) Database ModifyColumn(column string, typ string) Database DropColumn(column string) Database AddIndex(indexName string, column ...string) Database AddUniqueIndex(indexName string, column ...string) Database RemoveIndex(indexName string) Database AddForeignKey(field string, dest string, onDelete string, onUpdate string) Database Association(column string) *gorm.Association Preload(column string, conditions ...interface{}) Database Set(name string, value interface{}) Database InstantSet(name string, value interface{}) Database Get(name string) (value interface{}, ok bool) SetJoinTableHandler(source interface{}, column string, handler gorm.JoinTableHandlerInterface) AddError(err error) error GetErrors() (errors []error) // extra Error() error Status() int RowsAffected() int64 Since(time.Time) Database Between(time.Time, time.Time) Database SelectByTime(time.Duration) string MultipleSelects(args ...string) Database FormatTime(t time.Time) string ParseTime(t string) (time.Time, error) DbType() string GormDB() *gorm.DB ChunkSize() int }
Database is an interface which DB implements
func OpenTester ¶
type Db ¶
func (*Db) AddForeignKey ¶
func (*Db) AddUniqueIndex ¶
func (*Db) Association ¶
func (it *Db) Association(column string) *gorm.Association
func (*Db) AutoMigrate ¶
func (*Db) CreateTable ¶
func (*Db) DropColumn ¶
func (*Db) DropTableIfExists ¶
func (*Db) FirstOrCreate ¶
func (*Db) FirstOrInit ¶
func (*Db) FormatTime ¶
FormatTime returns the timestamp in the same format as the DATETIME column in database
func (*Db) InstantSet ¶
func (*Db) MultipleSelects ¶
func (*Db) RecordNotFound ¶
func (*Db) RemoveIndex ¶
func (*Db) RowsAffected ¶
func (*Db) SelectByTime ¶
SelectByTime returns an SQL query that will group "created_at" column by x seconds and returns as "timeframe"
func (*Db) SetJoinTableHandler ¶
func (it *Db) SetJoinTableHandler(source interface{}, column string, handler gorm.JoinTableHandlerInterface)
func (*Db) SingularTable ¶
func (*Db) UpdateColumn ¶
func (*Db) UpdateColumns ¶
type GroupQuery ¶
type GroupQuery struct { Start time.Time End time.Time Group time.Duration Order string Limit int Offset int FillEmpty bool // contains filtered or unexported fields }
func ParseQueries ¶
func ParseQueries(r *http.Request, o isObject) (*GroupQuery, error)
func ParseRequest ¶
func ParseRequest(r *http.Request) (*GroupQuery, error)
func (GroupQuery) Database ¶
func (b GroupQuery) Database() Database
func (GroupQuery) Find ¶
func (b GroupQuery) Find(data interface{}) error
func (*GroupQuery) GraphData ¶
func (b *GroupQuery) GraphData(by By) ([]*TimeValue, error)
GraphData will return all hits or failures
func (*GroupQuery) ToTimeValue ¶
func (b *GroupQuery) ToTimeValue() (*TimeVar, error)
ToTimeValue will format the SQL rows into a JSON format for the API. [{"timestamp": "2006-01-02T15:04:05Z", "amount": 468293}] TODO redo this entire function, use better SQL query to group by time