Skip to content

Commit

Permalink
[PLA-1733] Adds skipValidation to all transaction mutations (#41)
Browse files Browse the repository at this point in the history
leonardocustodio authored Apr 18, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
1 parent 329a423 commit 4624d5c
Showing 42 changed files with 730 additions and 43 deletions.
28 changes: 26 additions & 2 deletions src/GraphQL/Mutations/AddAccountMutation.php
Original file line number Diff line number Diff line change
@@ -7,6 +7,7 @@
use Enjin\Platform\FuelTanks\Rules\AccountsNotInFuelTank;
use Enjin\Platform\FuelTanks\Rules\IsFuelTankOwner;
use Enjin\Platform\GraphQL\Schemas\Primary\Substrate\Traits\StoresTransactions;
use Enjin\Platform\GraphQL\Schemas\Primary\Traits\HasSkippableRules;
use Enjin\Platform\GraphQL\Schemas\Primary\Traits\HasTransactionDeposit;
use Enjin\Platform\GraphQL\Types\Input\Substrate\Traits\HasIdempotencyField;
use Enjin\Platform\GraphQL\Types\Input\Substrate\Traits\HasSigningAccountField;
@@ -28,6 +29,7 @@ class AddAccountMutation extends Mutation implements PlatformBlockchainTransacti
use HasIdempotencyField;
use HasSigningAccountField;
use HasSimulateField;
use HasSkippableRules;
use HasTransactionDeposit;
use StoresTransactions;

@@ -67,6 +69,7 @@ public function args(): array
...$this->getSigningAccountField(),
...$this->getIdempotencyField(),
...$this->getSimulateField(),
...$this->getSkipValidationField(),
];
}

@@ -105,9 +108,9 @@ public static function getEncodableParams(...$params): array
}

/**
* Get the mutation's request validation rules.
* Get the mutation's validation rules.
*/
protected function rules(array $args = []): array
protected function rulesWithValidation(array $args): array
{
return [
'tankId' => [
@@ -126,4 +129,25 @@ protected function rules(array $args = []): array
],
];
}

/**
* Get the mutation's validation rules without DB rules.
*/
protected function rulesWithoutValidation(array $args): array
{
return [
'tankId' => [
'bail',
'filled',
'max:255',
new ValidSubstrateAddress(),
],
'userId' => [
'bail',
'filled',
'max:255',
new ValidSubstrateAddress(),
],
];
}
}
24 changes: 22 additions & 2 deletions src/GraphQL/Mutations/BatchAddAccountMutation.php
Original file line number Diff line number Diff line change
@@ -7,6 +7,7 @@
use Enjin\Platform\FuelTanks\Rules\AccountsNotInFuelTank;
use Enjin\Platform\FuelTanks\Rules\IsFuelTankOwner;
use Enjin\Platform\GraphQL\Schemas\Primary\Substrate\Traits\StoresTransactions;
use Enjin\Platform\GraphQL\Schemas\Primary\Traits\HasSkippableRules;
use Enjin\Platform\GraphQL\Schemas\Primary\Traits\HasTransactionDeposit;
use Enjin\Platform\GraphQL\Types\Input\Substrate\Traits\HasIdempotencyField;
use Enjin\Platform\GraphQL\Types\Input\Substrate\Traits\HasSigningAccountField;
@@ -28,6 +29,7 @@ class BatchAddAccountMutation extends Mutation implements PlatformBlockchainTran
use HasIdempotencyField;
use HasSigningAccountField;
use HasSimulateField;
use HasSkippableRules;
use HasTransactionDeposit;
use StoresTransactions;

@@ -67,6 +69,7 @@ public function args(): array
...$this->getSigningAccountField(),
...$this->getIdempotencyField(),
...$this->getSimulateField(),
...$this->getSkipValidationField(),
];
}

@@ -105,9 +108,9 @@ public static function getEncodableParams(...$params): array
}

