Skip to content

Commit

Permalink
ProductTag is purely readonly from DB #9819
Browse files Browse the repository at this point in the history
  • Loading branch information
PowerKiKi committed Aug 23, 2023
1 parent 3ccc7db commit 096f546
Show file tree
Hide file tree
Showing 9 changed files with 23 additions and 145 deletions.
31 changes: 0 additions & 31 deletions client/app/admin/product-tags/services/product-tag.queries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,34 +38,3 @@ export const productTagQuery = gql`
${userMetaFragment}
${permissionsFragment}
`;

export const createProductTag = gql`
mutation CreateProductTag($input: ProductTagInput!) {
createProductTag(input: $input) {
id
creator {
...UserMeta
}
}
}
${userMetaFragment}
`;

export const updateProductTag = gql`
mutation UpdateProductTag($id: ProductTagID!, $input: ProductTagPartialInput!) {
updateProductTag(id: $id, input: $input) {
id
updateDate
updater {
...UserMeta
}
}
}
${userMetaFragment}
`;

export const deleteProductTags = gql`
mutation DeleteProductTags($ids: [ProductTagID!]!) {
deleteProductTags(ids: $ids)
}
`;
16 changes: 0 additions & 16 deletions client/app/admin/product-tags/services/product-tag.resolver.ts

This file was deleted.

74 changes: 10 additions & 64 deletions client/app/admin/product-tags/services/product-tag.service.ts
Original file line number Diff line number Diff line change
@@ -1,36 +1,10 @@
import {Apollo} from 'apollo-angular';
import {Injectable} from '@angular/core';
import {Validators} from '@angular/forms';
import {
FormAsyncValidators,
FormValidators,
NaturalAbstractModelService,
NaturalDebounceService,
NaturalQueryVariablesManager,
unique,
} from '@ecodev/natural';
import {NaturalAbstractModelService, NaturalDebounceService, NaturalQueryVariablesManager} from '@ecodev/natural';
import {Observable} from 'rxjs';
import {map} from 'rxjs/operators';
import {
CreateProductTag,
CreateProductTagVariables,
DeleteProductTags,
DeleteProductTagsVariables,
ProductTag,
ProductTagInput,
ProductTags,
ProductTagsVariables,
ProductTagVariables,
UpdateProductTag,
UpdateProductTagVariables,
} from '../../../shared/generated-types';
import {
createProductTag,
deleteProductTags,
productTagQuery,
productTagsQuery,
updateProductTag,
} from './product-tag.queries';
import {ProductTag, ProductTags, ProductTagsVariables, ProductTagVariables} from '../../../shared/generated-types';
import {productTagQuery, productTagsQuery} from './product-tag.queries';
import {ProductTagByNameResolve} from './product-tag-by-name.resolver';

