-
Notifications
You must be signed in to change notification settings - Fork 70
/
survey-response.repository.ts
83 lines (78 loc) · 2.69 KB
/
survey-response.repository.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import {Getter, inject} from '@loopback/core';
import {
repository,
BelongsToAccessor,
HasManyRepositoryFactory,
juggler,
} from '@loopback/repository';
import {
DefaultUserModifyCrudRepository,
IAuthUserWithPermissions,
} from '@sourceloop/core';
import {AuthenticationBindings} from 'loopback4-authentication';
import {
SurveyResponse,
SurveyResponseRelations,
SurveyCycle,
SurveyResponder,
} from '../models';
import {SurveyResponseDetail} from '../models/survey-response-detail.model';
import {SurveyCycleRepository} from './survey-cycle.repository';
import {SurveyResponderRepository} from './survey-responder.repository';
import {SurveyDbSourceName} from '../types';
import {SurveyResponseDetailRepository} from './survey-response-detail.repository';
export class SurveyResponseRepository extends DefaultUserModifyCrudRepository<
SurveyResponse,
typeof SurveyResponse.prototype.id,
SurveyResponseRelations
> {
public readonly surveyCycle: BelongsToAccessor<
SurveyCycle,
typeof SurveyResponse.prototype.id
>;
public readonly surveyResponseDetails: HasManyRepositoryFactory<
SurveyResponseDetail,
typeof SurveyResponse.prototype.id
>;
public readonly surveyResponder: BelongsToAccessor<
SurveyResponder,
typeof SurveyResponse.prototype.id
>;
constructor(
@inject(`datasources.${SurveyDbSourceName}`) dataSource: juggler.DataSource,
@repository.getter('SurveyCycleRepository')
protected surveyCycleRepositoryGetter: Getter<SurveyCycleRepository>,
@repository.getter('SurveyResponseDetailRepository')
protected surveyResponseDetailRepositoryGetter: Getter<SurveyResponseDetailRepository>,
@repository.getter('SurveyResponderRepository')
protected surveyResponderRepositoryGetter: Getter<SurveyResponderRepository>,
@inject.getter(AuthenticationBindings.CURRENT_USER)
public readonly getCurrentUser: Getter<IAuthUserWithPermissions>,
) {
super(SurveyResponse, dataSource, getCurrentUser);
this.surveyResponder = this.createBelongsToAccessorFor(
'surveyResponder',
surveyResponderRepositoryGetter,
);
this.registerInclusionResolver(
'surveyResponder',
this.surveyResponder.inclusionResolver,
);
this.surveyResponseDetails = this.createHasManyRepositoryFactoryFor(
'surveyResponseDetails',
surveyResponseDetailRepositoryGetter,
);
this.registerInclusionResolver(
'surveyResponseDetails',
this.surveyResponseDetails.inclusionResolver,
);
this.surveyCycle = this.createBelongsToAccessorFor(
'surveyCycle',
surveyCycleRepositoryGetter,
);
this.registerInclusionResolver(
'surveyCycle',
this.surveyCycle.inclusionResolver,
);
}
}