Okay that's about everything
This commit is contained in:
parent
023ad47ae4
commit
d094ff036f
19 changed files with 236 additions and 79 deletions
|
|
@ -1,4 +1,5 @@
|
|||
defmodule EzcontainerRailway.Railway do
|
||||
alias EzcontainerRailway.Projects
|
||||
alias EzcontainerRailway.GraphqlClient
|
||||
def get_projects(token) do
|
||||
resp = GraphqlClient.query(
|
||||
|
|
@ -23,12 +24,89 @@ defmodule EzcontainerRailway.Railway do
|
|||
end
|
||||
end
|
||||
|
||||
def create_service(container, token) when is_map(container) do
|
||||
def get_services(token) do
|
||||
project_id = Projects.get_project_by_token(token).project_id
|
||||
resp = GraphqlClient.query(
|
||||
"""
|
||||
query getServices($projectId: String!) {
|
||||
project(id: $projectId) {
|
||||
services {
|
||||
edges {
|
||||
node {
|
||||
id
|
||||
name
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
""",
|
||||
token: token,
|
||||
variables: %{
|
||||
projectId: project_id
|
||||
}
|
||||
) |> format_response
|
||||
|
||||
case resp do
|
||||
{:error, _} -> resp
|
||||
{:ok, data} ->
|
||||
final =
|
||||
data["project"]["services"]["edges"]
|
||||
|> Enum.map(&(&1["node"]))
|
||||
|
||||
{:ok, final}
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def create_service(source, type, token) do
|
||||
resp = case type do
|
||||
"repo" -> create_service_from_repo(source, token)
|
||||
"image" -> create_service_from_image(source, token)
|
||||
end
|
||||
|
||||
case resp do
|
||||
{:error, _} -> resp
|
||||
{:ok, data} -> {:ok, data["serviceCreate"]}
|
||||
end
|
||||
end
|
||||
|
||||
defp create_service_from_image(source, token) do
|
||||
project_id = Projects.get_project_by_token(token).project_id
|
||||
GraphqlClient.query(
|
||||
"""
|
||||
mutation createService($projectId: String!, $image: String!, $name: String!){
|
||||
serviceCreate(input: {projectId: $projectId, name: $name source: { image: $image }}) {
|
||||
id
|
||||
}
|
||||
}
|
||||
""",
|
||||
variables: container
|
||||
)
|
||||
token: token,
|
||||
variables: %{
|
||||
projectId: project_id,
|
||||
image: source,
|
||||
name: source
|
||||
}
|
||||
) |> format_response
|
||||
end
|
||||
|
||||
defp create_service_from_repo(source, token) do
|
||||
project_id = Projects.get_project_by_token(token).project_id
|
||||
GraphqlClient.query(
|
||||
"""
|
||||
mutation createService($projectId: String!, $repo: String!, $name: String!){
|
||||
serviceCreate(input: {projectId: $projectId, name: $name source: { repo: $repo }}) {
|
||||
id
|
||||
}
|
||||
}
|
||||
""",
|
||||
token: token,
|
||||
variables: %{
|
||||
projectId: project_id,
|
||||
repo: source,
|
||||
name: source
|
||||
}
|
||||
) |> format_response
|
||||
end
|
||||
|
||||
def create_project(token) do
|
||||
|
|
@ -51,6 +129,21 @@ defmodule EzcontainerRailway.Railway do
|
|||
end
|
||||
end
|
||||
|
||||
def delete_container(token, service_id) do
|
||||
GraphqlClient.query(
|
||||
"""
|
||||
mutation deleteContainer(id: String!) {
|
||||
serviceDelete(id: $id)
|
||||
}
|
||||
""",
|
||||
token: token,
|
||||
variables: %{
|
||||
id: service_id
|
||||
}
|
||||
)
|
||||
|> format_response
|
||||
end
|
||||
|
||||
def get_user_id(token) do
|
||||
{:ok, resp} = GraphqlClient.query(
|
||||
"""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue