Skip to content

Commit f1985e4

Browse files
committed
feat: extract queries layer, improve performance, bump dependencies
1 parent bcc5780 commit f1985e4

34 files changed

+1271
-582
lines changed

src/app/app.component.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {Component, Renderer2} from '@angular/core';
22
import {NavigationStart, Router} from '@angular/router';
33
import {environment} from '@environment/environment';
4-
import {APIUser, ItemFields, ItemType, ListItemsRequest} from '@grpc/spec.pb';
4+
import {APIUser, ItemFields, ItemListOptions, ItemType, ListItemsRequest} from '@grpc/spec.pb';
55
import {ItemsClient} from '@grpc/spec.pbsc';
66
import {NgbModal} from '@ng-bootstrap/ng-bootstrap';
77
import {ACLService} from '@services/acl.service';
@@ -35,8 +35,10 @@ export class AppComponent {
3535
}),
3636
language: this.languageService.language,
3737
limit: 20,
38-
noParent: true,
39-
typeId: ItemType.ITEM_TYPE_CATEGORY,
38+
options: new ItemListOptions({
39+
noParent: true,
40+
typeId: ItemType.ITEM_TYPE_CATEGORY,
41+
}),
4042
}),
4143
);
4244
protected language: string;

src/app/cars/specifications-editor/engine/select/select.component.ts

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
import {Component} from '@angular/core';
22
import {ActivatedRoute, Router} from '@angular/router';
3-
import {APIItem, ItemFields, ItemRequest, ItemType, ListItemsRequest, Pages} from '@grpc/spec.pb';
3+
import {
4+
APIItem,
5+
ItemFields,
6+
ItemListOptions,
7+
ItemParentCacheListOptions,
8+
ItemRequest,
9+
ItemType,
10+
ListItemsRequest,
11+
Pages,
12+
} from '@grpc/spec.pb';
413
import {ItemsClient} from '@grpc/spec.pbsc';
514
import {APIService} from '@services/api.service';
615
import {APIItemParentGetResponse, ItemParentService} from '@services/item-parent';
@@ -81,15 +90,19 @@ export class CarsEngineSelectComponent {
8190
switchMap((search) =>
8291
this.itemsClient.list(
8392
new ListItemsRequest({
84-
descendant: new ListItemsRequest({
85-
typeId: ItemType.ITEM_TYPE_ENGINE,
86-
}),
8793
fields: new ItemFields({nameOnly: true}),
8894
language: this.languageService.language,
8995
limit: 500,
90-
name: search ? '%' + search + '%' : undefined,
96+
options: new ItemListOptions({
97+
descendant: new ItemParentCacheListOptions({
98+
itemsByItemId: new ItemListOptions({
99+
typeId: ItemType.ITEM_TYPE_ENGINE,
100+
}),
101+
}),
102+
name: search ? '%' + search + '%' : undefined,
103+
typeId: ItemType.ITEM_TYPE_BRAND,
104+
}),
91105
order: ListItemsRequest.Order.NAME,
92-
typeId: ItemType.ITEM_TYPE_BRAND,
93106
}),
94107
),
95108
),

src/app/catalogue/cars/cars.component.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55
BrandVehicleType,
66
GetBrandVehicleTypesRequest,
77
ItemFields,
8+
ItemListOptions,
89
ItemType,
910
ListItemsRequest,
1011
} from '@grpc/spec.pb';
@@ -32,13 +33,15 @@ export class CatalogueCarsComponent {
3233
return this.itemsClient
3334
.list(
3435
new ListItemsRequest({
35-
catname,
3636
fields: new ItemFields({
3737
nameHtml: true,
3838
nameOnly: true,
3939
}),
4040
language: this.languageService.language,
4141
limit: 1,
42+
options: new ItemListOptions({
43+
catname,
44+
}),
4245
}),
4346
)
4447
.pipe(map((response) => (response.items && response.items.length ? response.items[0] : null)));

src/app/catalogue/catalogue-service.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {Injectable} from '@angular/core';
22
import {ActivatedRoute} from '@angular/router';
3-
import {APIItem, ItemFields, ItemType, ListItemsRequest} from '@grpc/spec.pb';
3+
import {APIItem, ItemFields, ItemListOptions, ItemType, ListItemsRequest} from '@grpc/spec.pb';
44
import {ItemsClient} from '@grpc/spec.pbsc';
55
import {APIPathTreeItemParent} from '@services/item';
66
import {APIItemParent, ItemParentService} from '@services/item-parent';
@@ -154,13 +154,15 @@ export class CatalogueService {
154154
return this.itemsClient
155155
.list(
156156
new ListItemsRequest({
157-
catname,
158157
fields: new ItemFields({
159158
nameHtml: true,
160159
nameText: true,
161160
}),
162161
language: this.languageService.language,
163162
limit: 1,
163+
options: new ItemListOptions({
164+
catname,
165+
}),
164166
}),
165167
)
166168
.pipe(map((response) => (response.items && response.items.length ? response.items[0] : null)));

src/app/catalogue/concepts/concepts.component.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {Component} from '@angular/core';
22
import {ActivatedRoute, Router} from '@angular/router';
3-
import {APIItem, ItemFields, ListItemsRequest} from '@grpc/spec.pb';
3+
import {APIItem, ItemFields, ItemListOptions, ListItemsRequest} from '@grpc/spec.pb';
44
import {ItemsClient} from '@grpc/spec.pbsc';
55
import {ItemService} from '@services/item';
66
import {LanguageService} from '@services/language';
@@ -30,13 +30,15 @@ export class CatalogueConceptsComponent {
3030
}
3131
return this.itemsClient.list(
3232
new ListItemsRequest({
33-
catname,
3433
fields: new ItemFields({
3534
nameHtml: true,
3635
nameOnly: true,
3736
}),
3837
language: this.languageService.language,
3938
limit: 1,
39+
options: new ItemListOptions({
40+
catname,
41+
}),
4042
}),
4143
);
4244
}),

