Skip to content

Commit

Permalink
Apply abito changes
Browse files Browse the repository at this point in the history
  • Loading branch information
MCausc78 committed Mar 18, 2024
1 parent 0ab2c72 commit 9f1f026
Show file tree
Hide file tree
Showing 8 changed files with 41 additions and 24 deletions.
2 changes: 1 addition & 1 deletion lib/nyxx.dart
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ export 'src/builders/application_command.dart'
show ApplicationCommandBuilder, ApplicationCommandUpdateBuilder, CommandOptionBuilder, CommandOptionChoiceBuilder;
export 'src/builders/interaction_response.dart' show InteractionResponseBuilder, ModalBuilder, InteractionCallbackType;
export 'src/builders/entitlement.dart' show TestEntitlementBuilder, TestEntitlementType;
export 'src/builders/application.dart' show ApplicationUpdateBuilder;
export 'src/builders/application.dart' show ApplicationUpdateBuilder, ApplicationIntegrationTypeConfigurationBuilder;

export 'src/cache/cache.dart' show Cache, CacheConfig;

Expand Down
28 changes: 20 additions & 8 deletions lib/src/builders/application.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,22 @@ import 'package:nyxx/src/builders/sentinels.dart';
import 'package:nyxx/src/models/application.dart';
import 'package:nyxx/src/utils/flags.dart';

class ApplicationIntegrationTypeConfigurationBuilder extends CreateBuilder<ApplicationIntegrationTypeConfiguration> {
/// Install params for each installation context's default in-app authorization link.
final InstallationParameters? oauth2InstallParameters;

ApplicationIntegrationTypeConfigurationBuilder({this.oauth2InstallParameters});

@override
Map<String, Object?> build() => {
if (oauth2InstallParameters != null)
'oauth2_install_params': {
'scopes': oauth2InstallParameters!.scopes,
'permissions': oauth2InstallParameters!.permissions.value.toString(),
},
};
}

class ApplicationUpdateBuilder extends UpdateBuilder<Application> {
Uri? customInstallUrl;

Expand All @@ -23,7 +39,7 @@ class ApplicationUpdateBuilder extends UpdateBuilder<Application> {

List<String>? tags;

Map<ApplicationIntegrationType, ApplicationIntegrationTypeConfiguration>? integrationTypesConfig;
Map<ApplicationIntegrationType, ApplicationIntegrationTypeConfigurationBuilder>? integrationTypesConfig;

ApplicationUpdateBuilder({
this.customInstallUrl,
Expand All @@ -49,13 +65,9 @@ class ApplicationUpdateBuilder extends UpdateBuilder<Application> {
'permissions': installationParameters!.permissions.value.toString(),
},
if (integrationTypesConfig != null)
'integration_types_config': integrationTypesConfig!.map((key, value) => MapEntry(key.value.toString(), {
if (value.oauth2InstallParameters != null)
'oauth2_install_params': {
'scopes': value.oauth2InstallParameters!.scopes,
'permissions': value.oauth2InstallParameters!.permissions.value.toString(),
},
})),
'integration_types_config': {
for (final MapEntry(:key, :value) in integrationTypesConfig!.entries) key.value.toString(): value.build(),
},
if (flags != null) 'flags': flags!.value,
if (!identical(icon, sentinelImageBuilder)) 'icon': icon?.buildDataString(),
if (!identical(coverImage, sentinelImageBuilder)) 'cover_image': coverImage?.buildDataString(),
Expand Down
4 changes: 2 additions & 2 deletions lib/src/http/managers/application_command_manager.dart
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ abstract class ApplicationCommandManager extends Manager<ApplicationCommand> {
defaultMemberPermissions: maybeParse(raw['default_member_permissions'], (String raw) => Permissions(int.parse(raw))),
hasDmPermission: raw['dm_permission'] as bool?,
isNsfw: raw['nsfw'] as bool?,
integrationTypes: (raw['integration_types'] as List).cast<int>().map(ApplicationIntegrationType.parse).toList(),
contexts: (raw['contexts'] as List? ?? []).cast<int>().map(InteractionContextType.parse).toList(),
integrationTypes: parseMany(raw['integration_types']! as List, ApplicationIntegrationType.parse),
contexts: maybeParseMany(raw['contexts'], InteractionContextType.parse),
version: Snowflake.parse(raw['version']!),
);
}
Expand Down
9 changes: 6 additions & 3 deletions lib/src/http/managers/application_manager.dart
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,12 @@ class ApplicationManager {
installationParameters: maybeParse(raw['install_params'], parseInstallationParameters),
customInstallUrl: maybeParse(raw['custom_install_url'], Uri.parse),
integrationTypesConfig: maybeParse(
raw['integration_types_config'],
(config) => (config as Map).cast<String, Object?>().map((key, value) =>
MapEntry(ApplicationIntegrationType.parse(int.parse(key)), parseApplicationIntegrationTypeConfiguration((value as Map).cast<String, Object>())))),
raw['integration_types_config'],
(Map<String, Object?> config) => {
for (final MapEntry(:key, :value) in config.entries)
ApplicationIntegrationType.parse(int.parse(key)): parseApplicationIntegrationTypeConfiguration(value as Map<String, Object?>)
},
),
roleConnectionsVerificationUrl: maybeParse(raw['role_connections_verification_url'], Uri.parse),
);
}
Expand Down
9 changes: 5 additions & 4 deletions lib/src/http/managers/interaction_manager.dart
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,11 @@ class InteractionManager {
final entitlements = parseMany(raw['entitlements'] as List, client.applications[applicationId].entitlements.parse);

final authorizingIntegrationOwners = maybeParse(
raw['authorizing_integration_owners'],
(map) =>
(map as Map).cast<String, Object>().map((key, value) => MapEntry(ApplicationIntegrationType.parse(int.parse(key)), Snowflake.parse(value)))) ??
{};
raw['authorizing_integration_owners'],
(Map<String, Object?> map) => {
for (final MapEntry(:key, :value) in map.entries) ApplicationIntegrationType.parse(int.parse(key)): Snowflake.parse(value!),
},
);
final context = maybeParse(raw['context'], InteractionContextType.parse);

return switch (type) {
Expand Down
9 changes: 5 additions & 4 deletions lib/src/http/managers/message_manager.dart
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ class MessageManager extends Manager<Message> {
),
interactionMetadata: maybeParse(
raw['interaction_metadata'],
(Map<dynamic, dynamic> raw) => parseMessageInteractionMetadata(raw.cast()),
parseMessageInteractionMetadata,
),
thread: maybeParse(raw['thread'], client.channels.parse) as Thread?,
components: maybeParseMany(raw['components'], parseMessageComponent),
Expand Down Expand Up @@ -325,9 +325,10 @@ class MessageManager extends Manager<Message> {
id: Snowflake.parse(raw['id']!),
type: InteractionType.parse(raw['type'] as int),
userId: Snowflake.parse(raw['user_id']!),
authorizingIntegrationOwners: (raw['authorizing_integration_owners'] as Map)
.cast<String, Object>()
.map((key, value) => MapEntry(ApplicationIntegrationType.parse(int.parse(key)), Snowflake.parse(value))),
authorizingIntegrationOwners: {
for (final MapEntry(:key, :value) in (raw['authorizing_integration_owners'] as Map<String, Object?>).entries)
ApplicationIntegrationType.parse(int.parse(key)): Snowflake.parse(value!),
},
originalResponseMessageId: maybeParse(raw['original_response_message_id'], Snowflake.parse),
interactedMessageId: maybeParse(raw['interacted_message_id'], Snowflake.parse),
triggeringInteractionMetadata: maybeParse(raw['triggering_interaction_metadata'], parseMessageInteractionMetadata),
Expand Down
2 changes: 1 addition & 1 deletion lib/src/models/commands/application_command.dart
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ class ApplicationCommand extends PartialApplicationCommand {
final List<ApplicationIntegrationType> integrationTypes;

/// Interaction context(s) where the command can be used, only for globally-scoped commands. By default, all interaction context types included for new commands.
final List<InteractionContextType> contexts;
final List<InteractionContextType>? contexts;

/// An auto-incrementing version number.
final Snowflake version;
Expand Down
2 changes: 1 addition & 1 deletion lib/src/models/interaction.dart
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ abstract class Interaction<T> with ToStringHelper {
final List<Entitlement> entitlements;

/// Mapping of installation contexts that the interaction was authorized for to related user or guild IDs.
final Map<ApplicationIntegrationType, Snowflake> authorizingIntegrationOwners;
final Map<ApplicationIntegrationType, Snowflake>? authorizingIntegrationOwners;

/// Context where the interaction was triggered from.
final InteractionContextType? context;
Expand Down

0 comments on commit 9f1f026

Please sign in to comment.