198 199 defp execute(operation, name, query, opts) when is_list(opts) do 200 {adapter, %{cache: cache, repo: repo} = adapter_meta} = Ecto.Repo.Registry.lookup(name) 201 {query, opts} = repo.prepare_query(operation, query, opts) 202 query = attach_prefix(query, opts) 203 {query_meta, prepared, params} = Planner.query(query, operation, cache, adapter, 0) 204 205 case query_meta do 206 %{select: nil} -> 207 adapter.execute(adapter_meta, query_meta, prepared, params, opts) 208 14 query = 15 queryable 16 |> Ecto.Queryable.to_query() 17 |> Ecto.Query.Planner.ensure_select(true) 18 19 execute(:all, name, query, opts) |> elem(1) 20 end 21 22 def stream(name, queryable, opts) when is_list(opts) do 23 query = 24 queryable
141 142 %{query | combinations: combinations} 143 end 144 145 def one(name, queryable, opts) do 146 case all(name, queryable, opts) do 147 [one] -> one 148 [] -> nil 149 other -> raise Ecto.MultipleResultsError, queryable: queryable, count: length(other) 150 end 151 end 15 16 def telegram_login(conn, %{"initData" => init_data}) do 17 case Telegram.verify_init_data(init_data) do 18 {:ok, telegram_id} -> 19 user = 20 MayorGame.Repo.get_by(MayorGame.Auth.User, telegram_id: telegram_id) || 21 create_telegram_user(telegram_id) 22 23 conn 24 |> put_session(:telegram_id, telegram_id) 25 |> put_flash(:info, "Logged in successfully!") 1defmodule MayorGameWeb.AuthController do 2 use MayorGameWeb, :controller 3 4 alias MayorGame.Auth.Telegram 5 6 def telegram_auth(conn, _params) do
1defmodule MayorGameWeb.AuthController do 2 use MayorGameWeb, :controller 3 4 alias MayorGame.Auth.Telegram 5 6 def telegram_auth(conn, _params) do
349 metadata = %{metadata | conn: halted_conn} 350 :telemetry.execute([:phoenix, :router_dispatch, :stop], measurements, metadata) 351 halted_conn 352 %Plug.Conn{} = piped_conn -> 353 try do 354 plug.call(piped_conn, plug.init(opts)) 355 else 356 conn -> 357 measurements = %{duration: System.monotonic_time() - start} 358 metadata = %{metadata | conn: conn} 359 :telemetry.execute([:phoenix, :router_dispatch, :stop], measurements, metadata)