Bungie-net / api

Resources for the Bungie.net API
Other
1.22k stars 92 forks source link

Expired Bounties #918

Open andyschott opened 5 years ago

andyschott commented 5 years ago

If I have bounty that is set to expire, is the official companion app supposed to show when it will expire?

This bounty is expired, and I don't see any indication of that in the official app: Official Companion App Expired Bounty

In Ishtar Commander, it is shown as expired but the text seems to be incomplete: Ishtar Commander Expired Bounty. If the bounty isn't expired, Ishtar Commander does show when it will expire: Ishtar Commander Bounty.

Is this a bug in Ishtar Commander when a bounty is expired, or is the wrong data returned by the API? Should the expires text be shown for bounties in the official app?

vthornheart-bng commented 5 years ago

Thanks for reporting this!

This is an interesting problem due to a recent fix, and an implication I'd not considered in our haste to fix this game affecting bug. To fix the bug with the Zero Hour bounties disappearing, we had to very quickly change how the API works to no longer run the portion of the game engine's cleanup logic that deletes expired items. I imagine a lot of apps probably aren't going to handle receiving expired items properly, as up to now they haven't had to do so. This is an implication I didn't think about bubbling up to developers, so I'll let folks know about it!

We need an extra property on our side to indicate that an item has expired, which we didn't need previously because expired items would have been deleted by the time they reached us.

As a very janky and temporary workaround for developers, if you get a null "expirationDate" but the definition of the item has any text in the "expirationTooltip" property is not empty or null, then the item has expired. That is super janky and I hesitate to even recommend it, but it should let developers work around this until we can deploy a fix where we provide a new property that more clearly indicates if an item can expire. (My gut instinct just as I type this is that I'll add an explicit "doesItemExpire" property to the DestinyInventoryItemDefinition)

Thanks for bringing this to our attention!

vthornheart-bng commented 5 years ago

Ah, it turns out I had misread that portion of my code in my haste to evaluate what was going on.

It looks like we already return the date even if it expires, so folks will have to change your apps to check if that date is in the past.

vthornheart-bng commented 5 years ago

(including our own app)