just need to add creating services, deploying them, and showing logs

This commit is contained in:
benbot 2023-10-25 05:41:01 -04:00
parent a3a4af7965
commit 023ad47ae4
6 changed files with 99 additions and 29 deletions

View file

@ -1,7 +1,7 @@
defmodule EzcontainerRailway.Railway do
alias EzcontainerRailway.GraphqlClient
def get_projects(token) do
GraphqlClient.query(
resp = GraphqlClient.query(
"""
query {
projects {
@ -15,7 +15,12 @@ defmodule EzcontainerRailway.Railway do
}
""",
token: token
)
) |> format_response
case resp do
{:error, _} -> resp
{:ok, data} -> {:ok, data["projects"]["edges"]}
end
end
def create_service(container, token) when is_map(container) do
@ -26,41 +31,51 @@ defmodule EzcontainerRailway.Railway do
)
end
def create_project(name, token) do
GraphqlClient.query(
def create_project(token) do
resp = GraphqlClient.query(
"""
mutation {
projectCreate(input: {name: $name}) {
projectCreate(input: {}) {
id
name
}
}
""",
token: token,
variables: %{ "name" => name }
token: token
)
|> format_response
end
def is_token_valid?(token) do
resp = get_projects(token).body
if has_errors?(resp) do
false
else
true
case resp do
{:error, _} -> resp
{:ok, data} -> {:ok, data["projectCreate"]["id"]}
end
end
def has_errors?(resp) when is_map(resp) do
def get_user_id(token) do
{:ok, resp} = GraphqlClient.query(
"""
query {
me {
id
}
}
""",
token: token
)
|> format_response
{:ok, resp["me"]["id"]}
end
def has_errors?(resp) do
has_errors_in_array?(resp["errors"])
end
defp format_response(resp) when is_map(resp) do
if has_errors?(resp) do
{:error, resp["error"]}
if has_errors?(resp.body) do
{:error, resp.body["errors"]}
else
{:ok, resp["data"]}
{:ok, resp.body["data"]}
end
end