pull/429/head
hunterlong 2020-02-25 09:39:38 -08:00
parent c0d76eb891
commit 7ac26c2841
8 changed files with 9754 additions and 56 deletions

View File

@ -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)
}
}

View File

@ -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,
func ExportSettings() ([]byte, error) {
users := database.AllUsers()
messages := database.AllMessages()
data := ExportData{
Core: CoreApp.Core,
Notifiers: CoreApp.Notifications,
//Checkins: database.AllCheckins(),
// Users: database.AllUsers(),
Users: users,
//Services: CoreApp.Services,
//Groups: SelectGroups(true, true),
// Messages: messages,
// }
// export, err := json.Marshal(data)
// return export, err
//}
Messages: messages,
}
export, err := json.Marshal(data)
return export, err
}

View File

@ -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.

View File

@ -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
}

View File

@ -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
}

View File

@ -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 {

9708
frontend/yarn.lock Normal file

File diff suppressed because it is too large Load Diff

View File

@ -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)
}