mirror of
https://github.com/muety/wakapi.git
synced 2023-08-10 21:12:56 +03:00
feat: implement summaries compat endpoint (resolve #44)
fix: fix all time view model
This commit is contained in:
@@ -43,15 +43,14 @@ func MakeConnectionString(config *models.Config) string {
|
||||
}
|
||||
|
||||
func mySqlConnectionString(config *models.Config) string {
|
||||
location, _ := time.LoadLocation("Local")
|
||||
return fmt.Sprintf(
|
||||
"%s:%s@tcp(%s:%d)/%s?charset=utf8&parseTime=true&loc=%s",
|
||||
//location, _ := time.LoadLocation("Local")
|
||||
return fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8&parseTime=true&loc=%s",
|
||||
config.DbUser,
|
||||
config.DbPassword,
|
||||
config.DbHost,
|
||||
config.DbPort,
|
||||
config.DbName,
|
||||
location.String(),
|
||||
"Local",
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -5,9 +5,12 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
func StartOfDay() time.Time {
|
||||
ref := time.Now()
|
||||
return time.Date(ref.Year(), ref.Month(), ref.Day(), 0, 0, 0, 0, ref.Location())
|
||||
func StartOfToday() time.Time {
|
||||
return StartOfDay(time.Now())
|
||||
}
|
||||
|
||||
func StartOfDay(date time.Time) time.Time {
|
||||
return time.Date(date.Year(), date.Month(), date.Day(), 0, 0, 0, 0, date.Location())
|
||||
}
|
||||
|
||||
func StartOfWeek() time.Time {
|
||||
@@ -26,6 +29,21 @@ func StartOfYear() time.Time {
|
||||
return time.Date(ref.Year(), time.January, 1, 0, 0, 0, 0, ref.Location())
|
||||
}
|
||||
|
||||
func SplitRangeByDays(from time.Time, to time.Time) [][]time.Time {
|
||||
intervals := make([][]time.Time, 0)
|
||||
|
||||
for t1 := from; t1.Before(to); {
|
||||
t2 := StartOfDay(t1).Add(24 * time.Hour)
|
||||
if t2.After(to) {
|
||||
t2 = to
|
||||
}
|
||||
intervals = append(intervals, []time.Time{t1, t2})
|
||||
t1 = t2
|
||||
}
|
||||
|
||||
return intervals
|
||||
}
|
||||
|
||||
func FmtWakatimeDuration(d time.Duration) string {
|
||||
d = d.Round(time.Minute)
|
||||
h := d / time.Hour
|
||||
|
||||
@@ -9,18 +9,16 @@ import (
|
||||
|
||||
func ParseSummaryParams(r *http.Request) (*models.SummaryParams, error) {
|
||||
user := r.Context().Value(models.UserKey).(*models.User)
|
||||
|
||||
params := r.URL.Query()
|
||||
|
||||
interval := params.Get("interval")
|
||||
|
||||
from, err := ParseDate(params.Get("from"))
|
||||
if err != nil {
|
||||
switch interval {
|
||||
case models.IntervalToday:
|
||||
from = StartOfDay()
|
||||
from = StartOfToday()
|
||||
case models.IntervalLastDay:
|
||||
from = StartOfDay().Add(-24 * time.Hour)
|
||||
from = StartOfToday().Add(-24 * time.Hour)
|
||||
case models.IntervalLastWeek:
|
||||
from = StartOfWeek()
|
||||
case models.IntervalLastMonth:
|
||||
@@ -38,7 +36,7 @@ func ParseSummaryParams(r *http.Request) (*models.SummaryParams, error) {
|
||||
|
||||
recompute := params.Get("recompute") != "" && params.Get("recompute") != "false"
|
||||
|
||||
to := StartOfDay()
|
||||
to := StartOfToday()
|
||||
if live {
|
||||
to = time.Now()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user