mirror of https://github.com/statping/statping
pull/429/head
parent
c0d76eb891
commit
7ac26c2841
13
cmd/cli.go
13
cmd/cli.go
|
@ -178,11 +178,10 @@ func catchCLI(args []string) error {
|
|||
func ExportIndexHTML() []byte {
|
||||
source.Assets()
|
||||
core.CoreApp.Connect(false, utils.Directory)
|
||||
core.CoreApp.SelectAllServices(false)
|
||||
core.SelectAllServices(false)
|
||||
core.CoreApp.UseCdn = types.NewNullBool(true)
|
||||
for _, srv := range core.CoreApp.Services {
|
||||
service := srv.(*core.Service)
|
||||
service.Check(true)
|
||||
for _, srv := range core.Services() {
|
||||
core.CheckService(srv, true)
|
||||
}
|
||||
w := httptest.NewRecorder()
|
||||
r := httptest.NewRequest("GET", "/", nil)
|
||||
|
@ -220,12 +219,12 @@ func runOnce() {
|
|||
if err != nil {
|
||||
fmt.Println("Core database was not found, Statping is not setup yet.")
|
||||
}
|
||||
_, err = core.CoreApp.SelectAllServices(true)
|
||||
_, err = core.SelectAllServices(true)
|
||||
if err != nil {
|
||||
log.Errorln(err)
|
||||
}
|
||||
for _, out := range core.CoreApp.Services {
|
||||
out.Check(true)
|
||||
for _, srv := range core.Services() {
|
||||
core.CheckService(srv, true)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
package core
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"github.com/hunterlong/statping/database"
|
||||
"github.com/hunterlong/statping/types"
|
||||
)
|
||||
|
||||
|
@ -39,21 +41,19 @@ type ExportData struct {
|
|||
// - Services
|
||||
// - Groups
|
||||
// - Messages
|
||||
//func ExportSettings() ([]byte, error) {
|
||||
// users, err := SelectAllUsers()
|
||||
// messages, err := SelectMessages()
|
||||
// if err != nil {
|
||||
// return nil, err
|
||||
// }
|
||||
// data := ExportData{
|
||||
// Core: CoreApp.Core,
|
||||
// Notifiers: CoreApp.Notifications,
|
||||
// Checkins: database.AllCheckins(),
|
||||
// Users: database.AllUsers(),
|
||||
// Services: CoreApp.Services,
|
||||
// Groups: SelectGroups(true, true),
|
||||
// Messages: messages,
|
||||
// }
|
||||
// export, err := json.Marshal(data)
|
||||
// return export, err
|
||||
//}
|
||||
func ExportSettings() ([]byte, error) {
|
||||
users := database.AllUsers()
|
||||
messages := database.AllMessages()
|
||||
|
||||
data := ExportData{
|
||||
Core: CoreApp.Core,
|
||||
Notifiers: CoreApp.Notifications,
|
||||
//Checkins: database.AllCheckins(),
|
||||
Users: users,
|
||||
//Services: CoreApp.Services,
|
||||
//Groups: SelectGroups(true, true),
|
||||
Messages: messages,
|
||||
}
|
||||
export, err := json.Marshal(data)
|
||||
return export, err
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ package core
|
|||
import (
|
||||
"fmt"
|
||||
"github.com/hunterlong/statping/database"
|
||||
"github.com/hunterlong/statping/types"
|
||||
"github.com/hunterlong/statping/utils"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
"time"
|
||||
|
@ -88,14 +89,9 @@ func (u *User) Create() (int64, error) {
|
|||
}
|
||||
|
||||
// SelectAllUsers returns all users
|
||||
func SelectAllUsers() ([]*User, error) {
|
||||
var users []*User
|
||||
err := database.AllUsers(&users)
|
||||
if err != nil {
|
||||
log.Errorln(fmt.Sprintf("Failed to load all users. %v", err))
|
||||
return nil, err
|
||||
}
|
||||
return users, err
|
||||
func SelectAllUsers() []*types.User {
|
||||
users := database.AllUsers()
|
||||
return users
|
||||
}
|
||||
|
||||
// AuthUser will return the User and a boolean if authentication was correct.
|
||||
|
|
|
@ -14,6 +14,12 @@ func Message(id int64) (*MessageObj, error) {
|
|||
return &MessageObj{Message: &message, o: wrapObject(id, &message, query)}, finder.Error()
|
||||
}
|
||||
|
||||
func AllMessages() []*types.Message {
|
||||
var messages []*types.Message
|
||||
database.Messages().Find(&messages)
|
||||
return messages
|
||||
}
|
||||
|
||||
func (m *MessageObj) object() *Object {
|
||||
return m.o
|
||||
}
|
||||
|
|
|
@ -159,17 +159,22 @@ func (s *ServiceObj) UpdateStats() *types.Stats {
|
|||
|
||||
// AvgTime will return the average amount of time for a service to response back successfully
|
||||
func (s *ServiceObj) AvgTime() float64 {
|
||||
var sum float64
|
||||
var sum []float64
|
||||
database.Hits().
|
||||
Select("AVG(latency) as amount").
|
||||
Where("service = ?", s.Id).Pluck("amount", &sum).Debug()
|
||||
|
||||
sumTotal := float64(0)
|
||||
for _, v := range sum {
|
||||
sumTotal += v
|
||||
}
|
||||
|
||||
total := s.Hits().Count()
|
||||
|
||||
if total == 0 {
|
||||
return 0
|
||||
}
|
||||
avg := sum / float64(total) * 100
|
||||
avg := sumTotal / float64(total) * 100
|
||||
f, _ := strconv.ParseFloat(fmt.Sprintf("%0.0f", avg*10), 32)
|
||||
return f
|
||||
}
|
||||
|
|
|
@ -21,9 +21,10 @@ func UserByUsername(username string) (*UserObj, error) {
|
|||
return &UserObj{User: &user, o: wrapObject(user.Id, &user, query)}, finder.Error()
|
||||
}
|
||||
|
||||
func AllUsers(input interface{}) error {
|
||||
err := database.Users().Find(&input)
|
||||
return err.Error()
|
||||
func AllUsers() []*types.User {
|
||||
var users []*types.User
|
||||
database.Users().Find(&users)
|
||||
return users
|
||||
}
|
||||
|
||||
func (u *UserObj) object() *Object {
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -25,21 +25,8 @@ import (
|
|||
"github.com/hunterlong/statping/types"
|
||||
"github.com/hunterlong/statping/utils"
|
||||
"net/http"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
func usersHandler(w http.ResponseWriter, r *http.Request) {
|
||||
users, _ := core.SelectAllUsers()
|
||||
ExecuteResponse(w, r, "users.gohtml", users, nil)
|
||||
}
|
||||
|
||||
func usersEditHandler(w http.ResponseWriter, r *http.Request) {
|
||||
vars := mux.Vars(r)
|
||||
id, _ := strconv.Atoi(vars["id"])
|
||||
user, _ := core.SelectUser(int64(id))
|
||||
ExecuteResponse(w, r, "user.gohtml", user, nil)
|
||||
}
|
||||
|
||||
func apiUserHandler(w http.ResponseWriter, r *http.Request) {
|
||||
vars := mux.Vars(r)
|
||||
user, err := core.SelectUser(utils.ToInt(vars["id"]))
|
||||
|
@ -92,11 +79,7 @@ func apiUserDeleteHandler(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
|
||||
func apiAllUsersHandler(w http.ResponseWriter, r *http.Request) {
|
||||
users, err := core.SelectAllUsers()
|
||||
if err != nil {
|
||||
sendErrorJson(err, w, r)
|
||||
return
|
||||
}
|
||||
users := core.SelectAllUsers()
|
||||
returnJson(users, w, r)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue