@@ -1,15 +1,27 @@
|
||||
import std/strutils
|
||||
import jsony
|
||||
import ../types/session
|
||||
from ../../types import Session
|
||||
from ../../types import Session, SessionKind
|
||||
|
||||
proc parseSession*(raw: string): Session =
|
||||
let
|
||||
session = raw.fromJson(RawSession)
|
||||
id = session.oauthToken[0 ..< session.oauthToken.find('-')]
|
||||
let session = raw.fromJson(RawSession)
|
||||
let kind = if session.kind == "": "oauth" else: session.kind
|
||||
|
||||
result = Session(
|
||||
id: parseBiggestInt(id),
|
||||
oauthToken: session.oauthToken,
|
||||
oauthSecret: session.oauthTokenSecret
|
||||
)
|
||||
case kind
|
||||
of "oauth":
|
||||
let id = session.oauthToken[0 ..< session.oauthToken.find('-')]
|
||||
result = Session(
|
||||
kind: SessionKind.oauth,
|
||||
id: parseBiggestInt(id),
|
||||
oauthToken: session.oauthToken,
|
||||
oauthSecret: session.oauthTokenSecret
|
||||
)
|
||||
of "cookie":
|
||||
result = Session(
|
||||
kind: SessionKind.cookie,
|
||||
id: 999,
|
||||
authToken: session.authToken,
|
||||
ct0: session.ct0
|
||||
)
|
||||
else:
|
||||
raise newException(ValueError, "Unknown session kind: " & kind)
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
type
|
||||
RawSession* = object
|
||||
kind*: string
|
||||
oauthToken*: string
|
||||
oauthTokenSecret*: string
|
||||
authToken*: string
|
||||
ct0*: string
|
||||
|
||||
Reference in New Issue
Block a user