Skip to content

Commit f9a6a8b

Browse files
committed
Add User.get_login_url/0 to fetch KiteConnect login endpoint
1 parent 19b93bb commit f9a6a8b

File tree

3 files changed

+40
-0
lines changed

3 files changed

+40
-0
lines changed

config/config.exs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# This file is responsible for configuring your application
2+
# and its dependencies with the aid of the Mix.Config module.
3+
use Mix.Config
4+
5+
config :kite_connect_ex,
6+
api_key: "api-key",
7+
api_secret: "api-secret"

lib/kite_connect_ex/request.ex

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ defmodule KiteConnectEx.Request do
1616
recv_timeout: 5_000
1717
]
1818

19+
@spec api_version() :: String.t()
20+
def api_version, do: @api_version
21+
1922
@spec get(String.t(), map() | nil, list, list) :: Response.success() | Response.error()
2023
def get(path, query, headers, opts \\ []) do
2124
HTTPoison.get(

lib/kite_connect_ex/user.ex

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
defmodule KiteConnectEx.User do
2+
@moduledoc """
3+
Module to represent a user resource.
4+
5+
- [Docs](https://kite.trade/docs/connect/v3/user/)
6+
"""
7+
8+
alias KiteConnectEx.Request
9+
10+
@login_url "https://kite.zerodha.com/connect/login"
11+
12+
@doc """
13+
Get KiteConnect login endpoint
14+
15+
## Example
16+
17+
{:ok, url} = KiteConnectEx.User.get_login_url()
18+
"""
19+
@spec get_login_url() :: {:ok, String.t()}
20+
def get_login_url do
21+
query = URI.encode_query(%{v: Request.api_version(), api_key: api_key()})
22+
login_url = @login_url <> "?" <> query
23+
24+
{:ok, login_url}
25+
end
26+
27+
defp api_key do
28+
Application.get_env(:kite_connect_ex, :api_key)
29+
end
30+
end

0 commit comments

Comments
 (0)