Refactor on*Post procedures.

This commit is contained in:
Dominik Picheta 2018-05-14 21:23:44 +01:00
commit 7f895123f9
3 changed files with 23 additions and 49 deletions

View file

@ -40,4 +40,23 @@ when defined(js):
let e = error.get()
if (e.errorFields.len == 1 and e.errorFields[0] == name) or isLast:
p(class="form-input-hint"):
text e.message
text e.message
template postFinished*(onSuccess: untyped): untyped =
state.loading = false
let status = httpStatus.HttpCode
if status == Http200:
onSuccess
else:
# TODO: Karax should pass the content-type...
try:
let parsed = parseJson($response)
let error = to(parsed, PostError)
state.error = some(error)
except:
kout(getCurrentExceptionMsg().cstring)
state.error = some(PostError(
errorFields: @[],
message: "Unknown error occurred."
))

View file

@ -17,24 +17,9 @@ when defined(js):
error: Option[PostError]
proc onLogInPost(httpStatus: int, response: kstring, state: LoginModal) =
state.loading = false
let status = httpStatus.HttpCode
if status == Http200:
postFinished:
state.shown = false
state.onLogIn()
else:
# TODO: Karax should pass the content-type...
try:
let parsed = parseJson($response)
let error = to(parsed, PostError)
state.error = some(error)
except:
kout(getCurrentExceptionMsg().cstring)
state.error = some(PostError(
errorFields: @[],
message: "Unknown error occurred."
))
proc onLogInClick(ev: Event, n: VNode, state: LoginModal) =
state.loading = true

View file

@ -40,24 +40,9 @@ when defined(js):
state.shown = true
proc onPreviewPost(httpStatus: int, response: kstring, state: ReplyBox) =
state.loading = false
let status = httpStatus.HttpCode
if status == Http200:
postFinished:
kout(response)
state.rendering = some[kstring](response)
else:
# TODO: login has similar code, abstract this.
try:
let parsed = parseJson($response)
let error = to(parsed, PostError)
state.error = some(error)
except:
kout(getCurrentExceptionMsg().cstring)
state.error = some(PostError(
errorFields: @[],
message: "Unknown error occurred."
))
proc onPreviewClick(e: Event, n: VNode, state: ReplyBox) =
state.preview = true
@ -71,25 +56,10 @@ when defined(js):
(s: int, r: kstring) => onPreviewPost(s, r, state))
proc onReplyPost(httpStatus: int, response: kstring, state: ReplyBox) =
state.loading = false
let status = httpStatus.HttpCode
if status == Http200:
postFinished:
state.text = ""
state.shown = false
state.onPost(parseJson($response).getInt())
else:
# TODO: login has similar code, abstract this.
try:
let parsed = parseJson($response)
let error = to(parsed, PostError)
state.error = some(error)
except:
kout(getCurrentExceptionMsg().cstring)
state.error = some(PostError(
errorFields: @[],
message: "Unknown error occurred."
))
proc onReplyClick(e: Event, n: VNode, state: ReplyBox,
thread: Thread, replyingTo: Option[Post]) =