/**
* Get the mutation's request validation rules.
* Get the mutation's validation rules.
*/
protected function rules(array $args = []): array
protected function rulesWithValidation(array $args): array
{
return [
'tankId' => [
@@ -121,4 +124,21 @@ protected function rules(array $args = []): array
'userIds.*' => ['bail', 'filled', 'distinct', 'max:255', new ValidSubstrateAddress()],
];
}

/**
* Get the mutation's validation rules without DB rules.
*/
protected function rulesWithoutValidation(array $args): array
{
return [
'tankId' => [
'bail',
'filled',
'max:255',
new ValidSubstrateAddress(),
],
'userIds' => ['array', 'min:1', 'max:100'],
'userIds.*' => ['bail', 'filled', 'distinct', 'max:255', new ValidSubstrateAddress()],
];
}
}
29 changes: 27 additions & 2 deletions src/GraphQL/Mutations/BatchRemoveAccountMutation.php
Original file line number Diff line number Diff line change
@@ -7,6 +7,7 @@
use Enjin\Platform\FuelTanks\Rules\AccountsExistsInFuelTank;
use Enjin\Platform\FuelTanks\Rules\IsFuelTankOwner;
use Enjin\Platform\GraphQL\Schemas\Primary\Substrate\Traits\StoresTransactions;
use Enjin\Platform\GraphQL\Schemas\Primary\Traits\HasSkippableRules;
use Enjin\Platform\GraphQL\Schemas\Primary\Traits\HasTransactionDeposit;
use Enjin\Platform\GraphQL\Types\Input\Substrate\Traits\HasIdempotencyField;
use Enjin\Platform\GraphQL\Types\Input\Substrate\Traits\HasSigningAccountField;
@@ -28,6 +29,7 @@ class BatchRemoveAccountMutation extends Mutation implements PlatformBlockchainT
use HasIdempotencyField;
use HasSigningAccountField;
use HasSimulateField;
use HasSkippableRules;
use HasTransactionDeposit;
use StoresTransactions;

@@ -67,6 +69,7 @@ public function args(): array
...$this->getSigningAccountField(),
...$this->getIdempotencyField(),
...$this->getSimulateField(),
...$this->getSkipValidationField(),
];
}

@@ -105,9 +108,9 @@ public static function getEncodableParams(...$params): array
}

/**
* Get the mutation's request validation rules.
* Get the mutation's validation rules.
*/
protected function rules(array $args = []): array
protected function rulesWithValidation(array $args): array
{
return [
'tankId' => [
@@ -127,4 +130,26 @@ protected function rules(array $args = []): array
],
];
}

/**
* Get the mutation's validation rules without DB rules.
*/
protected function rulesWithoutValidation(array $args): array
{
return [
'tankId' => [
'bail',
'filled',
'max:255',
new ValidSubstrateAddress(),
],
'userIds.*' => ['bail', 'distinct', 'max:255', new ValidSubstrateAddress()],
'userIds' => [
'bail',
'array',
'min:1',
'max:100',
],
];
}
}
15 changes: 13 additions & 2 deletions src/GraphQL/Mutations/CreateFuelTankMutation.php
Original file line number Diff line number Diff line change
@@ -8,6 +8,7 @@
use Enjin\Platform\FuelTanks\Models\Substrate\AccountRulesParams;
use Enjin\Platform\FuelTanks\Services\Blockchain\Implemetations\Substrate;
use Enjin\Platform\GraphQL\Schemas\Primary\Substrate\Traits\StoresTransactions;
use Enjin\Platform\GraphQL\Schemas\Primary\Traits\HasSkippableRules;
use Enjin\Platform\GraphQL\Schemas\Primary\Traits\HasTransactionDeposit;
use Enjin\Platform\GraphQL\Types\Input\Substrate\Traits\HasIdempotencyField;
use Enjin\Platform\GraphQL\Types\Input\Substrate\Traits\HasSigningAccountField;
@@ -27,6 +28,7 @@ class CreateFuelTankMutation extends Mutation implements PlatformBlockchainTrans
use HasIdempotencyField;
use HasSigningAccountField;
use HasSimulateField;
use HasSkippableRules;
use HasTransactionDeposit;
use StoresTransactions;

@@ -82,6 +84,7 @@ public function args(): array
...$this->getSigningAccountField(),
...$this->getIdempotencyField(),
...$this->getSimulateField(),
...$this->getSkipValidationField(),
];
}

@@ -131,9 +134,17 @@ public static function getEncodableParams(...$params): array
}

/**
* Get the mutation's request validation rules.
* Get the mutation's validation rules.
*/
protected function rules(array $args = []): array
protected function rulesWithValidation(array $args): array
{
return $this->validationRulesExist($args);
}

