diff --git a/api/auth.go b/api/auth.go
index 931712b..4a2dc6c 100644
--- a/api/auth.go
+++ b/api/auth.go
@@ -77,6 +77,13 @@ func (api *WebAPI) Login(r *Request) {
}).Info("Logged in")
}
+func (api *WebAPI) Logout(r *Request) {
+
+ sess := api.Session.StartFasthttp(r.Ctx)
+ sess.Clear()
+ r.Ctx.Response.SetStatusCode(204)
+}
+
func (api *WebAPI) Register(r *Request) {
req := &RegisterRequest{}
diff --git a/api/main.go b/api/main.go
index a84d592..f53c15c 100644
--- a/api/main.go
+++ b/api/main.go
@@ -102,6 +102,7 @@ func New() *WebAPI {
api.router.POST("/register", LogRequestMiddleware(api.Register))
api.router.POST("/login", LogRequestMiddleware(api.Login))
+ api.router.GET("/logout", LogRequestMiddleware(api.Logout))
api.router.GET("/account", LogRequestMiddleware(api.AccountDetails))
api.router.NotFound = func(ctx *fasthttp.RequestCtx) {
diff --git a/config.yml b/config.yml
index c8cbd16..3d86868 100755
--- a/config.yml
+++ b/config.yml
@@ -21,5 +21,5 @@ session:
expiration: "25m"
monitoring:
- snapshot_interval: "10s"
- history_length: "3000h"
+ snapshot_interval: "60s"
+ history_length: "4h"
diff --git a/storage/monitoring.go b/storage/monitoring.go
index 50b0eb8..eec4f84 100644
--- a/storage/monitoring.go
+++ b/storage/monitoring.go
@@ -2,6 +2,7 @@ package storage
import (
"github.com/Sirupsen/logrus"
+ "github.com/simon987/task_tracker/config"
"time"
)
@@ -19,7 +20,7 @@ func (database *Database) MakeProjectSnapshots() {
startTime := time.Now()
db := database.getDB()
- _, err := db.Exec(`
+ insertRes, err := db.Exec(`
INSERT INTO project_monitoring_snapshot
(project, new_task_count, failed_task_count, closed_task_count, worker_access_count,
awaiting_verification_task_count, timestamp)
@@ -35,9 +36,17 @@ func (database *Database) MakeProjectSnapshots() {
extract(epoch from now() at time zone 'utc')
FROM project`)
handleErr(err)
+ inserted, _ := insertRes.RowsAffected()
+
+ res, err := db.Exec(`DELETE FROM project_monitoring_snapshot WHERE timestamp < $1`,
+ int64(time.Now().Unix())-int64(config.Cfg.MonitoringHistory.Seconds()))
+ handleErr(err)
+ deleted, _ := res.RowsAffected()
logrus.WithFields(logrus.Fields{
- "took": time.Now().Sub(startTime),
+ "took": time.Now().Sub(startTime),
+ "add": inserted,
+ "remove": deleted,
}).Trace("Took monitoring snapshot")
}
diff --git a/web/angular/src/app/account-details/account-details.component.css b/web/angular/src/app/account-details/account-details.component.css
index e69de29..4262683 100644
--- a/web/angular/src/app/account-details/account-details.component.css
+++ b/web/angular/src/app/account-details/account-details.component.css
@@ -0,0 +1,3 @@
+mat-divider {
+ margin: 1em 0 !important;
+}
diff --git a/web/angular/src/app/account-details/account-details.component.html b/web/angular/src/app/account-details/account-details.component.html
index bbca006..f9e4878 100644
--- a/web/angular/src/app/account-details/account-details.component.html
+++ b/web/angular/src/app/account-details/account-details.component.html
@@ -1,5 +1,5 @@
-
+
{{"account.title" | translate}}
@@ -11,19 +11,22 @@
{{"account.username" | translate}}:
- {{account.username}}
+ {{authService.account.username}}
{{"account.metadata" | translate}}
- {{account | json}}
+ {{authService.account | json}}
+
+
+
-
-
+
+
diff --git a/web/angular/src/app/account-details/account-details.component.ts b/web/angular/src/app/account-details/account-details.component.ts
index 1c7f8d5..8ace18e 100644
--- a/web/angular/src/app/account-details/account-details.component.ts
+++ b/web/angular/src/app/account-details/account-details.component.ts
@@ -8,13 +8,13 @@ import {AuthService} from "../auth.service";
})
export class AccountDetailsComponent implements OnInit {
- account: Manager;
-
- constructor(private authService: AuthService) {
+ constructor(public authService: AuthService) {
}
ngOnInit() {
- this.account = this.authService.account;
}
+ public logout() {
+ this.authService.logout();
+ }
}
diff --git a/web/angular/src/app/api.service.ts b/web/angular/src/app/api.service.ts
index 7d9edf5..a631656 100755
--- a/web/angular/src/app/api.service.ts
+++ b/web/angular/src/app/api.service.ts
@@ -45,6 +45,10 @@ export class ApiService {
return this.http.post(this.url + "/login", credentials, this.options)
}
+ logout() {
+ return this.http.get(this.url + "/logout", this.options)
+ }
+
getAccountDetails() {
return this.http.get(this.url + "/account", this.options)
}
diff --git a/web/angular/src/app/app.component.html b/web/angular/src/app/app.component.html
index 435c16c..d6278ca 100755
--- a/web/angular/src/app/app.component.html
+++ b/web/angular/src/app/app.component.html
@@ -29,8 +29,12 @@
-
+