Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
8b6405441a | |||
aff927b4f4 | |||
7c7695b891 |
@ -1,7 +1,7 @@
|
||||
## Personal Time Keeping API Interface
|
||||
## ===================================
|
||||
|
||||
import asyncdispatch, base64, bcrypt, cliutils, docopt, jester, json, logging,
|
||||
import asyncdispatch, base64, bcrypt, cliutils, docopt, httpcore, jester, json, logging,
|
||||
sequtils, strutils, os, tables, times, uuids
|
||||
|
||||
import nre except toSeq
|
||||
@ -61,10 +61,10 @@ template checkAuth(cfg: PtkApiCfg) =
|
||||
var user {.inject.}: PtkUser = PtkUser()
|
||||
|
||||
try:
|
||||
if not request.headers.hasKey("Authorization"):
|
||||
if not headers(request).hasKey("Authorization"):
|
||||
raiseEx "No auth token."
|
||||
|
||||
let headerVal = request.headers["Authorization"]
|
||||
let headerVal = headers(request)["Authorization"]
|
||||
if not headerVal.startsWith("Basic "):
|
||||
raiseEx "Invalid Authorization type (only 'Basic' is supported)."
|
||||
|
||||
|
@ -22,10 +22,18 @@ const ISO_TIME_FORMAT* = "yyyy-MM-dd'T'HH:mm:ss"
|
||||
## The canonical time format used by PTK.
|
||||
|
||||
const TIME_FORMATS* = @[
|
||||
(fmtStr: "yyyy-MM-dd'T'HH:mm:sszzz", offsetFrom: OffsetFrom.None),
|
||||
(fmtStr: "yyyy-MM-dd HH:mm:sszzz", offsetFrom: OffsetFrom.None),
|
||||
(fmtStr: "yyyy-MM-dd'T'HH:mm:sszz", offsetFrom: OffsetFrom.None),
|
||||
(fmtStr: "yyyy-MM-dd HH:mm:sszz", offsetFrom: OffsetFrom.None),
|
||||
(fmtStr: "yyyy-MM-dd'T'HH:mm:ssz", offsetFrom: OffsetFrom.None),
|
||||
(fmtStr: "yyyy-MM-dd HH:mm:ssz", offsetFrom: OffsetFrom.None),
|
||||
(fmtStr: "yyyy-MM-dd'T'HH:mm:ss", offsetFrom: OffsetFrom.None),
|
||||
(fmtStr: "yyyy-MM-dd HH:mm:ss", offsetFrom: OffsetFrom.None),
|
||||
(fmtStr: "yyyy-MM-dd'T'HH:mm", offsetFrom: OffsetFrom.None),
|
||||
(fmtStr: "yyyy-MM-dd HH:mm", offsetFrom: OffsetFrom.None),
|
||||
(fmtStr: "yyyy-MM-dd", offsetFrom: OffsetFrom.None),
|
||||
(fmtStr: "yyyy-MM", offsetFrom: OffsetFrom.None),
|
||||
(fmtStr: "MM-dd'T'HH:mm:ss", offsetFrom: OffsetFrom.Year),
|
||||
(fmtStr: "MM-dd HH:mm:ss", offsetFrom: OffsetFrom.Year),
|
||||
(fmtStr: "MM-dd'T'HH:mm", offsetFrom: OffsetFrom.Year),
|
||||
@ -48,15 +56,16 @@ proc getIfExists*(n: JsonNode, key: string): JsonNode =
|
||||
|
||||
proc parseTime*(timeStr: string): DateTime =
|
||||
## Helper to parse time strings trying multiple known formats.
|
||||
let now = now()
|
||||
|
||||
for fmt in TIME_FORMATS:
|
||||
try:
|
||||
let now = now()
|
||||
let parsed = parse(timeStr, fmt.fmtStr)
|
||||
case fmt.offsetFrom:
|
||||
of OffsetFrom.None:
|
||||
return parsed
|
||||
of OffsetFrom.Year:
|
||||
return initDateTime(parsed.monthday, parsed.month, now.year,
|
||||
return dateTime(now.year, parsed.month, parsed.monthday,
|
||||
parsed.hour, parsed.minute, parsed.second, parsed.nanosecond,
|
||||
now.timezone)
|
||||
of OffsetFrom.Month:
|
||||
|
@ -1 +1 @@
|
||||
const PTK_VERSION* = "1.0.9"
|
||||
const PTK_VERSION* = "1.0.12"
|
10
ptk.nimble
10
ptk.nimble
@ -1,6 +1,6 @@
|
||||
# Package
|
||||
|
||||
version = "1.0.9"
|
||||
version = "1.0.12"
|
||||
author = "Jonathan Bernard"
|
||||
description = "Personal Time Keeper"
|
||||
license = "MIT"
|
||||
@ -16,10 +16,10 @@ requires @[
|
||||
"isaac >= 0.1.3",
|
||||
"bcrypt",
|
||||
"jester 0.5.0",
|
||||
"https://git.jdb-labs.com/jdb/nim-lang-utils.git",
|
||||
"https://git.jdb-labs.com/jdb/nim-cli-utils.git >= 0.6.5",
|
||||
"https://git.jdb-labs.com/jdb/nim-time-utils.git >= 0.5.2",
|
||||
"https://git.jdb-labs.com/jdb/update-nim-package-version"
|
||||
"https://git.jdb-software.com/jdb/nim-lang-utils.git",
|
||||
"https://git.jdb-software.com/jdb/nim-cli-utils.git >= 0.6.5",
|
||||
"https://git.jdb-software.com/jdb/nim-time-utils.git >= 0.5.2",
|
||||
"https://git.jdb-software.com/jdb/update-nim-package-version"
|
||||
]
|
||||
|
||||
task updateVersion, "Update the version of this package.":
|
||||
|
Reference in New Issue
Block a user