/**
* Get the mutation's validation rules without DB rules.
*/
protected function rulesWithoutValidation(array $args): array
{
return $this->validationRules($args);
}
22 changes: 20 additions & 2 deletions src/GraphQL/Mutations/DestroyFuelTankMutation.php
Original file line number Diff line number Diff line change
@@ -6,6 +6,7 @@
use Enjin\BlockchainTools\HexConverter;
use Enjin\Platform\FuelTanks\Rules\IsFuelTankOwner;
use Enjin\Platform\GraphQL\Schemas\Primary\Substrate\Traits\StoresTransactions;
use Enjin\Platform\GraphQL\Schemas\Primary\Traits\HasSkippableRules;
use Enjin\Platform\GraphQL\Schemas\Primary\Traits\HasTransactionDeposit;
use Enjin\Platform\GraphQL\Types\Input\Substrate\Traits\HasIdempotencyField;
use Enjin\Platform\GraphQL\Types\Input\Substrate\Traits\HasSigningAccountField;
@@ -27,6 +28,7 @@ class DestroyFuelTankMutation extends Mutation implements PlatformBlockchainTran
use HasIdempotencyField;
use HasSigningAccountField;
use HasSimulateField;
use HasSkippableRules;
use HasTransactionDeposit;
use StoresTransactions;

@@ -62,6 +64,7 @@ public function args(): array
...$this->getSigningAccountField(),
...$this->getIdempotencyField(),
...$this->getSimulateField(),
...$this->getSkipValidationField(),
];
}

@@ -96,9 +99,9 @@ public static function getEncodableParams(...$params): array
}

/**
* Get the mutation's request validation rules.
* Get the mutation's validation rules.
*/
protected function rules(array $args = []): array
protected function rulesWithValidation(array $args): array
{
return [
'tankId' => [
@@ -110,4 +113,19 @@ protected function rules(array $args = []): array
],
];
}

/**
* Get the mutation's validation rules without DB rules.
*/
protected function rulesWithoutValidation(array $args): array
{
return [
'tankId' => [
'bail',
'filled',
'max:255',
new ValidSubstrateAddress(),
],
];
}
}
31 changes: 29 additions & 2 deletions src/GraphQL/Mutations/DispatchMutation.php
Original file line number Diff line number Diff line change
@@ -10,6 +10,7 @@
use Enjin\Platform\FuelTanks\Rules\RuleSetExists;
use Enjin\Platform\FuelTanks\Rules\ValidMutation;
use Enjin\Platform\GraphQL\Schemas\Primary\Substrate\Traits\StoresTransactions;
use Enjin\Platform\GraphQL\Schemas\Primary\Traits\HasSkippableRules;
use Enjin\Platform\GraphQL\Schemas\Primary\Traits\HasTransactionDeposit;
use Enjin\Platform\GraphQL\Types\Input\Substrate\Traits\HasIdempotencyField;
use Enjin\Platform\GraphQL\Types\Input\Substrate\Traits\HasSigningAccountField;
@@ -34,6 +35,7 @@ class DispatchMutation extends Mutation implements PlatformBlockchainTransaction
use HasIdempotencyField;
use HasSigningAccountField;
use HasSimulateField;
use HasSkippableRules;
use HasTransactionDeposit;
use StoresTransactions;

@@ -82,6 +84,7 @@ public function args(): array
...$this->getSigningAccountField(),
...$this->getIdempotencyField(),
...$this->getSimulateField(),
...$this->getSkipValidationField(),
];
}

@@ -143,9 +146,9 @@ public static function getEncodableParams(...$params): array
}

/**
* Get the mutation's request validation rules.
* Get the mutation's validation rules.
*/
protected function rules(array $args = []): array
protected function rulesWithValidation(array $args): array
{
return [
'tankId' => [
@@ -167,4 +170,28 @@ protected function rules(array $args = []): array
],
];
}

/**
* Get the mutation's validation rules without DB rules.
*/
protected function rulesWithoutValidation(array $args): array
{
return [
'tankId' => [
'bail',
'filled',
'max:255',
new ValidSubstrateAddress(),
],
'ruleSetId' => [
'bail',
new MinBigInt(),
new MaxBigInt(Hex::MAX_UINT32),
],
'dispatch.query' => [
'filled',
new ValidMutation(),
],
];
}
}
Loading

0 comments on commit 4624d5c

Please sign in to comment.