(defmacro if-valid-user ;; TODO: Add parameter validations ([params then] `(if-valid-user ~params ~then nil)) ([params then else] (let [cred (:credentials params) pass (:pass params)] `(let [~'found-user (db/find-user ~cred)] (if (and ~'found-user ;; Compare credentials with those we got from the last query (hashers/check ~pass (:pass ~'found-user))) ~then ~else))))) (defn handle-login [{:keys [params]}] (if-let [errors (validate-login params)] (-> (response/redirect "/login") (assoc :flash (assoc params :errors errors))) ;; Else (if-valid-user params (login-success art-thingy.handler/found-user) ;; Finding user failed (login-failure params))))
Standard input is empty
Standard output is empty
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