Good morning. I have the following problem. I should read the contents of the following Dynamo table through the ExAws library:
{
"actorengine": "HOT-TCM",
"actortype": "BUSINESS_ACTOR",
"actorversionclass": 1,
"classified": "UNCLASSIFIED",
"creatorclass": "ivan.casiraghi@gmail.com",
"datadeploy": "2019-02-11 16:55:13",
"encryption": "NOENCRYPTION",
"id": "1234567890",
"inclassparameters": [
{
"id": "1222",
"keyspace": "eyspace"
}
],
"keyspace": "it0125maxwellgroup",
"linknamemodel": "https://s3-eu-west.amazonaws.com/maxwell-abe-deploy/actor/it0125maxwellgroup/prova01_1.0.json",
"name": "prova01",
"security": "PUBLIC",
"statedeploy": "ACTIVE"
}
This is my module:
defmodule ElixirCrudWeb.Resolver.Resolver do
@moduledoc false
alias ExAws.Dynamo
defmodule InClassParameter do
@derive [ExAws.Dynamo.Encodable]
defstruct [:keyspace, :id]
end
defmodule ActorClassBusiness do
@derive [ExAws.Dynamo.Encodable]
defstruct [:id, :actorversionclass, :actorengine, :actortype, :classified, :creatorclass, :datadeploy,
:encryption, :keyspace, :linknamemodel, :name, :security, :statedeploy,
inClassParameter: [%InClassParameter{},]
]
end
def select_one(_parent, %{id: id}, _resolution) do
item = Dynamo.get_item("actorClassBusiness", %{id: id}) |> ExAws.request!
wrap_result(id, item)
end
defp wrap_result(key, map) when map == %{} do
{:error, "actorClassBusiness ID #{key} not found"}
end
defp wrap_result(_, map) do
IO.puts("Ecco i dati #{inspect(map)}")
item = Dynamo.decode_item(map, as: ActorClassBusiness)
{:ok, item}
end
end
If I run the query from GraphiQl:
query read{
selectOne(id: "14c41f17-38b8-41db-af8b-111f6165932a"){
id
actorengine
actortype
actorversionclass
classified
creatorclass
datadeploy
encryption
statedeploy
inclassparameters{
id
keyspace
}
}
}
I get the following:
{
"data": {
"selectOne": {
"actorengine": "HOT-TCM",
"actortype": "BUSINESS_ACTOR",
"actorversionclass": 1,
"classified": "UNCLASSIFIED",
"creatorclass": "ascanio.casiraghi@gmail.com",
"datadeploy": "2019-03-18 01:48:59",
"encryption": "NOENCRYPTION",
"id": "14c41f17-38b8-41db-af8b-111f6165932a",
"inclassparameters": null,
"statedeploy": "ACTIVE"
}
}
}
inclassparameter is NULL. Where am I wrong?
Thank you