Skip to content

Commit e0c5464

Browse files
Samarpan  BhattacharyaSamarpan  Bhattacharya
Samarpan Bhattacharya
authored and
Samarpan Bhattacharya
committed
fix(repository): type mismatch for Iauthuser
gh-0
1 parent 03f8144 commit e0c5464

10 files changed

+30
-28
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ Whenever any entry is deleted using deleteById, delete and deleteAll repository
197197

198198
```ts
199199
import {Getter, inject} from '@loopback/core';
200-
import {SoftCrudRepository} from 'loopback4-soft-delete';
200+
import {SoftCrudRepository, IUser} from 'loopback4-soft-delete';
201201
import {AuthenticationBindings, IAuthUser} from 'loopback4-authentication';
202202

203203
import {PgdbDataSource} from '../datasources';
@@ -211,10 +211,10 @@ export class UserRepository extends SoftCrudRepository<
211211
constructor(
212212
@inject('datasources.pgdb') dataSource: PgdbDataSource,
213213
@inject.getter(AuthenticationBindings.CURRENT_USER, {optional: true})
214-
protected readonly getCurrentUser: Getter<IAuthUser | undefined>,
214+
protected readonly getCurrentUser: Getter<(IAuthUser & IUser) | undefined>,
215215
protected readonly deletedByIdKey: string = 'userTenantId',
216216
) {
217-
super(User, dataSource, getCurrentUser);
217+
super(User, dataSource, getCurrentUser, deletedByIdKey);
218218
}
219219
}
220220
```

