From a324ece5c6fb561fb2b11583e8a072d58f51a689 Mon Sep 17 00:00:00 2001 From: Hunter Long Date: Mon, 30 Dec 2019 03:12:14 -0800 Subject: [PATCH] fixed testing --- cmd/main.go | 10 +- core/configs.go | 2 +- core/database.go | 1 + source/css/base.css | 384 ++++++++++++++------------------------- source/tmpl/postman.json | 26 +-- types/core.go | 2 +- types/types.go | 36 ++-- 7 files changed, 170 insertions(+), 291 deletions(-) diff --git a/cmd/main.go b/cmd/main.go index f5d91cef..7db6cc84 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -76,7 +76,7 @@ func main() { source.Assets() utils.VerboseMode = verboseMode if err := utils.InitLogs(); err != nil { - log.Fatalf("Statping Log Error: \n %v\n", err) + log.Errorf("Statping Log Error: %v\n", err) } args := flag.Args() @@ -102,7 +102,9 @@ func main() { } } core.CoreApp.Config = configs - mainProcess() + if err := mainProcess(); err != nil { + log.Fatalln(err) + } } // Close will gracefully stop the database connection, and log file @@ -130,12 +132,13 @@ func loadDotEnvs() error { } // mainProcess will initialize the Statping application and run the HTTP server -func mainProcess() { +func mainProcess() error { dir := utils.Directory var err error err = core.CoreApp.Connect(false, dir) if err != nil { log.Errorln(fmt.Sprintf("could not connect to database: %v", err)) + return err } core.CoreApp.MigrateDatabase() core.InitApp() @@ -145,4 +148,5 @@ func mainProcess() { log.Fatalln(err) } } + return err } diff --git a/core/configs.go b/core/configs.go index e268057d..168a6548 100644 --- a/core/configs.go +++ b/core/configs.go @@ -34,7 +34,7 @@ type ErrorResponse struct { func LoadConfigFile(directory string) (*types.DbConfig, error) { var configs *types.DbConfig if os.Getenv("DB_CONN") != "" { - log.Infoln("DB_CONN environment variable was found, waiting for database...") + log.Warnln("DB_CONN environment variable was found, waiting for database...") return LoadUsingEnv() } log.Debugln("attempting to read config file at: " + directory + "/config.yml") diff --git a/core/database.go b/core/database.go index 81a27abf..f8a29159 100644 --- a/core/database.go +++ b/core/database.go @@ -222,6 +222,7 @@ func (c *Core) Connect(retry bool, location string) error { case "sqlite": sqlFilename := findDbFile() conn = sqlFilename + log.Infoln("SQL database file at: ", conn) dbType = "sqlite3" case "mysql": host := fmt.Sprintf("%v:%v", CoreApp.Config.DbHost, CoreApp.Config.DbPort) diff --git a/source/css/base.css b/source/css/base.css index 9afeb475..cb70861b 100644 --- a/source/css/base.css +++ b/source/css/base.css @@ -7,66 +7,54 @@ /* Mobile Service Container */ HTML, BODY { background-color: #fcfcfc; - padding-bottom: 10px; -} + padding-bottom: 10px; } .container { padding-top: 20px; padding-bottom: 25px; max-width: 860px; - box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; -} + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; } .header-title { - color: #464646; -} + color: #464646; } .header-desc { - color: #939393; -} + color: #939393; } .btn { - border-radius: 0.2rem; -} + border-radius: 0.2rem; } .online_list .badge { - margin-top: 0.2rem; -} + margin-top: 0.2rem; } .navbar { - margin-bottom: 30px; -} + margin-bottom: 30px; } .btn-sm { line-height: 1.3; - font-size: 0.75rem; -} + font-size: 0.75rem; } .view_service_btn { position: absolute; bottom: -40px; - right: 40px; -} + right: 40px; } .service_lower_info { position: absolute; bottom: -40px; left: 40px; color: #d1ffca; - font-size: 0.85rem; -} + font-size: 0.85rem; } .lg_number { font-size: 2.3rem; font-weight: bold; display: block; - color: #4f4f4f; -} + color: #4f4f4f; } .stats_area { text-align: center; - color: #a5a5a5; -} + color: #a5a5a5; } .lower_canvas { height: 3.4rem; @@ -74,101 +62,82 @@ HTML, BODY { background-color: #48d338; padding: 15px 10px; margin-left: 0px !important; - margin-right: 0px !important; -} + margin-right: 0px !important; } .lower_canvas SPAN { font-size: 1rem; - color: #fff; -} + color: #fff; } .footer { text-decoration: none; - margin-top: 20px; -} + margin-top: 20px; } .footer A { color: #8d8d8d; - text-decoration: none; -} + text-decoration: none; } .footer A:HOVER { - color: #6d6d6d; -} + color: #6d6d6d; } .badge { color: white; - border-radius: 0.2rem; -} + border-radius: 0.2rem; } .btn-group { - height: 25px; -} -.btn-group A { - padding: 0.1rem 0.75rem; - font-size: 0.8rem; -} + height: 25px; } + .btn-group A { + padding: 0.1rem .75rem; + font-size: 0.8rem; } .card-body .badge { - color: #fff; -} + color: #fff; } .nav-pills .nav-link { - border-radius: 0.2rem; -} + border-radius: 0.2rem; } .form-control { - border-radius: 0.2rem; -} + border-radius: 0.2rem; } .card { background-color: #ffffff; - border: 1px solid rgba(0, 0, 0, 0.125); -} + border: 1px solid rgba(0, 0, 0, 0.125); } .card-body { - overflow: hidden; -} + overflow: hidden; } .card-body H4 A { color: #444444; - text-decoration: none; -} + text-decoration: none; } .chart-container { position: relative; height: 170px; width: 100%; - overflow: hidden; -} + overflow: hidden; } .service-chart-container { position: relative; height: 400px; - width: 100%; -} + width: 100%; } .service-chart-heatmap { position: relative; height: 300px; - width: 100%; -} + width: 100%; } .inputTags-field { border: 0; background-color: transparent; - padding-top: 0.13rem; -} + padding-top: .13rem; } input.inputTags-field:focus { - outline-width: 0; -} + outline-width: 0; } .inputTags-list { display: block; width: 100%; min-height: calc(2.25rem + 2px); - padding: 0.2rem 0.35rem; + padding: .2rem .35rem; font-size: 1rem; font-weight: 400; line-height: 1.5; @@ -176,9 +145,8 @@ input.inputTags-field:focus { background-color: #fff; background-clip: padding-box; border: 1px solid #ced4da; - border-radius: 0.25rem; - transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; -} + border-radius: .25rem; + transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out; } .inputTags-item { background-color: #3aba39; @@ -186,81 +154,63 @@ input.inputTags-field:focus { padding: 5px 8px; font-size: 10pt; color: white; - border-radius: 4px; -} + border-radius: 4px; } .inputTags-item .close-item { margin-left: 6px; font-size: 13pt; font-weight: bold; - cursor: pointer; -} + cursor: pointer; } .btn-primary { background-color: #3e9bff; border-color: #006fe6; - color: white; -} -.btn-primary.dyn-dark { - background-color: #32a825 !important; - border-color: #2c9320 !important; -} -.btn-primary.dyn-light { - background-color: #75de69 !important; - border-color: #88e37e !important; -} + color: white; } + .btn-primary.dyn-dark { + background-color: #32a825 !important; + border-color: #2c9320 !important; } + .btn-primary.dyn-light { + background-color: #75de69 !important; + border-color: #88e37e !important; } .btn-success { - background-color: #47d337; -} -.btn-success.dyn-dark { - background-color: #32a825 !important; - border-color: #2c9320 !important; -} -.btn-success.dyn-light { - background-color: #75de69 !important; - border-color: #88e37e !important; -} + background-color: #47d337; } + .btn-success.dyn-dark { + background-color: #32a825 !important; + border-color: #2c9320 !important; } + .btn-success.dyn-light { + background-color: #75de69 !important; + border-color: #88e37e !important; } .btn-danger { - background-color: #dd3545; -} -.btn-danger.dyn-dark { - background-color: #b61f2d !important; - border-color: #a01b28 !important; -} -.btn-danger.dyn-light { - background-color: #e66975 !important; - border-color: #e97f89 !important; -} + background-color: #dd3545; } + .btn-danger.dyn-dark { + background-color: #b61f2d !important; + border-color: #a01b28 !important; } + .btn-danger.dyn-light { + background-color: #e66975 !important; + border-color: #e97f89 !important; } .bg-success { - background-color: #47d337 !important; -} + background-color: #47d337 !important; } .bg-danger { - background-color: #dd3545 !important; -} + background-color: #dd3545 !important; } .bg-success .dyn-dark { - background-color: #35b027 !important; -} + background-color: #35b027 !important; } .bg-danger .dyn-dark { - background-color: #bf202f !important; -} + background-color: #bf202f !important; } .nav-pills .nav-link.active, .nav-pills .show > .nav-link { - background-color: #13a00d; -} + background-color: #13a00d; } .nav-pills A { - color: #424242; -} + color: #424242; } .nav-pills I { - margin-right: 10px; -} + margin-right: 10px; } .CodeMirror { /* Bootstrap Settings */ @@ -280,26 +230,23 @@ input.inputTags-field:focus { border: 1px solid #ccc; border-radius: 4px; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; /* Code Mirror Settings */ font-family: monospace; position: relative; overflow: hidden; - height: 80vh; -} + height: 80vh; } .CodeMirror-focused { /* Bootstrap Settings */ border-color: #66afe9; outline: 0; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); - transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; -} + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; } .switch { font-size: 1rem; - position: relative; -} + position: relative; } .switch input { position: absolute; @@ -310,8 +257,7 @@ input.inputTags-field:focus { clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; - padding: 0; -} + padding: 0; } .switch input + label { position: relative; @@ -324,26 +270,23 @@ input.inputTags-field:focus { outline: none; user-select: none; vertical-align: middle; - text-indent: calc(calc(calc(2.375rem * .8) * 2) + .5rem); -} + text-indent: calc(calc(calc(2.375rem * .8) * 2) + .5rem); } .switch input + label::before, .switch input + label::after { - content: ""; + content: ''; position: absolute; top: 0; left: 0; width: calc(calc(2.375rem * .8) * 2); bottom: 0; - display: block; -} + display: block; } .switch input + label::before { right: 0; background-color: #dee2e6; border-radius: calc(2.375rem * .8); - transition: 0.2s all; -} + transition: 0.2s all; } .switch input + label::after { top: 2px; @@ -352,137 +295,105 @@ input.inputTags-field:focus { height: calc(calc(2.375rem * .8) - calc(2px * 2)); border-radius: 50%; background-color: white; - transition: 0.2s all; -} + transition: 0.2s all; } .switch input:checked + label::before { - background-color: #08d; -} + background-color: #08d; } .switch input:checked + label::after { - margin-left: calc(2.375rem * .8); -} + margin-left: calc(2.375rem * .8); } .switch input:focus + label::before { outline: none; - box-shadow: 0 0 0 0.2rem rgba(0, 136, 221, 0.25); -} + box-shadow: 0 0 0 0.2rem rgba(0, 136, 221, 0.25); } .switch input:disabled + label { color: #868e96; - cursor: not-allowed; -} + cursor: not-allowed; } .switch input:disabled + label::before { - background-color: #e9ecef; -} + background-color: #e9ecef; } .switch.switch-sm { - font-size: 0.875rem; -} + font-size: 0.875rem; } .switch.switch-sm input + label { min-width: calc(calc(1.9375rem * .8) * 2); height: calc(1.9375rem * .8); line-height: calc(1.9375rem * .8); - text-indent: calc(calc(calc(1.9375rem * .8) * 2) + .5rem); -} + text-indent: calc(calc(calc(1.9375rem * .8) * 2) + .5rem); } .switch.switch-sm input + label::before { - width: calc(calc(1.9375rem * .8) * 2); -} + width: calc(calc(1.9375rem * .8) * 2); } .switch.switch-sm input + label::after { width: calc(calc(1.9375rem * .8) - calc(2px * 2)); - height: calc(calc(1.9375rem * .8) - calc(2px * 2)); -} + height: calc(calc(1.9375rem * .8) - calc(2px * 2)); } .switch.switch-sm input:checked + label::after { - margin-left: calc(1.9375rem * .8); -} + margin-left: calc(1.9375rem * .8); } .switch.switch-lg { - font-size: 1.25rem; -} + font-size: 1.25rem; } .switch.switch-lg input + label { min-width: calc(calc(3rem * .8) * 2); height: calc(3rem * .8); line-height: calc(3rem * .8); - text-indent: calc(calc(calc(3rem * .8) * 2) + .5rem); -} + text-indent: calc(calc(calc(3rem * .8) * 2) + .5rem); } .switch.switch-lg input + label::before { - width: calc(calc(3rem * .8) * 2); -} + width: calc(calc(3rem * .8) * 2); } .switch.switch-lg input + label::after { width: calc(calc(3rem * .8) - calc(2px * 2)); - height: calc(calc(3rem * .8) - calc(2px * 2)); -} + height: calc(calc(3rem * .8) - calc(2px * 2)); } .switch.switch-lg input:checked + label::after { - margin-left: calc(3rem * .8); -} + margin-left: calc(3rem * .8); } .switch + .switch { - margin-left: 1rem; -} + margin-left: 1rem; } @keyframes pulse_animation { 0% { - transform: scale(1); - } + transform: scale(1); } 30% { - transform: scale(1); - } + transform: scale(1); } 40% { - transform: scale(1.02); - } + transform: scale(1.02); } 50% { - transform: scale(1); - } + transform: scale(1); } 60% { - transform: scale(1); - } + transform: scale(1); } 70% { - transform: scale(1.05); - } + transform: scale(1.05); } 80% { - transform: scale(1); - } + transform: scale(1); } 100% { - transform: scale(1); - } -} + transform: scale(1); } } .pulse { animation-name: pulse_animation; animation-duration: 1500ms; transform-origin: 70% 70%; animation-iteration-count: infinite; - animation-timing-function: linear; -} + animation-timing-function: linear; } @keyframes glow-grow { 0% { opacity: 0; - transform: scale(1); - } + transform: scale(1); } 80% { - opacity: 1; - } + opacity: 1; } 100% { transform: scale(2); - opacity: 0; - } -} + opacity: 0; } } .pulse-glow { animation-name: glow-grown; animation-duration: 100ms; transform-origin: 70% 30%; animation-iteration-count: infinite; - animation-timing-function: linear; -} + animation-timing-function: linear; } .pulse-glow:before, .pulse-glow:after { @@ -494,12 +405,10 @@ input.inputTags-field:focus { right: 2.15rem; border-radius: 0; box-shadow: 0 0 6px #47d337; - animation: glow-grow 2s ease-out infinite; -} + animation: glow-grow 2s ease-out infinite; } .sortable_drag { - background-color: #0000000f; -} + background-color: #0000000f; } .drag_icon { cursor: move; @@ -513,139 +422,112 @@ input.inputTags-field:focus { margin-right: 5px; margin-left: -10px; text-align: center; - color: #b1b1b1; -} + color: #b1b1b1; } /* (Optional) Apply a "closed-hand" cursor during drag operation. */ .drag_icon:active { cursor: grabbing; cursor: -moz-grabbing; - cursor: -webkit-grabbing; -} + cursor: -webkit-grabbing; } .switch_btn { float: right; margin: -1px 0px 0px 0px; - display: block; -} + display: block; } #start_container { position: absolute; z-index: 99999; - margin-top: 20px; -} + margin-top: 20px; } #end_container { position: absolute; z-index: 99999; margin-top: 20px; - right: 0; -} + right: 0; } .pointer { - cursor: pointer; -} + cursor: pointer; } .jumbotron { - background-color: white; -} + background-color: white; } .toggle-service { font-size: 18pt; float: left; margin: 2px 3px 0 0; - cursor: pointer; -} + cursor: pointer; } @media (max-width: 767px) { HTML, BODY { - background-color: #fcfcfc; - } + background-color: #fcfcfc; } .sm-container { margin-top: 0px !important; - padding: 0 !important; - } + padding: 0 !important; } .list-group-item H5 { - font-size: 0.9rem; - } + font-size: 0.9rem; } .container { padding: 0px !important; - padding-top: 15px !important; - } + padding-top: 15px !important; } .group_header { - margin-left: 15px; - } + margin-left: 15px; } .navbar { margin-left: 0px; margin-top: 0px; width: 100%; - margin-bottom: 0; - } + margin-bottom: 0; } .btn-sm { line-height: 0.9rem; - font-size: 0.65rem; - } + font-size: 0.65rem; } .full-col-12 { padding-left: 0px; - padding-right: 0px; - } + padding-right: 0px; } .card { border: 0; border-radius: 0rem; padding: 0; - background-color: #ffffff; - } + background-color: #ffffff; } .card-body { font-size: 10pt; - padding: 10px 10px; - } + padding: 10px 10px; } .lg_number { - font-size: 7.8vw; - } + font-size: 7.8vw; } .stats_area { margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; - } + margin-bottom: 1.5rem !important; } .stats_area .col-4 { padding-left: 0; padding-right: 0; - font-size: 0.6rem; - } + font-size: 0.6rem; } .list-group-item { border-top: 1px solid #e4e4e4; - border: 0px; - } + border: 0px; } .list-group-item:first-child { border-top-left-radius: 0; - border-top-right-radius: 0; - } + border-top-right-radius: 0; } .list-group-item:last-child { border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - } + border-bottom-left-radius: 0; } .list-group-item P { - font-size: 0.7rem; - } + font-size: 0.7rem; } .service-chart-container { - height: 200px; - } -} + height: 200px; } } /*# sourceMappingURL=base.css.map */ diff --git a/source/tmpl/postman.json b/source/tmpl/postman.json index a6709687..658f18b1 100644 --- a/source/tmpl/postman.json +++ b/source/tmpl/postman.json @@ -955,8 +955,7 @@ ] } } - ], - "protocolProfileBehavior": {} + ] }, { "name": "Groups", @@ -1434,8 +1433,7 @@ ] } } - ], - "protocolProfileBehavior": {} + ] }, { "name": "Users", @@ -1918,8 +1916,7 @@ ] } } - ], - "protocolProfileBehavior": {} + ] }, { "name": "Notifiers", @@ -2112,8 +2109,7 @@ ] } } - ], - "protocolProfileBehavior": {} + ] }, { "name": "Messages", @@ -2590,8 +2586,7 @@ ] } } - ], - "protocolProfileBehavior": {} + ] }, { "name": "Checkins", @@ -3049,8 +3044,7 @@ ] } } - ], - "protocolProfileBehavior": {} + ] }, { "name": "Miscellaneous", @@ -3071,7 +3065,7 @@ " var jsonData = pm.response.json();", " pm.expect(jsonData.description).to.eql(\"Statping Monitoring Sample Data\");", " pm.expect(jsonData.using_cdn).to.eql(false);", - " pm.expect(jsonData.database).to.eql(\"sqlite\");", + " pm.expect(jsonData.config.connection).to.eql(\"sqlite\");", "});" ], "type": "text/javascript" @@ -3223,8 +3217,7 @@ ] } } - ], - "protocolProfileBehavior": {} + ] } ], "auth": { @@ -3258,6 +3251,5 @@ ] } } - ], - "protocolProfileBehavior": {} + ] } \ No newline at end of file diff --git a/types/core.go b/types/core.go index a20eec52..e00ae96f 100644 --- a/types/core.go +++ b/types/core.go @@ -50,5 +50,5 @@ type Core struct { Repos []PluginJSON `gorm:"-" json:"-"` AllPlugins []PluginActions `gorm:"-" json:"-"` Notifications []AllNotifiers `gorm:"-" json:"-"` - Config *DbConfig `gorm:"-" json:"-"` + Config *DbConfig `gorm:"-" json:"config"` } diff --git a/types/types.go b/types/types.go index e899dbda..7eee8c0a 100644 --- a/types/types.go +++ b/types/types.go @@ -38,22 +38,22 @@ func (h *Hit) BeforeCreate() (err error) { // DbConfig struct is used for the database connection and creates the 'config.yml' file type DbConfig struct { - DbConn string `yaml:"connection"` - DbHost string `yaml:"host"` - DbUser string `yaml:"user"` - DbPass string `yaml:"password"` - DbData string `yaml:"database"` - DbPort int64 `yaml:"port"` - ApiKey string `yaml:"api_key"` - ApiSecret string `yaml:"api_secret"` - Project string `yaml:"-"` - Description string `yaml:"-"` - Domain string `yaml:"-"` - Username string `yaml:"-"` - Password string `yaml:"-"` - Email string `yaml:"-"` - Error error `yaml:"-"` - Location string `yaml:"location"` - SqlFile string `yaml:"sqlfile,omitempty"` - LocalIP string `yaml:"-"` + DbConn string `yaml:"connection" json:"connection"` + DbHost string `yaml:"host" json:"-"` + DbUser string `yaml:"user" json:"-"` + DbPass string `yaml:"password" json:"-"` + DbData string `yaml:"database" json:"-"` + DbPort int64 `yaml:"port" json:"-"` + ApiKey string `yaml:"api_key" json:"-"` + ApiSecret string `yaml:"api_secret" json:"-"` + Project string `yaml:"-" json:"-"` + Description string `yaml:"-" json:"-"` + Domain string `yaml:"-" json:"-"` + Username string `yaml:"-" json:"-"` + Password string `yaml:"-" json:"-"` + Email string `yaml:"-" json:"-"` + Error error `yaml:"-" json:"-"` + Location string `yaml:"location" json:"-"` + SqlFile string `yaml:"sqlfile,omitempty" json:"-"` + LocalIP string `yaml:"-" json:"-"` }