diff --git a/lib/towerops/gaiia/client.ex b/lib/towerops/gaiia/client.ex index 2eca59e2..c97d2059 100644 --- a/lib/towerops/gaiia/client.ex +++ b/lib/towerops/gaiia/client.ex @@ -40,7 +40,10 @@ defmodule Towerops.Gaiia.Client do edges { node { id - status + status { + id + name + } } } } @@ -93,7 +96,10 @@ defmodule Towerops.Gaiia.Client do edges { node { id - status + status { + id + name + } ipAddressV4 model { name @@ -127,7 +133,10 @@ defmodule Towerops.Gaiia.Client do edges { node { id - status + status { + id + name + } productVersion { product { name diff --git a/lib/towerops/gaiia/sync.ex b/lib/towerops/gaiia/sync.ex index 6a9c6993..9988056a 100644 --- a/lib/towerops/gaiia/sync.ex +++ b/lib/towerops/gaiia/sync.ex @@ -79,7 +79,7 @@ defmodule Towerops.Gaiia.Sync do defp map_account(node) do subs = get_in(node, ["billingSubscriptions", "edges"]) || [] - active_count = Enum.count(subs, &(&1["node"]["status"] == "Active")) + active_count = Enum.count(subs, &(get_in(&1, ["node", "status", "name"]) == "Active")) %{ gaiia_id: node["id"], @@ -119,7 +119,7 @@ defmodule Towerops.Gaiia.Sync do %{ gaiia_id: node["id"], name: get_in(node, ["model", "name"]), - status: node["status"], + status: get_in(node, ["status", "name"]), serial_number: nil, mac_address: nil, ip_address: node["ipAddressV4"], @@ -142,7 +142,7 @@ defmodule Towerops.Gaiia.Sync do %{ gaiia_id: node["id"], account_gaiia_id: get_in(node, ["entity", "id"]), - status: node["status"], + status: get_in(node, ["status", "name"]), product_name: get_in(node, ["productVersion", "product", "name"]), mrr_amount: mrr_amount, currency: get_in(node, ["productVersion", "currency"]), diff --git a/test/towerops/gaiia/sync_test.exs b/test/towerops/gaiia/sync_test.exs index ab60260b..9c600437 100644 --- a/test/towerops/gaiia/sync_test.exs +++ b/test/towerops/gaiia/sync_test.exs @@ -154,7 +154,7 @@ defmodule Towerops.Gaiia.SyncTest do %{ "node" => %{ "id" => "sub-1", - "status" => "Active" + "status" => %{"id" => "sub-status-1", "name" => "Active"} } } ] @@ -208,7 +208,7 @@ defmodule Towerops.Gaiia.SyncTest do %{ "node" => %{ "id" => "item-1", - "status" => "Active", + "status" => %{"id" => "inv-status-1", "name" => "Active"}, "ipAddressV4" => "10.0.0.1", "model" => %{ "name" => "airFiber 5XHD", @@ -236,7 +236,7 @@ defmodule Towerops.Gaiia.SyncTest do %{ "node" => %{ "id" => "sub-1", - "status" => "Active", + "status" => %{"id" => "sub-status-1", "name" => "Active"}, "productVersion" => %{ "product" => %{"name" => "100Mbps Unlimited"}, "price" => 7999,