Fork me on GitHub
#duct
<
2019-06-10
>
y.khmelevskii05:06:19

@romain I use Reitit in duct together with pedestal

Ahmed Hassan06:06:31

Together with pedestal?

romain11:06:06

Do you have any sample project to show or module you built to replace ataraxis with reitit?

y.khmelevskii05:06:36

@romain I will try to push sample project to github this weekend

👍 8
romain06:06:02

Thanks mate :)

y.khmelevskii17:06:36

Hi @romain. I’ve just added duct + pedestal + reitit example https://github.com/khmelevskii/duct-pedestal-reitit Please pay attention, I added duct.module/sql and configured it using postgres. So you should run postgres database or comment duct.module/sql parts before run app

👍 16
Ahmed Hassan17:06:58

@y.khmelevskii What's reason behind this setup?

Ahmed Hassan17:06:39

I mean pedestal already has router, and why do we need duct here?

y.khmelevskii18:06:22

@UCMNZLJ93 I love reitit because it’s data-driven router. I can describe routes in one place and use them on backend and frontend. Also coercion is great! You can read reasons of using reitit in pedestal instead of native pedestal router here https://metosin.github.io/reitit/http/pedestal.html Reitit benchmarks looks awesome too https://github.com/metosin/reitit/blob/master/doc/performance.md About duct. For me it’s great framework with data-driven architecture based on integrant. It’s very easy to describe module dependencies and mock them during tests. And about pedestal, I like interceptors and they very useful for me. I store some logic in their for manage different cases

👍 4
romain18:06:27

Oh great! I'll give a look this week but I thank you in advance :)

👍 4
romain18:06:29

You tried luminus? I like it but I find it too boilerplate for small project

y.khmelevskii18:06:01

No, I didn’t use luminus

Ahmed Hassan12:06:29

I think you are using Duct and Integrant here only for state management of server side, you can use Mount for this purpose too.

Ahmed Hassan12:06:06

Is it possible to use these with CLJ deps tools? because I'm using it instead of leiningen. And this setup depends on lein -duct

y.khmelevskii06:06:24

Hi gents! Can you please explain me why duct.database/sql doesn’t work when I configure connection in config.edn not dev.edn. I catch the following exception:

class duct.database.sql.Boundary cannot be cast to class clojure.lang.IFn
   (duct.database.sql.Boundary is in unnamed module of loader
   clojure.lang.DynamicClassLoader @1cc6aa6c; clojure.lang.IFn is in unnamed
   module of loader 'app')

y.khmelevskii06:06:43

so, if in example lein new duct my-app +api +ataraxy +example +postgres I will moved duct.database/sql section from dev.edn to config.edn I with catch this problem

jahson06:06:58

@y.khmelevskii Hi. Can you tell me the version of duct yo’re using?

y.khmelevskii06:06:23

@jahson I used last versions:

duct/core           {:mvn/version "0.7.0"}
  duct/module.sql     {:mvn/version "0.5.0"}

jahson06:06:39

Where do you place your duct.database/sql section in config.edn? It seems like you’ve placed it outside of the base profile?

jahson06:06:39

I got the error, and the cause is the wrong placement of :duct.database/sql configuration. Basically it should be in :duct.profile/base section. The reason is that in the version 0.11 of duct framework the profiles were added, and now the first level of keys in config is for modules / profiles.

y.khmelevskii07:06:11

@jahson I got you, thank you!

y.khmelevskii07:06:59

and one more question. I use ragtime and I want to move description af all migrations to separate migration.edn. In previous version I could use :duct.core/include ["migration"] but now I should use {:duct.profile/migration #duct/include "migration"]}. But it doesn’t work for me No method in multimethod 'init-key' for dispatch value: :duct.profile/migration

jahson07:06:40

I think you could just put something like :duct.migrator/ragtime {:migrations #duct/include "migrations"} or :duct.migrator/ragtime {:migrations [#duct/include "migration1" ...]}. What yo’re trying to do is to include the profile called migration, but your profile isn’t derived from :duct/profile. You should look for duct_hierarchy.edn in src directory and add the derivation, like in https://github.com/duct-framework/core/blob/master/src/duct_hierarchy.edn

y.khmelevskii19:06:19

thank you for explanation @jahson!

y.khmelevskii17:06:36

Hi @romain. I’ve just added duct + pedestal + reitit example https://github.com/khmelevskii/duct-pedestal-reitit Please pay attention, I added duct.module/sql and configured it using postgres. So you should run postgres database or comment duct.module/sql parts before run app

👍 16