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