Skip to content

Commit

Permalink
Merge pull request #28 from moreal/PDX-453
Browse files Browse the repository at this point in the history
Fallback for migrated states
  • Loading branch information
moreal authored Apr 5, 2024
2 parents 02cfa49 + 23b3ac4 commit d3fc286
Showing 1 changed file with 17 additions and 11 deletions.
28 changes: 17 additions & 11 deletions NineChroniclesUtilBackend/Controllers/AgentController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,24 +25,30 @@ public async Task<AvatarsResponse> GetAvatars(string agentAddress, IStateService
{
async Task<List<AvatarState>> GetAvatarsState(Address agentAddress)
{
var rawState = await stateService.GetState(agentAddress);
if (rawState is not Dictionary agentStateDictionary)
var rawState = await stateService.GetState(agentAddress, Addresses.Agent) ??
await stateService.GetState(agentAddress);
var agentState = rawState switch
{
throw new ArgumentException(nameof(agentAddress));
}
Dictionary agentStateDictionary => new AgentState(agentStateDictionary),
List agentStateList => new AgentState(agentStateList),
_ => throw new ArgumentException(nameof(agentAddress)),
};

List<AvatarState> avatars = new List<AvatarState>();

var agentState = new AgentState(agentStateDictionary);
foreach(var avatarAddressKey in agentState.avatarAddresses.Keys)
{
var rawAvatarState = await stateService.GetState(agentState.avatarAddresses[avatarAddressKey]);
var avatarAddress = agentState.avatarAddresses[avatarAddressKey];
var rawAvatarState =
await stateService.GetState(avatarAddress, Addresses.Avatar) ??
await stateService.GetState(avatarAddress);

if (rawAvatarState is not Dictionary avatarStateDictionary)
var avatarState = rawAvatarState switch
{
throw new ArgumentException(nameof(avatarStateDictionary));
}

var avatarState = new AvatarState(avatarStateDictionary);
Dictionary avatarStateDictionary => new AvatarState(avatarStateDictionary),
List avatarStateList => new AvatarState(avatarStateList),
_ => throw new ArgumentException(nameof(avatarAddress))
};
avatars.Add(avatarState);
}

Expand Down

0 comments on commit d3fc286

Please sign in to comment.