| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- namespace Webkul\BagistoApi\Models;
- use ApiPlatform\Laravel\Eloquent\Filter\EqualsFilter;
- use ApiPlatform\Metadata\ApiProperty;
- use ApiPlatform\Metadata\ApiResource;
- use ApiPlatform\Metadata\Get;
- use ApiPlatform\Metadata\GetCollection;
- use ApiPlatform\Metadata\GraphQl\Query;
- use ApiPlatform\Metadata\GraphQl\QueryCollection;
- use ApiPlatform\Metadata\QueryParameter;
- use Illuminate\Database\Eloquent\Model;
- use Webkul\BagistoApi\Resolver\BaseQueryItemResolver;
- use Webkul\BagistoApi\State\CursorAwareCollectionProvider;
- #[ApiResource(
- routePrefix: '/api/shop',
- shortName: 'ThemeCustomization',
- operations: [
- new Get(
- uriTemplate: '/theme-customizations/{id}',
- normalizationContext: [
- 'skip_null_values' => false,
- ],
- ),
- new GetCollection(
- uriTemplate: '/theme-customizations',
- paginationEnabled: true,
- paginationItemsPerPage: 15,
- paginationMaximumItemsPerPage: 100,
- normalizationContext: [
- 'skip_null_values' => false,
- ],
- ),
- ],
- graphQlOperations: [
- new Query(resolver: BaseQueryItemResolver::class),
- new QueryCollection(provider: CursorAwareCollectionProvider::class),
- ],
- )]
- #[QueryParameter(key: 'type', property: 'type', filter: EqualsFilter::class)]
- #[QueryParameter(key: 'name', property: 'name', filter: EqualsFilter::class)]
- class ThemeCustomization extends \Webkul\Theme\Models\ThemeCustomization
- {
- /**
- * Get unique theme customization identifier for API
- */
- #[ApiProperty(identifier: true, writable: false)]
- public function getId(): int
- {
- return $this->id;
- }
- /**
- * Get translation for the current locale
- */
- #[ApiProperty(readable: true, writable: false, readableLink: true, description: 'Current locale translation')]
- public function getTranslation(?string $locale = null, ?bool $withFallback = null): ?Model
- {
- return $this->translation;
- }
- /**
- * Get all translations
- */
- #[ApiProperty(readable: true, writable: false, readableLink: true, description: 'All translations')]
- public function getTranslations()
- {
- return $this->translations;
- }
- }
|