fork download
  1. (defmacro if-valid-user
  2. ;; TODO: Add parameter validations
  3. ([params then]
  4. `(if-valid-user ~params ~then nil))
  5. ([params then else]
  6. (let [cred (:credentials params)
  7. pass (:pass params)]
  8. `(let [~'found-user (db/find-user ~cred)]
  9. (if (and
  10. ~'found-user
  11. ;; Compare credentials with those we got from the last query
  12. (hashers/check ~pass (:pass ~'found-user)))
  13. ~then
  14. ~else)))))
  15.  
  16. (defn handle-login [{:keys [params]}]
  17. (if-let [errors (validate-login params)]
  18. (-> (response/redirect "/login")
  19. (assoc :flash (assoc params :errors errors)))
  20. ;; Else
  21. (if-valid-user params
  22. (login-success art-thingy.handler/found-user)
  23. ;; Finding user failed
  24. (login-failure params))))
  25.  
Runtime error #stdin #stdout #stderr 1.75s 335104KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Exception in thread "main" java.lang.RuntimeException: Unable to resolve symbol: validate-login in this context, compiling:(/home/ruO8rK/prog.clj:17:19)
	at clojure.lang.Compiler.analyze(Compiler.java:6519)
	at clojure.lang.Compiler.analyze(Compiler.java:6461)
	at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3713)
	at clojure.lang.Compiler.analyzeSeq(Compiler.java:6711)
	at clojure.lang.Compiler.analyze(Compiler.java:6500)
	at clojure.lang.Compiler.access$200(Compiler.java:38)
	at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6105)
	at clojure.lang.Compiler.analyzeSeq(Compiler.java:6709)
	at clojure.lang.Compiler.analyze(Compiler.java:6500)
	at clojure.lang.Compiler.analyzeSeq(Compiler.java:6697)
	at clojure.lang.Compiler.analyze(Compiler.java:6500)
	at clojure.lang.Compiler.analyzeSeq(Compiler.java:6697)
	at clojure.lang.Compiler.analyze(Compiler.java:6500)
	at clojure.lang.Compiler.analyze(Compiler.java:6461)
	at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5837)
	at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6155)
	at clojure.lang.Compiler.analyzeSeq(Compiler.java:6709)
	at clojure.lang.Compiler.analyze(Compiler.java:6500)
	at clojure.lang.Compiler.analyzeSeq(Compiler.java:6697)
	at clojure.lang.Compiler.analyze(Compiler.java:6500)
	at clojure.lang.Compiler.analyze(Compiler.java:6461)
	at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5837)
	at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5272)
	at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3901)
	at clojure.lang.Compiler.analyzeSeq(Compiler.java:6707)
	at clojure.lang.Compiler.analyze(Compiler.java:6500)
	at clojure.lang.Compiler.analyzeSeq(Compiler.java:6697)
	at clojure.lang.Compiler.analyze(Compiler.java:6500)
	at clojure.lang.Compiler.access$200(Compiler.java:38)
	at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:560)
	at clojure.lang.Compiler.analyzeSeq(Compiler.java:6709)
	at clojure.lang.Compiler.analyze(Compiler.java:6500)
	at clojure.lang.Compiler.analyze(Compiler.java:6461)
	at clojure.lang.Compiler.eval(Compiler.java:6772)
	at clojure.lang.Compiler.load(Compiler.java:7195)
	at clojure.lang.Compiler.loadFile(Compiler.java:7151)
	at clojure.main$load_script.invoke(main.clj:274)
	at clojure.main$script_opt.invoke(main.clj:336)
	at clojure.main$main.doInvoke(main.clj:420)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.lang.Var.invoke(Var.java:379)
	at clojure.lang.AFn.applyToHelper(AFn.java:154)
	at clojure.lang.Var.applyTo(Var.java:700)
	at clojure.main.main(main.java:37)
Caused by: java.lang.RuntimeException: Unable to resolve symbol: validate-login in this context
	at clojure.lang.Util.runtimeException(Util.java:221)
	at clojure.lang.Compiler.resolveIn(Compiler.java:7005)
	at clojure.lang.Compiler.resolve(Compiler.java:6949)
	at clojure.lang.Compiler.analyzeSymbol(Compiler.java:6910)
	at clojure.lang.Compiler.analyze(Compiler.java:6482)
	... 43 more