@Injectable({
Expand All @@ -41,48 +15,20 @@ export class ProductTagService extends NaturalAbstractModelService<
ProductTagVariables,
ProductTags['productTags'],
ProductTagsVariables,
CreateProductTag['createProductTag'],
CreateProductTagVariables,
UpdateProductTag['updateProductTag'],
UpdateProductTagVariables,
DeleteProductTags,
DeleteProductTagsVariables
never,
never,
never,
never,
never,
never
> {
public constructor(apollo: Apollo, naturalDebounceService: NaturalDebounceService) {
super(
apollo,
naturalDebounceService,
'productTag',
productTagQuery,
productTagsQuery,
createProductTag,
updateProductTag,
deleteProductTags,
);
}

public override getFormValidators(): FormValidators {
return {
name: [Validators.required, Validators.maxLength(100)],
};
}

public override getFormAsyncValidators(model: ProductTag['productTag']): FormAsyncValidators {
return {
name: [unique('name', model.id, this)],
};
super(apollo, naturalDebounceService, 'productTag', productTagQuery, productTagsQuery, null, null, null);
}

public resolveByName(name: string): Observable<ProductTagByNameResolve> {
const qvm = new NaturalQueryVariablesManager<ProductTagsVariables>();
qvm.set('variables', {filter: {groups: [{conditions: [{name: {equal: {value: name}}}]}]}});
return this.getAll(qvm).pipe(map(res => ({model: res.items[0]})));
}

public override getDefaultForServer(): ProductTagInput {
return {
name: '',
color: '',
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -144,10 +144,7 @@
<div class="categories section">
<div class="container" fxLayout="column" fxLayoutAlign="start start" fxLayoutGap="40px">
<div class="mat-headline-4">NOS THEMES</div>
<app-tags-navigation
[service]="productTagService"
[linkBase]="['/larevuedurable/articles']"
></app-tags-navigation>
<app-tags-navigation [linkBase]="['/larevuedurable/articles']"></app-tags-navigation>
<a color="primary" mat-flat-button routerLink="/larevuedurable/articles">Voir tous nos articles et dossiers</a>
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,13 @@ import {Component, OnInit} from '@angular/core';
import {ActivatedRoute, RouterLink} from '@angular/router';
import {
formatIsoDateTime,
NaturalQueryVariablesManager,
NaturalCapitalizePipe,
NaturalIconDirective,
NaturalQueryVariablesManager,
NaturalSrcDensityDirective,
NaturalCapitalizePipe,
} from '@ecodev/natural';
import {EventService} from '../../../admin/events/services/event.service';
import {NewsService} from '../../../admin/newses/services/news.service';
import {ProductTagService} from '../../../admin/product-tags/services/product-tag.service';
import {ProductService} from '../../../admin/products/services/product.service';
import {UserService} from '../../../admin/users/services/user.service';
import {
Expand All @@ -26,7 +25,6 @@ import {
SortingOrder,
} from '../../../shared/generated-types';
import {PermissionsService} from '../../../shared/services/permissions.service';
import {CartService} from '../../modules/cart/services/cart.service';
import {TagsNavigationComponent} from '../../../shared/components/tags-navigation/tags-navigation.component';
import {PriceComponent} from '../../../shared/components/price/price.component';
import {MatRippleModule} from '@angular/material/core';
Expand Down Expand Up @@ -85,8 +83,6 @@ export class HomepageComponent implements OnInit {
private readonly eventService: EventService,
private readonly productService: ProductService,
public readonly permissionService: PermissionsService,
public readonly productTagService: ProductTagService,
public readonly cartService: CartService,
) {}

public ngOnInit(): void {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,7 @@
<div *ngIf="title" class="mat-headline-4">{{ title }}</div>

<ng-container *ngIf="items && items.length">
<app-tags-navigation
*ngIf="showTagsNavigation"
[service]="productTagService"
[linkBase]="['/larevuedurable/articles']"
></app-tags-navigation>
<app-tags-navigation *ngIf="showTagsNavigation" [linkBase]="['/larevuedurable/articles']"></app-tags-navigation>

<!--
GRID
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,10 @@ import {ActivatedRoute, RouterLink} from '@angular/router';
import {
fromUrl,
memorySessionStorageProvider,
NaturalCapitalizePipe,
NaturalPersistenceService,
NaturalSrcDensityDirective,
NaturalCapitalizePipe,
} from '@ecodev/natural';
import {ProductTagService} from '../../../../../admin/product-tags/services/product-tag.service';
import {ProductService} from '../../../../../admin/products/services/product.service';
import {AbstractInfiniteLoadList} from '../../../../../shared/classes/AbstractInfiniteLoadList';
import {Products} from '../../../../../shared/generated-types';
Expand Down Expand Up @@ -98,7 +97,6 @@ export class ProductsPageComponent extends AbstractInfiniteLoadList<ProductServi
public constructor(
public override readonly route: ActivatedRoute,
productService: ProductService,
public readonly productTagService: ProductTagService,
) {
super(productService);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {Component, Input, OnInit} from '@angular/core';
import {Component, Input} from '@angular/core';
import {NaturalQueryVariablesManager} from '@ecodev/natural';
import {ProductTagService} from '../../../admin/product-tags/services/product-tag.service';
import {ProductTags, ProductTagsVariables} from '../../generated-types';
Expand All @@ -12,29 +12,22 @@ import {CommonModule} from '@angular/common';
standalone: true,
imports: [CommonModule, RouterLink],
})
export class TagsNavigationComponent implements OnInit {
export class TagsNavigationComponent {
/**
* Items to list
*/
@Input() public items: ProductTags['productTags']['items'][0][] = [];

/**
* Service to use to get items
*/
@Input({required: true}) public service!: ProductTagService;
public items: ProductTags['productTags']['items'][0][] = [];

/**
* Url base
*/
@Input() public linkBase: any[] = [];

public ngOnInit(): void {
if (this.service) {
const qvm = new NaturalQueryVariablesManager<ProductTagsVariables>();
this.service.getAll(qvm).subscribe(result => {
this.items = result.items;
});
}
public constructor(productTagService: ProductTagService) {
const qvm = new NaturalQueryVariablesManager<ProductTagsVariables>();
productTagService.getAll(qvm).subscribe(result => {
this.items = result.items;
});
}

public getLink(item: ProductTags['productTags']['items'][0]): RouterLink['routerLink'] {
Expand Down
1 change: 0 additions & 1 deletion server/Application/Api/MutationType.php
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ public function __construct()
Standard::buildMutation(Image::class),
Standard::buildMutation(News::class),
Standard::buildMutation(Product::class),
Standard::buildMutation(ProductTag::class),
Standard::buildMutation(Session::class),
Standard::buildMutation(Subscription::class),
Standard::buildMutation(User::class),
Expand Down

0 comments on commit 096f546

Please sign in to comment.