Skip to content

Commit

Permalink
Add entitlement delete payload (#599)
Browse files Browse the repository at this point in the history
Co-authored-by: Szymon Uglis <szymon@l7ssha.xyz>
abitofevrything and l7ssha authored Dec 9, 2023
1 parent c12ba89 commit 7a0f346
Showing 3 changed files with 10 additions and 5 deletions.
7 changes: 6 additions & 1 deletion lib/src/gateway/gateway.dart
Original file line number Diff line number Diff line change
@@ -1011,7 +1011,12 @@ class Gateway extends GatewayManager with EventParser {

/// Parse an [EntitlementDeleteEvent] from [raw].
EntitlementDeleteEvent parseEntitlementDelete(Map<String, Object?> raw) {
return EntitlementDeleteEvent(gateway: this);
final applicationId = Snowflake.parse(raw['application_id']!);

return EntitlementDeleteEvent(
gateway: this,
entitlement: client.applications[applicationId].entitlements.parse(raw),
);
}

/// Stream all members in a guild that match [query] or [userIds].
5 changes: 3 additions & 2 deletions lib/src/models/gateway/events/entitlement.dart
Original file line number Diff line number Diff line change
@@ -30,8 +30,9 @@ class EntitlementUpdateEvent extends DispatchEvent {
/// Emitted when an entitlement is deleted.
/// {@endtemplate}
class EntitlementDeleteEvent extends DispatchEvent {
// TODO: What is the payload here?
/// The entitlement that was deleted.
final Entitlement entitlement;

/// {@macro entitlement_delete_event}
EntitlementDeleteEvent({required super.gateway});
EntitlementDeleteEvent({required super.gateway, required this.entitlement});
}
3 changes: 1 addition & 2 deletions lib/src/utils/cache_helpers.dart
Original file line number Diff line number Diff line change
@@ -278,8 +278,7 @@ extension CacheUpdates on NyxxRest {
StageInstanceDeleteEvent(:final instance) => instance.manager.cache.remove(instance.id),
EntitlementCreateEvent(:final entitlement) => updateCacheWith(entitlement),
EntitlementUpdateEvent(:final entitlement) => updateCacheWith(entitlement),
// TODO: Remove entitlement from cache
EntitlementDeleteEvent() => null,
EntitlementDeleteEvent(:final entitlement) => entitlement.manager.cache.remove(entitlement.id),

// null and unhandled entity types
WebhookAuthor() => null,

0 comments on commit 7a0f346

Please sign in to comment.