@aibrains/shared-types 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +170 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +74 -0
- package/dist/index.js.map +1 -0
- package/dist/mappers/edfi/calendar.mapper.d.ts +158 -0
- package/dist/mappers/edfi/calendar.mapper.d.ts.map +1 -0
- package/dist/mappers/edfi/calendar.mapper.js +235 -0
- package/dist/mappers/edfi/calendar.mapper.js.map +1 -0
- package/dist/mappers/edfi/credential.mapper.d.ts +50 -0
- package/dist/mappers/edfi/credential.mapper.d.ts.map +1 -0
- package/dist/mappers/edfi/credential.mapper.js +123 -0
- package/dist/mappers/edfi/credential.mapper.js.map +1 -0
- package/dist/mappers/edfi/index.d.ts +10 -0
- package/dist/mappers/edfi/index.d.ts.map +1 -0
- package/dist/mappers/edfi/index.js +26 -0
- package/dist/mappers/edfi/index.js.map +1 -0
- package/dist/mappers/edfi/staff.mapper.d.ts +96 -0
- package/dist/mappers/edfi/staff.mapper.d.ts.map +1 -0
- package/dist/mappers/edfi/staff.mapper.js +138 -0
- package/dist/mappers/edfi/staff.mapper.js.map +1 -0
- package/dist/mappers/index.d.ts +7 -0
- package/dist/mappers/index.d.ts.map +1 -0
- package/dist/mappers/index.js +23 -0
- package/dist/mappers/index.js.map +1 -0
- package/dist/schemas/academics/assignment.schema.d.ts +1463 -0
- package/dist/schemas/academics/assignment.schema.d.ts.map +1 -0
- package/dist/schemas/academics/assignment.schema.js +195 -0
- package/dist/schemas/academics/assignment.schema.js.map +1 -0
- package/dist/schemas/academics/attendance.schema.d.ts +762 -0
- package/dist/schemas/academics/attendance.schema.d.ts.map +1 -0
- package/dist/schemas/academics/attendance.schema.js +250 -0
- package/dist/schemas/academics/attendance.schema.js.map +1 -0
- package/dist/schemas/academics/classroom.schema.d.ts +742 -0
- package/dist/schemas/academics/classroom.schema.d.ts.map +1 -0
- package/dist/schemas/academics/classroom.schema.js +164 -0
- package/dist/schemas/academics/classroom.schema.js.map +1 -0
- package/dist/schemas/academics/course-section.schema.d.ts +388 -0
- package/dist/schemas/academics/course-section.schema.d.ts.map +1 -0
- package/dist/schemas/academics/course-section.schema.js +128 -0
- package/dist/schemas/academics/course-section.schema.js.map +1 -0
- package/dist/schemas/academics/course.schema.d.ts +778 -0
- package/dist/schemas/academics/course.schema.d.ts.map +1 -0
- package/dist/schemas/academics/course.schema.js +207 -0
- package/dist/schemas/academics/course.schema.js.map +1 -0
- package/dist/schemas/academics/grade.schema.d.ts +848 -0
- package/dist/schemas/academics/grade.schema.d.ts.map +1 -0
- package/dist/schemas/academics/grade.schema.js +251 -0
- package/dist/schemas/academics/grade.schema.js.map +1 -0
- package/dist/schemas/academics/index.d.ts +13 -0
- package/dist/schemas/academics/index.d.ts.map +1 -0
- package/dist/schemas/academics/index.js +29 -0
- package/dist/schemas/academics/index.js.map +1 -0
- package/dist/schemas/academics/student.schema.d.ts +2891 -0
- package/dist/schemas/academics/student.schema.d.ts.map +1 -0
- package/dist/schemas/academics/student.schema.js +249 -0
- package/dist/schemas/academics/student.schema.js.map +1 -0
- package/dist/schemas/common.d.ts +183 -0
- package/dist/schemas/common.d.ts.map +1 -0
- package/dist/schemas/common.js +126 -0
- package/dist/schemas/common.js.map +1 -0
- package/dist/schemas/enrollment/enrollment.schema.d.ts +2799 -0
- package/dist/schemas/enrollment/enrollment.schema.d.ts.map +1 -0
- package/dist/schemas/enrollment/enrollment.schema.js +435 -0
- package/dist/schemas/enrollment/enrollment.schema.js.map +1 -0
- package/dist/schemas/enrollment/index.d.ts +7 -0
- package/dist/schemas/enrollment/index.d.ts.map +1 -0
- package/dist/schemas/enrollment/index.js +23 -0
- package/dist/schemas/enrollment/index.js.map +1 -0
- package/dist/schemas/identity/academic-year.schema.d.ts +546 -0
- package/dist/schemas/identity/academic-year.schema.d.ts.map +1 -0
- package/dist/schemas/identity/academic-year.schema.js +137 -0
- package/dist/schemas/identity/academic-year.schema.js.map +1 -0
- package/dist/schemas/identity/auth.schema.d.ts +670 -0
- package/dist/schemas/identity/auth.schema.d.ts.map +1 -0
- package/dist/schemas/identity/auth.schema.js +126 -0
- package/dist/schemas/identity/auth.schema.js.map +1 -0
- package/dist/schemas/identity/bell-schedule.schema.d.ts +630 -0
- package/dist/schemas/identity/bell-schedule.schema.d.ts.map +1 -0
- package/dist/schemas/identity/bell-schedule.schema.js +143 -0
- package/dist/schemas/identity/bell-schedule.schema.js.map +1 -0
- package/dist/schemas/identity/calendar-date.schema.d.ts +830 -0
- package/dist/schemas/identity/calendar-date.schema.d.ts.map +1 -0
- package/dist/schemas/identity/calendar-date.schema.js +208 -0
- package/dist/schemas/identity/calendar-date.schema.js.map +1 -0
- package/dist/schemas/identity/credential.schema.d.ts +472 -0
- package/dist/schemas/identity/credential.schema.d.ts.map +1 -0
- package/dist/schemas/identity/credential.schema.js +200 -0
- package/dist/schemas/identity/credential.schema.js.map +1 -0
- package/dist/schemas/identity/department.schema.d.ts +567 -0
- package/dist/schemas/identity/department.schema.d.ts.map +1 -0
- package/dist/schemas/identity/department.schema.js +113 -0
- package/dist/schemas/identity/department.schema.js.map +1 -0
- package/dist/schemas/identity/index.d.ts +21 -0
- package/dist/schemas/identity/index.d.ts.map +1 -0
- package/dist/schemas/identity/index.js +39 -0
- package/dist/schemas/identity/index.js.map +1 -0
- package/dist/schemas/identity/leave.schema.d.ts +725 -0
- package/dist/schemas/identity/leave.schema.d.ts.map +1 -0
- package/dist/schemas/identity/leave.schema.js +204 -0
- package/dist/schemas/identity/leave.schema.js.map +1 -0
- package/dist/schemas/identity/role.schema.d.ts +356 -0
- package/dist/schemas/identity/role.schema.d.ts.map +1 -0
- package/dist/schemas/identity/role.schema.js +124 -0
- package/dist/schemas/identity/role.schema.js.map +1 -0
- package/dist/schemas/identity/school-year.schema.d.ts +303 -0
- package/dist/schemas/identity/school-year.schema.d.ts.map +1 -0
- package/dist/schemas/identity/school-year.schema.js +59 -0
- package/dist/schemas/identity/school-year.schema.js.map +1 -0
- package/dist/schemas/identity/school.schema.d.ts +844 -0
- package/dist/schemas/identity/school.schema.d.ts.map +1 -0
- package/dist/schemas/identity/school.schema.js +139 -0
- package/dist/schemas/identity/school.schema.js.map +1 -0
- package/dist/schemas/identity/security.schema.d.ts +422 -0
- package/dist/schemas/identity/security.schema.d.ts.map +1 -0
- package/dist/schemas/identity/security.schema.js +151 -0
- package/dist/schemas/identity/security.schema.js.map +1 -0
- package/dist/schemas/identity/session.schema.d.ts +193 -0
- package/dist/schemas/identity/session.schema.d.ts.map +1 -0
- package/dist/schemas/identity/session.schema.js +59 -0
- package/dist/schemas/identity/session.schema.js.map +1 -0
- package/dist/schemas/identity/staff.schema.d.ts +1037 -0
- package/dist/schemas/identity/staff.schema.d.ts.map +1 -0
- package/dist/schemas/identity/staff.schema.js +251 -0
- package/dist/schemas/identity/staff.schema.js.map +1 -0
- package/dist/schemas/identity/tenant.schema.d.ts +313 -0
- package/dist/schemas/identity/tenant.schema.d.ts.map +1 -0
- package/dist/schemas/identity/tenant.schema.js +81 -0
- package/dist/schemas/identity/tenant.schema.js.map +1 -0
- package/dist/schemas/identity/user.schema.d.ts +921 -0
- package/dist/schemas/identity/user.schema.d.ts.map +1 -0
- package/dist/schemas/identity/user.schema.js +201 -0
- package/dist/schemas/identity/user.schema.js.map +1 -0
- package/dist/schemas/index.d.ts +10 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +26 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/validators/academic-year.d.ts +90 -0
- package/dist/validators/academic-year.d.ts.map +1 -0
- package/dist/validators/academic-year.js +190 -0
- package/dist/validators/academic-year.js.map +1 -0
- package/dist/validators/date-range.d.ts +142 -0
- package/dist/validators/date-range.d.ts.map +1 -0
- package/dist/validators/date-range.js +170 -0
- package/dist/validators/date-range.js.map +1 -0
- package/dist/validators/grade-level.d.ts +80 -0
- package/dist/validators/grade-level.d.ts.map +1 -0
- package/dist/validators/grade-level.js +157 -0
- package/dist/validators/grade-level.js.map +1 -0
- package/dist/validators/index.d.ts +10 -0
- package/dist/validators/index.d.ts.map +1 -0
- package/dist/validators/index.js +26 -0
- package/dist/validators/index.js.map +1 -0
- package/dist/validators/password.d.ts +60 -0
- package/dist/validators/password.d.ts.map +1 -0
- package/dist/validators/password.js +81 -0
- package/dist/validators/password.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Calendar Ed-Fi Mapper
|
|
4
|
+
*
|
|
5
|
+
* Converts EdForge Calendar data to Ed-Fi Data Standard format for compliance export.
|
|
6
|
+
* Ed-Fi Data Standard v6.0: https://docs.ed-fi.org/reference/data-exchange/data-standard/
|
|
7
|
+
*
|
|
8
|
+
* Ed-Fi Calendar Domain:
|
|
9
|
+
* - Calendar - School calendar for an academic year
|
|
10
|
+
* - CalendarDate - Individual calendar dates with events
|
|
11
|
+
* - AcademicWeek - Academic weeks within a calendar
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.toEdFiCalendar = toEdFiCalendar;
|
|
15
|
+
exports.toEdFiCalendarDate = toEdFiCalendarDate;
|
|
16
|
+
exports.toEdFiGradingPeriod = toEdFiGradingPeriod;
|
|
17
|
+
exports.toEdFiBellSchedule = toEdFiBellSchedule;
|
|
18
|
+
exports.toEdFiCalendarBatch = toEdFiCalendarBatch;
|
|
19
|
+
exports.toEdFiCalendarDateBatch = toEdFiCalendarDateBatch;
|
|
20
|
+
exports.toEdFiGradingPeriodBatch = toEdFiGradingPeriodBatch;
|
|
21
|
+
// ============================================
|
|
22
|
+
// Mapping Functions
|
|
23
|
+
// ============================================
|
|
24
|
+
/**
|
|
25
|
+
* Map EdForge calendar type to Ed-Fi calendarTypeDescriptor
|
|
26
|
+
*/
|
|
27
|
+
function mapCalendarTypeToEdFi(calendarType) {
|
|
28
|
+
const typeMap = {
|
|
29
|
+
'semester': 'uri://ed-fi.org/CalendarTypeDescriptor#Student Specific',
|
|
30
|
+
'quarter': 'uri://ed-fi.org/CalendarTypeDescriptor#Student Specific',
|
|
31
|
+
'trimester': 'uri://ed-fi.org/CalendarTypeDescriptor#Student Specific',
|
|
32
|
+
};
|
|
33
|
+
return typeMap[calendarType] || 'uri://ed-fi.org/CalendarTypeDescriptor#Student Specific';
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Map EdForge term type to Ed-Fi gradingPeriodDescriptor
|
|
37
|
+
*/
|
|
38
|
+
function mapTermTypeToEdFi(termType) {
|
|
39
|
+
const termMap = {
|
|
40
|
+
'semester': 'uri://ed-fi.org/GradingPeriodDescriptor#Semester',
|
|
41
|
+
'quarter': 'uri://ed-fi.org/GradingPeriodDescriptor#Quarter',
|
|
42
|
+
'trimester': 'uri://ed-fi.org/GradingPeriodDescriptor#Trimester',
|
|
43
|
+
'year': 'uri://ed-fi.org/GradingPeriodDescriptor#End of Year',
|
|
44
|
+
};
|
|
45
|
+
return termMap[termType] || 'uri://ed-fi.org/GradingPeriodDescriptor#Grading Period';
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Map EdForge calendar event type to Ed-Fi calendarEventDescriptor
|
|
49
|
+
*/
|
|
50
|
+
function mapCalendarEventToEdFi(eventType) {
|
|
51
|
+
const eventMap = {
|
|
52
|
+
'instructional': 'uri://ed-fi.org/CalendarEventDescriptor#Instructional day',
|
|
53
|
+
'holiday': 'uri://ed-fi.org/CalendarEventDescriptor#Holiday',
|
|
54
|
+
'teacher_workday': 'uri://ed-fi.org/CalendarEventDescriptor#Teacher only day',
|
|
55
|
+
'professional_development': 'uri://ed-fi.org/CalendarEventDescriptor#Teacher only day',
|
|
56
|
+
'early_dismissal': 'uri://ed-fi.org/CalendarEventDescriptor#Make-up day',
|
|
57
|
+
'late_start': 'uri://ed-fi.org/CalendarEventDescriptor#Make-up day',
|
|
58
|
+
'weather_closure': 'uri://ed-fi.org/CalendarEventDescriptor#Weather day',
|
|
59
|
+
'emergency_closure': 'uri://ed-fi.org/CalendarEventDescriptor#Emergency day',
|
|
60
|
+
'parent_conference': 'uri://ed-fi.org/CalendarEventDescriptor#Student late arrival/early dismissal',
|
|
61
|
+
'testing': 'uri://ed-fi.org/CalendarEventDescriptor#Instructional day',
|
|
62
|
+
'assembly': 'uri://ed-fi.org/CalendarEventDescriptor#Instructional day',
|
|
63
|
+
'field_trip': 'uri://ed-fi.org/CalendarEventDescriptor#Instructional day',
|
|
64
|
+
'other': 'uri://ed-fi.org/CalendarEventDescriptor#Other',
|
|
65
|
+
};
|
|
66
|
+
return eventMap[eventType] || 'uri://ed-fi.org/CalendarEventDescriptor#Other';
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Extract school year from date range (e.g., 2024-2025 from Aug 2024 - May 2025)
|
|
70
|
+
*/
|
|
71
|
+
function extractSchoolYear(startDate) {
|
|
72
|
+
const start = new Date(startDate);
|
|
73
|
+
const month = start.getMonth();
|
|
74
|
+
// If school starts in fall (July-Dec), use that year; otherwise use previous year
|
|
75
|
+
return month >= 6 ? start.getFullYear() : start.getFullYear() - 1;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Convert EdForge AcademicYear to Ed-Fi Calendar format
|
|
79
|
+
*/
|
|
80
|
+
function toEdFiCalendar(academicYear, schoolEdFiId, gradeLevels) {
|
|
81
|
+
const schoolYear = extractSchoolYear(academicYear.startDate);
|
|
82
|
+
const edfiCalendar = {
|
|
83
|
+
calendarCode: `${academicYear.schoolId}-${academicYear.yearId}`,
|
|
84
|
+
schoolReference: {
|
|
85
|
+
schoolId: schoolEdFiId,
|
|
86
|
+
},
|
|
87
|
+
schoolYearTypeReference: {
|
|
88
|
+
schoolYear,
|
|
89
|
+
},
|
|
90
|
+
calendarTypeDescriptor: mapCalendarTypeToEdFi(academicYear.calendarType),
|
|
91
|
+
};
|
|
92
|
+
// Add grade levels if provided
|
|
93
|
+
if (gradeLevels && gradeLevels.length > 0) {
|
|
94
|
+
edfiCalendar.gradeLevels = gradeLevels.map(gl => ({
|
|
95
|
+
gradeLevelDescriptor: `uri://ed-fi.org/GradeLevelDescriptor#${gl}`,
|
|
96
|
+
}));
|
|
97
|
+
}
|
|
98
|
+
// EdForge extension data for round-trip preservation
|
|
99
|
+
edfiCalendar._ext = {
|
|
100
|
+
edforge_yearId: academicYear.yearId,
|
|
101
|
+
edforge_schoolId: academicYear.schoolId,
|
|
102
|
+
edforge_name: academicYear.name,
|
|
103
|
+
edforge_status: academicYear.status,
|
|
104
|
+
edforge_isCurrent: academicYear.isCurrent,
|
|
105
|
+
};
|
|
106
|
+
return edfiCalendar;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Convert EdForge CalendarDate to Ed-Fi CalendarDate format
|
|
110
|
+
*/
|
|
111
|
+
function toEdFiCalendarDate(calendarDate, schoolEdFiId, calendarCode, schoolYear) {
|
|
112
|
+
const edfiCalendarDate = {
|
|
113
|
+
calendarReference: {
|
|
114
|
+
calendarCode,
|
|
115
|
+
schoolId: schoolEdFiId,
|
|
116
|
+
schoolYear,
|
|
117
|
+
},
|
|
118
|
+
date: calendarDate.date,
|
|
119
|
+
};
|
|
120
|
+
// Map calendar events
|
|
121
|
+
if (calendarDate.calendarEvents && calendarDate.calendarEvents.length > 0) {
|
|
122
|
+
edfiCalendarDate.calendarEvents = calendarDate.calendarEvents.map(event => ({
|
|
123
|
+
calendarEventDescriptor: mapCalendarEventToEdFi(event.eventType),
|
|
124
|
+
}));
|
|
125
|
+
}
|
|
126
|
+
else if (calendarDate.isInstructionalDay) {
|
|
127
|
+
edfiCalendarDate.calendarEvents = [{
|
|
128
|
+
calendarEventDescriptor: 'uri://ed-fi.org/CalendarEventDescriptor#Instructional day',
|
|
129
|
+
}];
|
|
130
|
+
}
|
|
131
|
+
else if (calendarDate.isHoliday) {
|
|
132
|
+
edfiCalendarDate.calendarEvents = [{
|
|
133
|
+
calendarEventDescriptor: 'uri://ed-fi.org/CalendarEventDescriptor#Holiday',
|
|
134
|
+
}];
|
|
135
|
+
}
|
|
136
|
+
// EdForge extension data
|
|
137
|
+
edfiCalendarDate._ext = {
|
|
138
|
+
edforge_calendarDateId: calendarDate.calendarDateId,
|
|
139
|
+
edforge_isInstructionalDay: calendarDate.isInstructionalDay,
|
|
140
|
+
edforge_isHoliday: calendarDate.isHoliday,
|
|
141
|
+
edforge_isWeekend: calendarDate.isWeekend,
|
|
142
|
+
edforge_dayOfWeek: calendarDate.dayOfWeek,
|
|
143
|
+
edforge_bellScheduleId: calendarDate.bellScheduleId,
|
|
144
|
+
};
|
|
145
|
+
return edfiCalendarDate;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Convert EdForge GradingPeriod to Ed-Fi GradingPeriod format
|
|
149
|
+
*/
|
|
150
|
+
function toEdFiGradingPeriod(gradingPeriod, schoolEdFiId, schoolYear) {
|
|
151
|
+
return {
|
|
152
|
+
gradingPeriodDescriptor: mapTermTypeToEdFi(gradingPeriod.termType),
|
|
153
|
+
periodSequence: gradingPeriod.sequence,
|
|
154
|
+
schoolReference: {
|
|
155
|
+
schoolId: schoolEdFiId,
|
|
156
|
+
},
|
|
157
|
+
schoolYearTypeReference: {
|
|
158
|
+
schoolYear,
|
|
159
|
+
},
|
|
160
|
+
beginDate: gradingPeriod.startDate,
|
|
161
|
+
endDate: gradingPeriod.endDate,
|
|
162
|
+
_ext: {
|
|
163
|
+
edforge_termId: gradingPeriod.termId,
|
|
164
|
+
edforge_yearId: gradingPeriod.yearId,
|
|
165
|
+
edforge_schoolId: gradingPeriod.schoolId,
|
|
166
|
+
edforge_name: gradingPeriod.name,
|
|
167
|
+
edforge_gradesDueDate: gradingPeriod.gradesDueDate,
|
|
168
|
+
edforge_reportCardDate: gradingPeriod.reportCardDate,
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Convert EdForge BellSchedule to Ed-Fi BellSchedule format
|
|
174
|
+
*/
|
|
175
|
+
function toEdFiBellSchedule(bellSchedule, schoolEdFiId) {
|
|
176
|
+
// Calculate total instructional time from class periods
|
|
177
|
+
const instructionalPeriods = bellSchedule.classPeriods.filter(p => p.periodType === 'instructional');
|
|
178
|
+
let totalInstructionalTime = 0;
|
|
179
|
+
for (const period of instructionalPeriods) {
|
|
180
|
+
const [startHour, startMin] = period.startTime.split(':').map(Number);
|
|
181
|
+
const [endHour, endMin] = period.endTime.split(':').map(Number);
|
|
182
|
+
const startMinutes = startHour * 60 + startMin;
|
|
183
|
+
const endMinutes = endHour * 60 + endMin;
|
|
184
|
+
totalInstructionalTime += endMinutes - startMinutes;
|
|
185
|
+
}
|
|
186
|
+
// Find earliest start and latest end times
|
|
187
|
+
const startTimes = bellSchedule.classPeriods.map(p => p.startTime).sort();
|
|
188
|
+
const endTimes = bellSchedule.classPeriods.map(p => p.endTime).sort().reverse();
|
|
189
|
+
return {
|
|
190
|
+
bellScheduleName: bellSchedule.bellScheduleName,
|
|
191
|
+
schoolReference: {
|
|
192
|
+
schoolId: schoolEdFiId,
|
|
193
|
+
},
|
|
194
|
+
classPeriods: bellSchedule.classPeriods.map(p => ({
|
|
195
|
+
classPeriodReference: {
|
|
196
|
+
classPeriodName: p.classPeriodName,
|
|
197
|
+
schoolId: schoolEdFiId,
|
|
198
|
+
},
|
|
199
|
+
})),
|
|
200
|
+
totalInstructionalTime,
|
|
201
|
+
startTime: startTimes[0],
|
|
202
|
+
endTime: endTimes[0],
|
|
203
|
+
_ext: {
|
|
204
|
+
edforge_bellScheduleId: bellSchedule.bellScheduleId,
|
|
205
|
+
edforge_tenantId: bellSchedule.tenantId,
|
|
206
|
+
edforge_schoolId: bellSchedule.schoolId,
|
|
207
|
+
edforge_type: bellSchedule.dayType,
|
|
208
|
+
edforge_isDefault: bellSchedule.isDefault,
|
|
209
|
+
},
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
// ============================================
|
|
213
|
+
// Batch Conversion Functions
|
|
214
|
+
// ============================================
|
|
215
|
+
/**
|
|
216
|
+
* Batch convert EdForge AcademicYears to Ed-Fi Calendar format
|
|
217
|
+
*/
|
|
218
|
+
function toEdFiCalendarBatch(academicYears, schoolEdFiIdMap) {
|
|
219
|
+
return academicYears
|
|
220
|
+
.filter(ay => schoolEdFiIdMap.has(ay.schoolId))
|
|
221
|
+
.map(ay => toEdFiCalendar(ay, schoolEdFiIdMap.get(ay.schoolId)));
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Batch convert EdForge CalendarDates to Ed-Fi CalendarDate format
|
|
225
|
+
*/
|
|
226
|
+
function toEdFiCalendarDateBatch(calendarDates, schoolEdFiId, calendarCode, schoolYear) {
|
|
227
|
+
return calendarDates.map(cd => toEdFiCalendarDate(cd, schoolEdFiId, calendarCode, schoolYear));
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Batch convert EdForge GradingPeriods to Ed-Fi GradingPeriod format
|
|
231
|
+
*/
|
|
232
|
+
function toEdFiGradingPeriodBatch(gradingPeriods, schoolEdFiId, schoolYear) {
|
|
233
|
+
return gradingPeriods.map(gp => toEdFiGradingPeriod(gp, schoolEdFiId, schoolYear));
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=calendar.mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar.mapper.js","sourceRoot":"","sources":["../../../src/mappers/edfi/calendar.mapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Credential Ed-Fi Mapper
|
|
3
|
+
*
|
|
4
|
+
* Converts EdForge Credential data to Ed-Fi Data Standard format.
|
|
5
|
+
* Ed-Fi Data Standard v6.0
|
|
6
|
+
*/
|
|
7
|
+
import type { CredentialResponseDto } from '../../schemas/identity/credential.schema';
|
|
8
|
+
/**
|
|
9
|
+
* Ed-Fi Credential Resource
|
|
10
|
+
* Based on Ed-Fi Data Standard v6.0 Credential resource
|
|
11
|
+
*/
|
|
12
|
+
export interface EdFiCredential {
|
|
13
|
+
credentialIdentifier: string;
|
|
14
|
+
stateOfIssueStateAbbreviationDescriptor?: string;
|
|
15
|
+
credentialFieldDescriptor?: string;
|
|
16
|
+
credentialTypeDescriptor: string;
|
|
17
|
+
issuanceDate: string;
|
|
18
|
+
expirationDate?: string;
|
|
19
|
+
namespace?: string;
|
|
20
|
+
gradeLevels?: EdFiCredentialGradeLevel[];
|
|
21
|
+
academicSubjects?: EdFiCredentialAcademicSubject[];
|
|
22
|
+
endorsements?: EdFiCredentialEndorsement[];
|
|
23
|
+
_ext?: EdForgeCredentialExtension;
|
|
24
|
+
}
|
|
25
|
+
export interface EdFiCredentialGradeLevel {
|
|
26
|
+
gradeLevelDescriptor: string;
|
|
27
|
+
}
|
|
28
|
+
export interface EdFiCredentialAcademicSubject {
|
|
29
|
+
academicSubjectDescriptor: string;
|
|
30
|
+
}
|
|
31
|
+
export interface EdFiCredentialEndorsement {
|
|
32
|
+
credentialEndorsement: string;
|
|
33
|
+
}
|
|
34
|
+
export interface EdForgeCredentialExtension {
|
|
35
|
+
edforge_credentialId: string;
|
|
36
|
+
edforge_staffId: string;
|
|
37
|
+
edforge_tenantId: string;
|
|
38
|
+
edforge_verificationStatus: string;
|
|
39
|
+
edforge_isRenewable: boolean;
|
|
40
|
+
edforge_renewalReminderDays: number;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Convert EdForge Credential to Ed-Fi Credential format
|
|
44
|
+
*/
|
|
45
|
+
export declare function toEdFiCredential(credential: CredentialResponseDto): EdFiCredential;
|
|
46
|
+
/**
|
|
47
|
+
* Batch convert EdForge Credentials to Ed-Fi format
|
|
48
|
+
*/
|
|
49
|
+
export declare function toEdFiCredentialBatch(credentials: CredentialResponseDto[]): EdFiCredential[];
|
|
50
|
+
//# sourceMappingURL=credential.mapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential.mapper.d.ts","sourceRoot":"","sources":["../../../src/mappers/edfi/credential.mapper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAEtF;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uCAAuC,CAAC,EAAE,MAAM,CAAC;IACjD,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,wBAAwB,EAAE,MAAM,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACzC,gBAAgB,CAAC,EAAE,6BAA6B,EAAE,CAAC;IACnD,YAAY,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAC3C,IAAI,CAAC,EAAE,0BAA0B,CAAC;CACnC;AAED,MAAM,WAAW,wBAAwB;IACvC,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,6BAA6B;IAC5C,yBAAyB,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,yBAAyB;IACxC,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,0BAA0B;IACzC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,0BAA0B,EAAE,MAAM,CAAC;IACnC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,2BAA2B,EAAE,MAAM,CAAC;CACrC;AAyED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,qBAAqB,GAAG,cAAc,CAsClF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,qBAAqB,EAAE,GAAG,cAAc,EAAE,CAE5F"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Credential Ed-Fi Mapper
|
|
4
|
+
*
|
|
5
|
+
* Converts EdForge Credential data to Ed-Fi Data Standard format.
|
|
6
|
+
* Ed-Fi Data Standard v6.0
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.toEdFiCredential = toEdFiCredential;
|
|
10
|
+
exports.toEdFiCredentialBatch = toEdFiCredentialBatch;
|
|
11
|
+
/**
|
|
12
|
+
* Map EdForge credential type to Ed-Fi credentialTypeDescriptor
|
|
13
|
+
*/
|
|
14
|
+
function mapCredentialTypeToEdFi(type) {
|
|
15
|
+
const typeMap = {
|
|
16
|
+
'certification': 'uri://ed-fi.org/CredentialTypeDescriptor#Certification',
|
|
17
|
+
'license': 'uri://ed-fi.org/CredentialTypeDescriptor#Licensure',
|
|
18
|
+
'endorsement': 'uri://ed-fi.org/CredentialTypeDescriptor#Endorsement',
|
|
19
|
+
'degree': 'uri://ed-fi.org/CredentialTypeDescriptor#Other',
|
|
20
|
+
'registration': 'uri://ed-fi.org/CredentialTypeDescriptor#Registration',
|
|
21
|
+
'permit': 'uri://ed-fi.org/CredentialTypeDescriptor#Other',
|
|
22
|
+
'clearance': 'uri://ed-fi.org/CredentialTypeDescriptor#Other',
|
|
23
|
+
'training': 'uri://ed-fi.org/CredentialTypeDescriptor#Other',
|
|
24
|
+
'other': 'uri://ed-fi.org/CredentialTypeDescriptor#Other',
|
|
25
|
+
};
|
|
26
|
+
return typeMap[type] || 'uri://ed-fi.org/CredentialTypeDescriptor#Other';
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Map EdForge credential field to Ed-Fi credentialFieldDescriptor
|
|
30
|
+
*/
|
|
31
|
+
function mapCredentialFieldToEdFi(field) {
|
|
32
|
+
if (!field)
|
|
33
|
+
return undefined;
|
|
34
|
+
const fieldMap = {
|
|
35
|
+
'elementary_education': 'uri://ed-fi.org/CredentialFieldDescriptor#Elementary Education',
|
|
36
|
+
'secondary_education': 'uri://ed-fi.org/CredentialFieldDescriptor#Secondary Education',
|
|
37
|
+
'special_education': 'uri://ed-fi.org/CredentialFieldDescriptor#Special Education',
|
|
38
|
+
'early_childhood': 'uri://ed-fi.org/CredentialFieldDescriptor#Early Childhood Education',
|
|
39
|
+
'mathematics': 'uri://ed-fi.org/CredentialFieldDescriptor#Mathematics',
|
|
40
|
+
'science': 'uri://ed-fi.org/CredentialFieldDescriptor#Science',
|
|
41
|
+
'english_language_arts': 'uri://ed-fi.org/CredentialFieldDescriptor#English Language Arts',
|
|
42
|
+
'social_studies': 'uri://ed-fi.org/CredentialFieldDescriptor#Social Studies',
|
|
43
|
+
'foreign_language': 'uri://ed-fi.org/CredentialFieldDescriptor#Foreign Language',
|
|
44
|
+
'physical_education': 'uri://ed-fi.org/CredentialFieldDescriptor#Physical Education',
|
|
45
|
+
'music': 'uri://ed-fi.org/CredentialFieldDescriptor#Music',
|
|
46
|
+
'art': 'uri://ed-fi.org/CredentialFieldDescriptor#Art',
|
|
47
|
+
'technology': 'uri://ed-fi.org/CredentialFieldDescriptor#Technology Education',
|
|
48
|
+
'counseling': 'uri://ed-fi.org/CredentialFieldDescriptor#School Counseling',
|
|
49
|
+
'administration': 'uri://ed-fi.org/CredentialFieldDescriptor#School Administration',
|
|
50
|
+
'library_media': 'uri://ed-fi.org/CredentialFieldDescriptor#Library/Media',
|
|
51
|
+
'other': 'uri://ed-fi.org/CredentialFieldDescriptor#Other',
|
|
52
|
+
};
|
|
53
|
+
return fieldMap[field] || 'uri://ed-fi.org/CredentialFieldDescriptor#Other';
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Map EdForge grade level to Ed-Fi gradeLevelDescriptor
|
|
57
|
+
*/
|
|
58
|
+
function mapGradeLevelToEdFi(gradeLevel) {
|
|
59
|
+
const levelMap = {
|
|
60
|
+
'pre_k': 'uri://ed-fi.org/GradeLevelDescriptor#Preschool/Prekindergarten',
|
|
61
|
+
'kindergarten': 'uri://ed-fi.org/GradeLevelDescriptor#Kindergarten',
|
|
62
|
+
'first': 'uri://ed-fi.org/GradeLevelDescriptor#First grade',
|
|
63
|
+
'second': 'uri://ed-fi.org/GradeLevelDescriptor#Second grade',
|
|
64
|
+
'third': 'uri://ed-fi.org/GradeLevelDescriptor#Third grade',
|
|
65
|
+
'fourth': 'uri://ed-fi.org/GradeLevelDescriptor#Fourth grade',
|
|
66
|
+
'fifth': 'uri://ed-fi.org/GradeLevelDescriptor#Fifth grade',
|
|
67
|
+
'sixth': 'uri://ed-fi.org/GradeLevelDescriptor#Sixth grade',
|
|
68
|
+
'seventh': 'uri://ed-fi.org/GradeLevelDescriptor#Seventh grade',
|
|
69
|
+
'eighth': 'uri://ed-fi.org/GradeLevelDescriptor#Eighth grade',
|
|
70
|
+
'ninth': 'uri://ed-fi.org/GradeLevelDescriptor#Ninth grade',
|
|
71
|
+
'tenth': 'uri://ed-fi.org/GradeLevelDescriptor#Tenth grade',
|
|
72
|
+
'eleventh': 'uri://ed-fi.org/GradeLevelDescriptor#Eleventh grade',
|
|
73
|
+
'twelfth': 'uri://ed-fi.org/GradeLevelDescriptor#Twelfth grade',
|
|
74
|
+
'adult_education': 'uri://ed-fi.org/GradeLevelDescriptor#Adult Education',
|
|
75
|
+
'ungraded': 'uri://ed-fi.org/GradeLevelDescriptor#Ungraded',
|
|
76
|
+
};
|
|
77
|
+
return levelMap[gradeLevel] || 'uri://ed-fi.org/GradeLevelDescriptor#Other';
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Convert EdForge Credential to Ed-Fi Credential format
|
|
81
|
+
*/
|
|
82
|
+
function toEdFiCredential(credential) {
|
|
83
|
+
const edfiCredential = {
|
|
84
|
+
credentialIdentifier: credential.credentialIdentifier,
|
|
85
|
+
credentialTypeDescriptor: mapCredentialTypeToEdFi(credential.credentialTypeDescriptor),
|
|
86
|
+
credentialFieldDescriptor: mapCredentialFieldToEdFi(credential.credentialFieldDescriptor),
|
|
87
|
+
issuanceDate: credential.issuanceDate,
|
|
88
|
+
expirationDate: credential.expirationDate,
|
|
89
|
+
stateOfIssueStateAbbreviationDescriptor: credential.issuingState
|
|
90
|
+
? `uri://ed-fi.org/StateAbbreviationDescriptor#${credential.issuingState}`
|
|
91
|
+
: undefined,
|
|
92
|
+
namespace: 'uri://edforge.io/Credential',
|
|
93
|
+
};
|
|
94
|
+
// Map grade levels
|
|
95
|
+
if (credential.gradeLevels && credential.gradeLevels.length > 0) {
|
|
96
|
+
edfiCredential.gradeLevels = credential.gradeLevels.map(gl => ({
|
|
97
|
+
gradeLevelDescriptor: mapGradeLevelToEdFi(gl),
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
100
|
+
// Map subjects to academic subjects
|
|
101
|
+
if (credential.subjects && credential.subjects.length > 0) {
|
|
102
|
+
edfiCredential.academicSubjects = credential.subjects.map(subject => ({
|
|
103
|
+
academicSubjectDescriptor: `uri://ed-fi.org/AcademicSubjectDescriptor#${subject}`,
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
106
|
+
// EdForge extension data
|
|
107
|
+
edfiCredential._ext = {
|
|
108
|
+
edforge_credentialId: credential.credentialId,
|
|
109
|
+
edforge_staffId: credential.staffId,
|
|
110
|
+
edforge_tenantId: credential.tenantId,
|
|
111
|
+
edforge_verificationStatus: credential.verificationStatus,
|
|
112
|
+
edforge_isRenewable: credential.isRenewable,
|
|
113
|
+
edforge_renewalReminderDays: credential.renewalReminderDays,
|
|
114
|
+
};
|
|
115
|
+
return edfiCredential;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Batch convert EdForge Credentials to Ed-Fi format
|
|
119
|
+
*/
|
|
120
|
+
function toEdFiCredentialBatch(credentials) {
|
|
121
|
+
return credentials.map(toEdFiCredential);
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=credential.mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential.mapper.js","sourceRoot":"","sources":["../../../src/mappers/edfi/credential.mapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ed-Fi Mappers
|
|
3
|
+
*
|
|
4
|
+
* Converts EdForge data to Ed-Fi Data Standard format for compliance export.
|
|
5
|
+
* Ed-Fi Data Standard v6.0: https://docs.ed-fi.org/reference/data-exchange/data-standard/
|
|
6
|
+
*/
|
|
7
|
+
export * from './staff.mapper';
|
|
8
|
+
export * from './credential.mapper';
|
|
9
|
+
export * from './calendar.mapper';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mappers/edfi/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Ed-Fi Mappers
|
|
4
|
+
*
|
|
5
|
+
* Converts EdForge data to Ed-Fi Data Standard format for compliance export.
|
|
6
|
+
* Ed-Fi Data Standard v6.0: https://docs.ed-fi.org/reference/data-exchange/data-standard/
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
20
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
21
|
+
};
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
__exportStar(require("./staff.mapper"), exports);
|
|
24
|
+
__exportStar(require("./credential.mapper"), exports);
|
|
25
|
+
__exportStar(require("./calendar.mapper"), exports);
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mappers/edfi/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,iDAA+B;AAC/B,sDAAoC;AACpC,oDAAkC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Staff Ed-Fi Mapper
|
|
3
|
+
*
|
|
4
|
+
* Converts EdForge Staff data to Ed-Fi Data Standard format for compliance export.
|
|
5
|
+
* Ed-Fi Data Standard v6.0: https://docs.ed-fi.org/reference/data-exchange/data-standard/
|
|
6
|
+
*/
|
|
7
|
+
import type { StaffResponseDto, StaffSchoolAssignment } from '../../schemas/identity/staff.schema';
|
|
8
|
+
/**
|
|
9
|
+
* Ed-Fi Staff Resource
|
|
10
|
+
* Based on Ed-Fi Data Standard v6.0 Staff resource
|
|
11
|
+
*/
|
|
12
|
+
export interface EdFiStaff {
|
|
13
|
+
staffUniqueId: string;
|
|
14
|
+
firstName: string;
|
|
15
|
+
lastSurname: string;
|
|
16
|
+
middleName?: string;
|
|
17
|
+
generationCodeSuffix?: string;
|
|
18
|
+
maidenName?: string;
|
|
19
|
+
birthDate?: string;
|
|
20
|
+
hispanicLatinoEthnicity?: boolean;
|
|
21
|
+
highlyQualifiedTeacher?: boolean;
|
|
22
|
+
yearsOfPriorTeachingExperience?: number;
|
|
23
|
+
yearsOfPriorProfessionalExperience?: number;
|
|
24
|
+
sexDescriptor?: string;
|
|
25
|
+
identificationDocuments?: EdFiIdentificationDocument[];
|
|
26
|
+
addresses?: EdFiStaffAddress[];
|
|
27
|
+
electronicMails?: EdFiElectronicMail[];
|
|
28
|
+
telephones?: EdFiTelephone[];
|
|
29
|
+
_ext?: EdForgeExtension;
|
|
30
|
+
}
|
|
31
|
+
export interface EdFiIdentificationDocument {
|
|
32
|
+
identificationDocumentUseDescriptor: string;
|
|
33
|
+
personalInformationVerificationDescriptor: string;
|
|
34
|
+
issuerDocumentIdentificationCode?: string;
|
|
35
|
+
issuerName?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface EdFiStaffAddress {
|
|
38
|
+
addressTypeDescriptor: string;
|
|
39
|
+
streetNumberName?: string;
|
|
40
|
+
apartmentRoomSuiteNumber?: string;
|
|
41
|
+
city: string;
|
|
42
|
+
stateAbbreviationDescriptor: string;
|
|
43
|
+
postalCode: string;
|
|
44
|
+
nameOfCounty?: string;
|
|
45
|
+
}
|
|
46
|
+
export interface EdFiElectronicMail {
|
|
47
|
+
electronicMailAddress: string;
|
|
48
|
+
electronicMailTypeDescriptor: string;
|
|
49
|
+
primaryEmailAddressIndicator?: boolean;
|
|
50
|
+
}
|
|
51
|
+
export interface EdFiTelephone {
|
|
52
|
+
telephoneNumber: string;
|
|
53
|
+
telephoneNumberTypeDescriptor: string;
|
|
54
|
+
orderOfPriority?: number;
|
|
55
|
+
}
|
|
56
|
+
export interface EdForgeExtension {
|
|
57
|
+
edforge_staffId: string;
|
|
58
|
+
edforge_tenantId: string;
|
|
59
|
+
edforge_role: string;
|
|
60
|
+
edforge_employmentType: string;
|
|
61
|
+
edforge_employmentStatus: string;
|
|
62
|
+
edforge_hireDate: string;
|
|
63
|
+
edforge_primarySchoolId: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Ed-Fi StaffEducationOrganizationAssignmentAssociation
|
|
67
|
+
* Represents assignment of staff to schools
|
|
68
|
+
*/
|
|
69
|
+
export interface EdFiStaffEducationOrganizationAssignmentAssociation {
|
|
70
|
+
staffReference: {
|
|
71
|
+
staffUniqueId: string;
|
|
72
|
+
};
|
|
73
|
+
educationOrganizationReference: {
|
|
74
|
+
educationOrganizationId: number;
|
|
75
|
+
};
|
|
76
|
+
beginDate: string;
|
|
77
|
+
endDate?: string;
|
|
78
|
+
positionTitle?: string;
|
|
79
|
+
staffClassificationDescriptor: string;
|
|
80
|
+
orderOfAssignment?: number;
|
|
81
|
+
employmentStatusDescriptor?: string;
|
|
82
|
+
fullTimeEquivalency?: number;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Convert EdForge Staff to Ed-Fi Staff format
|
|
86
|
+
*/
|
|
87
|
+
export declare function toEdFiStaff(staff: StaffResponseDto): EdFiStaff;
|
|
88
|
+
/**
|
|
89
|
+
* Convert EdForge Staff School Assignment to Ed-Fi StaffEducationOrganizationAssignmentAssociation
|
|
90
|
+
*/
|
|
91
|
+
export declare function toEdFiStaffAssignment(staff: StaffResponseDto, assignment: StaffSchoolAssignment, schoolEdFiId: number): EdFiStaffEducationOrganizationAssignmentAssociation;
|
|
92
|
+
/**
|
|
93
|
+
* Batch convert EdForge Staff list to Ed-Fi format
|
|
94
|
+
*/
|
|
95
|
+
export declare function toEdFiStaffBatch(staffList: StaffResponseDto[]): EdFiStaff[];
|
|
96
|
+
//# sourceMappingURL=staff.mapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"staff.mapper.d.ts","sourceRoot":"","sources":["../../../src/mappers/edfi/staff.mapper.ts"],"names":[],"mappings":"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"}
|