Skip to content

Commit 0bc57c2

Browse files
author
KoLiBer
committed
feat: add context to options
1 parent e04206d commit 0bc57c2

File tree

1 file changed

+25
-21
lines changed

1 file changed

+25
-21
lines changed

src/repositories/filter.repository.ts

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { MixinTarget } from "@loopback/core";
1+
import { MixinTarget, Context } from "@loopback/core";
22
import { InvocationContext } from "@loopback/context";
33
import {
44
DefaultCrudRepository,
@@ -21,6 +21,10 @@ export interface FilterRepository<
2121
Relations extends object = {}
2222
> {}
2323

24+
export interface FilterOptions extends Options {
25+
context: Context;
26+
}
27+
2428
/**
2529
* +--------+
2630
* | create |
@@ -90,10 +94,10 @@ export function FilterRepositoryMixin<
9094
*/
9195
createAll = async (
9296
entities: DataObject<T>[],
93-
options?: Options
97+
options?: FilterOptions
9498
) => {
9599
const filterContext = new InvocationContext(
96-
undefined as any,
100+
options?.context as Context,
97101
this,
98102
"create",
99103
Array.from(arguments)
@@ -108,7 +112,7 @@ export function FilterRepositoryMixin<
108112
/**
109113
* Filter create() using createAll()
110114
*/
111-
create = async (entity: DataObject<T>, options?: Options) => {
115+
create = async (entity: DataObject<T>, options?: FilterOptions) => {
112116
const result = await this.createAll([entity], options);
113117

114118
return result[0];
@@ -117,9 +121,9 @@ export function FilterRepositoryMixin<
117121
/**
118122
* Filter where and find all entities
119123
*/
120-
find = async (filter?: Filter<T>, options?: Options) => {
124+
find = async (filter?: Filter<T>, options?: FilterOptions) => {
121125
const filterContext = new InvocationContext(
122-
undefined as any,
126+
options?.context as Context,
123127
this,
124128
"read",
125129
Array.from(arguments)
@@ -144,9 +148,9 @@ export function FilterRepositoryMixin<
144148
/**
145149
* Filter where and find one entity
146150
*/
147-
findOne = async (filter?: Filter<T>, options?: Options) => {
151+
findOne = async (filter?: Filter<T>, options?: FilterOptions) => {
148152
const filterContext = new InvocationContext(
149-
undefined as any,
153+
options?.context as Context,
150154
this,
151155
"read",
152156
Array.from(arguments)
@@ -174,7 +178,7 @@ export function FilterRepositoryMixin<
174178
findById = async (
175179
id: ID,
176180
filter?: FilterExcludingWhere<T>,
177-
options?: Options
181+
options?: FilterOptions
178182
) => {
179183
const result = await this.findOne(
180184
{
@@ -194,9 +198,9 @@ export function FilterRepositoryMixin<
194198
/**
195199
* Filter where and count all entities
196200
*/
197-
count = async (where?: Where<T>, options?: Options) => {
201+
count = async (where?: Where<T>, options?: FilterOptions) => {
198202
const filterContext = new InvocationContext(
199-
undefined as any,
203+
options?.context as Context,
200204
this,
201205
"read",
202206
Array.from(arguments)
@@ -211,7 +215,7 @@ export function FilterRepositoryMixin<
211215
/**
212216
* Filter exists() using count()
213217
*/
214-
exists = async (id: ID, options?: Options) => {
218+
exists = async (id: ID, options?: FilterOptions) => {
215219
const result = await this.count(
216220
this.entityClass.buildWhereForId(id),
217221
options
@@ -226,10 +230,10 @@ export function FilterRepositoryMixin<
226230
updateAll = async (
227231
data: DataObject<T>,
228232
where?: Where<T>,
229-
options?: Options
233+
options?: FilterOptions
230234
) => {
231235
const filterContext = new InvocationContext(
232-
undefined as any,
236+
options?.context as Context,
233237
this,
234238
"update",
235239
Array.from(arguments)
@@ -257,7 +261,7 @@ export function FilterRepositoryMixin<
257261
updateById = async (
258262
id: ID,
259263
data: DataObject<T>,
260-
options?: Options
264+
options?: FilterOptions
261265
) => {
262266
await this.updateAll(
263267
data,
@@ -269,7 +273,7 @@ export function FilterRepositoryMixin<
269273
/**
270274
* Filter update() using updateAll()
271275
*/
272-
update = async (entity: T, options?: Options) => {
276+
update = async (entity: T, options?: FilterOptions) => {
273277
await this.updateAll(
274278
entity,
275279
this.entityClass.buildWhereForId(
@@ -285,7 +289,7 @@ export function FilterRepositoryMixin<
285289
replaceById = async (
286290
id: ID,
287291
data: DataObject<T>,
288-
options?: Options
292+
options?: FilterOptions
289293
) => {
290294
await this.updateAll(
291295
{
@@ -304,9 +308,9 @@ export function FilterRepositoryMixin<
304308
/**
305309
* Filter where and delete all entities
306310
*/
307-
deleteAll = async (where?: Where<T>, options?: Options) => {
311+
deleteAll = async (where?: Where<T>, options?: FilterOptions) => {
308312
const filterContext = new InvocationContext(
309-
undefined as any,
313+
options?.context as Context,
310314
this,
311315
"delete",
312316
Array.from(arguments)
@@ -321,7 +325,7 @@ export function FilterRepositoryMixin<
321325
/**
322326
* Filter delete() using deleteAll()
323327
*/
324-
delete = async (entity: T, options?: Options) => {
328+
delete = async (entity: T, options?: FilterOptions) => {
325329
await this.deleteAll(
326330
this.entityClass.buildWhereForId(
327331
this.entityClass.getIdOf(entity)
@@ -333,7 +337,7 @@ export function FilterRepositoryMixin<
333337
/**
334338
* Filter deleteById() using deleteAll()
335339
*/
336-
deleteById = async (id: ID, options?: Options) => {
340+
deleteById = async (id: ID, options?: FilterOptions) => {
337341
await this.deleteAll(
338342
this.entityClass.buildWhereForId(id),
339343
options

0 commit comments

Comments
 (0)