src/app/catalogue/engines/engines.component.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {Component} from '@angular/core';
22
import {ActivatedRoute, Router} from '@angular/router';
3-
import {ItemFields, ItemType, ListItemsRequest} from '@grpc/spec.pb';
3+
import {ItemFields, ItemListOptions, ItemType, ListItemsRequest} from '@grpc/spec.pb';
44
import {ItemsClient} from '@grpc/spec.pbsc';
55
import {ItemParentService} from '@services/item-parent';
66
import {LanguageService} from '@services/language';
@@ -31,13 +31,15 @@ export class CatalogueEnginesComponent {
3131
return this.itemsClient
3232
.list(
3333
new ListItemsRequest({
34-
catname,
3534
fields: new ItemFields({
3635
nameHtml: true,
3736
nameOnly: true,
3837
}),
3938
language: this.languageService.language,
4039
limit: 1,
40+
options: new ItemListOptions({
41+
catname,
42+
}),
4143
}),
4244
)
4345
.pipe(

src/app/catalogue/index/index.component.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
import {Component} from '@angular/core';
22
import {ActivatedRoute, Router} from '@angular/router';
3-
import {APIGetItemLinksRequest, APIItem, APIItemLink, ItemFields, ItemType, ListItemsRequest} from '@grpc/spec.pb';
3+
import {
4+
APIGetItemLinksRequest,
5+
APIItem,
6+
APIItemLink,
7+
ItemFields,
8+
ItemListOptions,
9+
ItemType,
10+
ListItemsRequest,
11+
} from '@grpc/spec.pb';
412
import {ItemsClient} from '@grpc/spec.pbsc';
513
import {ACLService, Privilege, Resource} from '@services/acl.service';
614
import {APIService} from '@services/api.service';
@@ -73,10 +81,12 @@ export class CatalogueIndexComponent {
7381

7482
return this.itemsClient.list(
7583
new ListItemsRequest({
76-
catname,
7784
fields,
7885
language: this.languageService.language,
7986
limit: 1,
87+
options: new ItemListOptions({
88+
catname,
89+
}),
8090
}),
8191
);
8292
}),

src/app/catalogue/mixed/gallery/gallery.component.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {Component} from '@angular/core';
22
import {ActivatedRoute, Router} from '@angular/router';
3-
import {APIItem, ItemFields, ListItemsRequest} from '@grpc/spec.pb';
3+
import {APIItem, ItemFields, ItemListOptions, ListItemsRequest} from '@grpc/spec.pb';
44
import {ItemsClient} from '@grpc/spec.pbsc';
55
import {LanguageService} from '@services/language';
66
import {PageEnvService} from '@services/page-env.service';
@@ -41,13 +41,15 @@ export class CatalogueMixedGalleryComponent {
4141
}
4242
return this.itemsClient.list(
4343
new ListItemsRequest({
44-
catname,
4544
fields: new ItemFields({
4645
nameHtml: true,
4746
nameText: true,
4847
}),
4948
language: this.languageService.language,
5049
limit: 1,
50+
options: new ItemListOptions({
51+
catname,
52+
}),
5153
}),
5254
);
5355
}),

src/app/catalogue/mixed/mixed.component.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {Component} from '@angular/core';
22
import {ActivatedRoute, Router} from '@angular/router';
3-
import {APIItem, ItemFields, ListItemsRequest} from '@grpc/spec.pb';
3+
import {APIItem, ItemFields, ItemListOptions, ListItemsRequest} from '@grpc/spec.pb';
44
import {ItemsClient} from '@grpc/spec.pbsc';
55
import {LanguageService} from '@services/language';
66
import {PageEnvService} from '@services/page-env.service';
@@ -29,13 +29,15 @@ export class CatalogueMixedComponent {
2929
}
3030
return this.itemsClient.list(
3131
new ListItemsRequest({
32-
catname,
3332
fields: new ItemFields({
3433
nameHtml: true,
3534
nameText: true,
3635
}),
3736
language: this.languageService.language,
3837
limit: 1,
38+
options: new ItemListOptions({
39+
catname,
40+
}),
3941
}),
4042
);
4143
}),

src/app/catalogue/mixed/picture/picture.component.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {Component} from '@angular/core';
22
import {ActivatedRoute, Router} from '@angular/router';
3-
import {APIItem, CommentsType, ItemFields, ListItemsRequest} from '@grpc/spec.pb';
3+
import {APIItem, CommentsType, ItemFields, ItemListOptions, ListItemsRequest} from '@grpc/spec.pb';
44
import {ItemsClient} from '@grpc/spec.pbsc';
55
import {LanguageService} from '@services/language';
66
import {PageEnvService} from '@services/page-env.service';
@@ -29,13 +29,15 @@ export class CatalogueMixedPictureComponent {
2929
}
3030
return this.itemsClient.list(
3131
new ListItemsRequest({
32-
catname,
3332
fields: new ItemFields({
3433
nameHtml: true,
3534
nameText: true,
3635
}),
3736
language: this.languageService.language,
3837
limit: 1,
38+
options: new ItemListOptions({
39+
catname,
40+
}),
3941
}),
4042
);
4143
}),

0 commit comments

Comments
 (0)