diff --git a/src/Contracts/Syncable.php b/src/Contracts/Syncable.php index 29a681f8..074fc87e 100644 --- a/src/Contracts/Syncable.php +++ b/src/Contracts/Syncable.php @@ -16,5 +16,5 @@ interface Syncable public function triggerSyncEvent(): void; - public function getCreationAttributes(): array|null; // todo come up with a better name + public function getSyncedCreationAttributes(): array|null; // todo come up with a better name } diff --git a/src/Database/Concerns/ResourceSyncing.php b/src/Database/Concerns/ResourceSyncing.php index d4bbbf60..fd63738d 100644 --- a/src/Database/Concerns/ResourceSyncing.php +++ b/src/Database/Concerns/ResourceSyncing.php @@ -33,7 +33,7 @@ trait ResourceSyncing event(new SyncedResourceSaved($this, tenant())); } - public function getCreationAttributes(): array|null + public function getSyncedCreationAttributes(): array|null { return null; } diff --git a/src/Listeners/UpdateSyncedResource.php b/src/Listeners/UpdateSyncedResource.php index 5b7d40f8..f95c1fd3 100644 --- a/src/Listeners/UpdateSyncedResource.php +++ b/src/Listeners/UpdateSyncedResource.php @@ -123,18 +123,18 @@ class UpdateSyncedResource extends QueueableListener protected function getAttributesForCreation(Syncable $model): array { - if (! $model->getCreationAttributes()) { + if (! $model->getSyncedCreationAttributes()) { // Creation attributes are not specified so create the model as 1:1 copy return $model->getAttributes(); } - if (Arr::isAssoc($model->getCreationAttributes())) { + if (Arr::isAssoc($model->getSyncedCreationAttributes())) { // Developer provided the default values // We will merge the default values with sync attributes - return array_merge($model->getCreationAttributes(), $model->only($model->getSyncedAttributeNames())); + return array_merge($model->getSyncedCreationAttributes(), $model->only($model->getSyncedAttributeNames())); } // Developer provided the attribute names, so we'd use them to pick model attributes - return $model->only($model->getCreationAttributes()); + return $model->only($model->getSyncedCreationAttributes()); } } diff --git a/tests/ResourceSyncingTest.php b/tests/ResourceSyncingTest.php index 7115ca6d..8ae150e2 100644 --- a/tests/ResourceSyncingTest.php +++ b/tests/ResourceSyncingTest.php @@ -820,7 +820,7 @@ class ResourceUser extends Model implements Syncable // override method in ResourceUser class to return attribute default values class ResourceUserWithDefaultValues extends ResourceUser { - public function getCreationAttributes(): array + public function getSyncedCreationAttributes(): array { // Attributes default values when creating resources from tenant to central DB return @@ -832,7 +832,7 @@ class ResourceUserWithDefaultValues extends ResourceUser { // override method in ResourceUser class to return attribute names class ResourceUserWithAttributeNames extends ResourceUser { - public function getCreationAttributes(): array + public function getSyncedCreationAttributes(): array { // Attributes used when creating resources from tenant to central DB // Notice here we are not adding "code" filed because it doesn't @@ -851,7 +851,7 @@ class ResourceUserWithAttributeNames extends ResourceUser { // override method in CentralUser class to return attribute default values class CentralUserWithDefaultValues extends CentralUser { - public function getCreationAttributes(): array + public function getSyncedCreationAttributes(): array { // Attributes default values when creating resources from central to tenant model return @@ -863,7 +863,7 @@ class CentralUserWithDefaultValues extends CentralUser { // override method in CentralUser class to return attribute names class CentralUserWithAttributeNames extends CentralUser { - public function getCreationAttributes(): array + public function getSyncedCreationAttributes(): array { // Attributes used when creating resources from central to tenant DB return