How to manage business logic in rails

One of the main problems, when an application grows, is how to keep organized the business logic. Following the “rails way” can conduce to a common result called obese models & obese controllers. This means that your models and your controllers keep growing when you continuously add the business logic in the same place. Another inconvenience is that you are coupling your use cases or business logic to the infrastructure (the framework, the database, and the input interface)....

octubre 25, 2022 · Me

Testing the Phoenix controllers without rebinding the conn

Maybe, for readability purposes, you prefer to avoid variable rebinding. For example, take this generated test code from mix phx.gen.auth task: test "renders log in page", %{conn: conn} do conn = get(conn, Routes.user_session_path(conn, :new)) response = html_response(conn, 200) assert response =~ "Log in" assert response =~ "Register</a>" assert response =~ "Forgot password?</a>" end It’s completely ok. But, you can prefer something like this: test "renders log in page", %{conn: conn} do response = conn |> get(Routes....

mayo 11, 2022 · Me

How to build a flexible API client in Elixir

Normally, to talk with an external API we will search some library to do the work for us. Sometimes, this search is infructuous for some of the next reasons: Exist one or more libraries but are unmaintained. There is no library at all. Existing libraries do not fit our requirements. At this point, you could take the following paths. 1 Build a service module in your app Maybe you just need to consume some endpoints and already use some HTTP client like Tesla....

enero 19, 2022 · Me

Procesando archivos de forma asíncrona con Elixir

Escenario A veces, no todo es un escenario perfecto y puede que para alimentar de información tu aplicación necesitas; no conectarte a una API, si no subir archivos CSV’s. Si es el caso, no quieres que quien sea responsable de esta tarea tenga que subir de 100 en 100 registros por que si sube un archivo con 101, el servidor tarda demasiado en responder, el navegador muestra un error de timeout y la carga se interrumpe....

julio 14, 2020 · Me

Validación de datos con PHP y filter_var()

Ahora que sabemos como sanear variables en PHP aprenderemos a validar datos comunes utilizando la función filter_var() y sus filtro predefinidos. A diferencia de la entrada pasada utilizaremos los filtros de validación en lugar de los de saneamiento. Recordemos el formulario del ejemplo anterior: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Formulario sencillo</title> <link rel="stylesheet" href=""> </head> <body> <form action="datos.php" method="POST" > <label> Nombre </label> <input type="text" name="nombre" required> <label> Telefono </label> <input type="text" name="telefono" required> <label> Email </label> <input type="text" name="email" required> <label> Mensaje </label> <textarea rows="4" cols="0" name="mensaje" required> </textarea> </form> </body> </html> Después de utilizar filter_var() para sanear los datos podemos utilizarla para validarlos como sigue:...

junio 17, 2015 · Me