src/__tests__/unit/mixin/soft-crud.mixin.unit.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {
1818
import {fail} from 'assert';
1919
import {SoftCrudRepositoryMixin} from '../../..';
2020
import {SoftDeleteEntity} from '../../../models';
21-
import {IAuthUser} from '../../../types';
21+
import {IUser} from '../../../types';
2222

2323
/**
2424
* A mock up model class
@@ -56,7 +56,7 @@ class CustomerCrudRepo extends SoftCrudRepositoryMixin<
5656
prototype: Customer;
5757
},
5858
dataSource: juggler.DataSource,
59-
readonly getCurrentUser: Getter<IAuthUser | undefined>,
59+
readonly getCurrentUser: Getter<IUser | undefined>,
6060
) {
6161
super(entityClass, dataSource, getCurrentUser);
6262
}
@@ -75,7 +75,7 @@ class Customer2CrudRepo extends SoftCrudRepositoryMixin<
7575
prototype: Customer;
7676
},
7777
dataSource: juggler.DataSource,
78-
readonly getCurrentUser: Getter<IAuthUser | undefined>,
78+
readonly getCurrentUser: Getter<IUser | undefined>,
7979
readonly deletedByIdKey: string = 'id',
8080
) {
8181
super(entityClass, dataSource, getCurrentUser);

src/__tests__/unit/mixin/soft-delete-entity.mixin.unit.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import {
1717

1818
import {PropertyDefinition} from 'loopback-datasource-juggler';
1919
import {SoftCrudRepositoryMixin, SoftDeleteEntityMixin} from '../../..';
20-
import {IAuthUser} from '../../../types';
20+
import {IUser} from '../../../types';
2121
/**
2222
* A mock up model class
2323
*/
@@ -80,7 +80,7 @@ class CustomerCrudRepo extends SoftCrudRepositoryMixin<
8080
>(DefaultTransactionalRepository) {
8181
constructor(
8282
dataSource: juggler.DataSource,
83-
readonly getCurrentUser: Getter<IAuthUser | undefined>,
83+
readonly getCurrentUser: Getter<IUser | undefined>,
8484
) {
8585
super(CustomerSoftDelete, dataSource);
8686
}

src/__tests__/unit/repository/default-transaction-soft-crud.repository.base.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {
1616
import {fail} from 'assert';
1717
import {SoftDeleteEntity} from '../../../models';
1818
import {DefaultTransactionSoftCrudRepository} from '../../../repositories';
19-
import {IAuthUser} from '../../../types';
19+
import {IUser} from '../../../types';
2020

2121
/**
2222
* A mock up model class
@@ -50,7 +50,7 @@ class CustomerCrudRepo extends DefaultTransactionSoftCrudRepository<
5050
prototype: Customer;
5151
},
5252
dataSource: juggler.DataSource,
53-
protected readonly getCurrentUser?: Getter<IAuthUser | undefined>,
53+
protected readonly getCurrentUser?: Getter<IUser | undefined>,
5454
) {
5555
super(entityClass, dataSource, getCurrentUser);
5656
}
@@ -65,7 +65,7 @@ class Customer2CrudRepo extends DefaultTransactionSoftCrudRepository<
6565
prototype: Customer2;
6666
},
6767
dataSource: juggler.DataSource,
68-
protected readonly getCurrentUser?: Getter<IAuthUser | undefined>,
68+
protected readonly getCurrentUser?: Getter<IUser | undefined>,
6969
protected readonly deletedByIdKey: string = 'id',
7070
) {
7171
super(entityClass, dataSource, getCurrentUser);

src/__tests__/unit/repository/soft-crud.repository.unit.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {
1616
import {fail} from 'assert';
1717
import {SoftDeleteEntity} from '../../../models';
1818
import {SoftCrudRepository} from '../../../repositories';
19-
import {IAuthUser} from '../../../types';
19+
import {IUser} from '../../../types';
2020

2121
/**
2222
* A mock up model class
@@ -47,7 +47,7 @@ class CustomerCrudRepo extends SoftCrudRepository<Customer, number> {
4747
prototype: Customer;
4848
},
4949
dataSource: juggler.DataSource,
50-
protected readonly getCurrentUser?: Getter<IAuthUser | undefined>,
50+
protected readonly getCurrentUser?: Getter<IUser | undefined>,
5151
) {
5252
super(entityClass, dataSource, getCurrentUser);
5353
}
@@ -59,7 +59,7 @@ class Customer2CrudRepo extends SoftCrudRepository<Customer2, number> {
5959
prototype: Customer;
6060
},
6161
dataSource: juggler.DataSource,
62-
protected readonly getCurrentUser?: Getter<IAuthUser | undefined>,
62+
protected readonly getCurrentUser?: Getter<IUser | undefined>,
6363
protected readonly deletedByIdKey: string = 'id',
6464
) {
6565
super(entityClass, dataSource, getCurrentUser);

src/index.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
export * from './component';
2-
export * from './repositories';
3-
export * from './models';
2+
export * from './error-keys';
43
export * from './mixins';
4+
export * from './models';
5+
export * from './repositories';
6+
export * from './types';

src/mixins/soft-crud.repository.mixin.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ import {ErrorKeys} from '../error-keys';
1717
import {SoftDeleteEntity} from '../models';
1818
import {
1919
AbstractConstructor,
20-
IAuthUser,
2120
IBaseEntity,
2221
ISoftCrudRepositoryMixin,
22+
IUser,
2323
} from '../types';
2424

2525
export function SoftCrudRepositoryMixin<
@@ -34,7 +34,7 @@ export function SoftCrudRepositoryMixin<
3434
extends base
3535
implements ISoftCrudRepositoryMixin<E, ID, R>
3636
{
37-
getCurrentUser: Getter<IAuthUser | undefined>;
37+
getCurrentUser: Getter<IUser | undefined>;
3838
deletedByIdKey = 'id';
3939

4040
find(filter?: Filter<E>, options?: Options): Promise<(E & R)[]> {
@@ -335,7 +335,7 @@ export function SoftCrudRepositoryMixin<
335335
if (!currentUser) {
336336
return undefined;
337337
}
338-
return currentUser[this.deletedByIdKey]?.toString();
338+
return currentUser[this.deletedByIdKey] as string;
339339
}
340340
}
341341
return SoftCrudRepository;

src/repositories/default-transaction-soft-crud.repository.base.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {HttpErrors} from '@loopback/rest';
1515
import {Options} from 'loopback-datasource-juggler';
1616
import {ErrorKeys} from '../error-keys';
1717
import {SoftDeleteEntity} from '../models';
18-
import {IAuthUser} from '../types';
18+
import {IUser} from '../types';
1919

2020
export abstract class DefaultTransactionSoftCrudRepository<
2121
T extends SoftDeleteEntity,
@@ -27,7 +27,7 @@ export abstract class DefaultTransactionSoftCrudRepository<
2727
prototype: T;
2828
},
2929
dataSource: juggler.DataSource,
30-
protected readonly getCurrentUser?: Getter<IAuthUser | undefined>,
30+
protected readonly getCurrentUser?: Getter<IUser | undefined>,
3131
protected readonly deletedByIdKey: string = 'id',
3232
) {
3333
super(entityClass, dataSource);
@@ -320,6 +320,6 @@ export abstract class DefaultTransactionSoftCrudRepository<
320320
if (!currentUser) {
321321
return undefined;
322322
}
323-
return currentUser[this.deletedByIdKey]?.toString();
323+
return currentUser[this.deletedByIdKey] as string;
324324
}
325325
}

src/repositories/soft-crud.repository.base.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {AnyObject, Options} from 'loopback-datasource-juggler';
1616

1717
import {ErrorKeys} from '../error-keys';
1818
import {SoftDeleteEntity} from '../models';
19-
import {IAuthUser} from '../types';
19+
import {IUser} from '../types';
2020

2121
export abstract class SoftCrudRepository<
2222
T extends SoftDeleteEntity,
@@ -28,7 +28,7 @@ export abstract class SoftCrudRepository<
2828
prototype: T;
2929
},
3030
dataSource: juggler.DataSource,
31-
protected readonly getCurrentUser?: Getter<IAuthUser | undefined>,
31+
protected readonly getCurrentUser?: Getter<IUser | undefined>,
3232
protected readonly deletedByIdKey: string = 'id',
3333
) {
3434
super(entityClass, dataSource);
@@ -354,6 +354,6 @@ export abstract class SoftCrudRepository<
354354
if (!currentUser) {
355355
return undefined;
356356
}
357-
return currentUser[this.deletedByIdKey]?.toString();
357+
return currentUser[this.deletedByIdKey] as string;
358358
}
359359
}

src/types.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ import {
1212
export type AbstractConstructor<T> = abstract new (...args: any[]) => T;
1313
// sonarignore:end
1414

15-
export interface IAuthUser {
15+
export interface IUser {
1616
id?: number | string;
17-
[key: string]: number | string | undefined;
17+
[key: string]: unknown;
1818
}
1919

2020
export interface IBaseEntityConfig {
@@ -30,7 +30,7 @@ export interface IBaseEntity {
3030
}
3131

3232
export interface ISoftCrudRepositoryMixin<E extends object, ID, R> {
33-
getCurrentUser: Getter<IAuthUser | undefined>;
33+
getCurrentUser: Getter<IUser | undefined>;
3434
findAll(filter?: Filter<E>, options?: Options): Promise<(E & R)[]>;
3535
deleteHard(entity: E, options?: Options): Promise<void>;
3636
deleteByIdHard(id: ID, options?: Options): Promise<void>;

0 commit comments

Comments
 (0)