feat: add ApiService implementations
This commit is contained in:
		
							
								
								
									
										18
									
								
								src/api/v1/campus.service.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								src/api/v1/campus.service.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| import {Injectable} from "@angular/core"; | ||||
| import ApiService, {AvailableVersion} from "@api/api.service"; | ||||
| import {CampusBasicInfoResponse} from "@api/v1/campusBasicInfoResponse"; | ||||
| import {CampusDetailsResponse} from "@api/v1/campusDetailsResponse"; | ||||
|  | ||||
| @Injectable() | ||||
| export class CampusService extends ApiService { | ||||
|   protected basePath = 'Campus/'; | ||||
|   protected version = AvailableVersion.v1; | ||||
|  | ||||
|   public getCampus() { | ||||
|     return this.get<CampusBasicInfoResponse[]>(); | ||||
|   } | ||||
|  | ||||
|   public getById(id: number) { | ||||
|     return this.get<CampusDetailsResponse>(id.toString()); | ||||
|   } | ||||
| } | ||||
							
								
								
									
										17
									
								
								src/api/v1/discipline.service.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/api/v1/discipline.service.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| import {Injectable} from "@angular/core"; | ||||
| import ApiService, {AvailableVersion} from "@api/api.service"; | ||||
| import {DisciplineResponse} from "@api/v1/disciplineResponse"; | ||||
|  | ||||
| @Injectable() | ||||
| export class DisciplineService extends ApiService { | ||||
|   protected basePath = 'Discipline/'; | ||||
|   protected version = AvailableVersion.v1; | ||||
|  | ||||
|   public getDisciplines(page: number | null = null, pageSize: number | null = null) { | ||||
|     return this.get<DisciplineResponse[]>('', {page: page, pageSize: pageSize}); | ||||
|   } | ||||
|  | ||||
|   public getById(id: number) { | ||||
|     return this.get<DisciplineResponse>(id.toString()); | ||||
|   } | ||||
| } | ||||
							
								
								
									
										19
									
								
								src/api/v1/faculty.service.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								src/api/v1/faculty.service.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| import {Injectable} from "@angular/core"; | ||||
| import ApiService, {AvailableVersion} from "@api/api.service"; | ||||
| import {FacultyResponse} from "@api/v1/facultyResponse"; | ||||
| import {FacultyDetailsResponse} from "@api/v1/facultyDetailsResponse"; | ||||
|  | ||||
| @Injectable() | ||||
| export class FacultyService extends ApiService { | ||||
|   protected basePath = 'Faculty/'; | ||||
|   protected version = AvailableVersion.v1; | ||||
|  | ||||
|   public getFaculties(page: number | null = null, pageSize: number | null = null) { | ||||
|     return this.get<FacultyResponse[]>('', {page: page, pageSize: pageSize}); | ||||
|  | ||||
|   } | ||||
|  | ||||
|   public getById(id: number) { | ||||
|     return this.get<FacultyDetailsResponse>(id.toString()); | ||||
|   } | ||||
| } | ||||
							
								
								
									
										22
									
								
								src/api/v1/group.service.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/api/v1/group.service.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| import {Injectable} from "@angular/core"; | ||||
| import ApiService, {AvailableVersion} from "@api/api.service"; | ||||
| import {GroupResponse} from "@api/v1/groupResponse"; | ||||
| import {GroupDetailsResponse} from "@api/v1/groupDetailsResponse"; | ||||
|  | ||||
| @Injectable() | ||||
| export class GroupService extends ApiService { | ||||
|   protected basePath = 'Group/'; | ||||
|   protected version = AvailableVersion.v1; | ||||
|  | ||||
|   public getGroups(page: number | null = null, pageSize: number | null = null) { | ||||
|     return this.get<GroupResponse[]>('', {page: page, pageSize: pageSize}); | ||||
|   } | ||||
|  | ||||
|   public getById(id: number) { | ||||
|     return this.get<GroupDetailsResponse>(id.toString()); | ||||
|   } | ||||
|  | ||||
|   public getByFaculty(id: number) { | ||||
|     return this.get<GroupResponse[]>('GetByFaculty/' + id.toString()); | ||||
|   } | ||||
| } | ||||
							
								
								
									
										22
									
								
								src/api/v1/lectureHall.service.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/api/v1/lectureHall.service.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| import {Injectable} from "@angular/core"; | ||||
| import ApiService, {AvailableVersion} from "@api/api.service"; | ||||
| import {LectureHallResponse} from "@api/v1/lectureHallResponse"; | ||||
| import {LectureHallDetailsResponse} from "@api/v1/lectureHallDetailsResponse"; | ||||
|  | ||||
| @Injectable() | ||||
| export class LectureHallService extends ApiService { | ||||
|   protected basePath = 'LectureHall/'; | ||||
|   protected version = AvailableVersion.v1; | ||||
|  | ||||
|   public getLectureHalls() { | ||||
|     return this.get<LectureHallResponse[]>(); | ||||
|   } | ||||
|  | ||||
|   public getById(id: number) { | ||||
|     return this.get<LectureHallDetailsResponse>(id.toString()); | ||||
|   } | ||||
|  | ||||
|   public getByCampus(id: number) { | ||||
|     return this.get<LectureHallResponse[]>('GetByCampus/' + id.toString()); | ||||
|   } | ||||
| } | ||||
							
								
								
									
										17
									
								
								src/api/v1/professor.service.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/api/v1/professor.service.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| import {Injectable} from "@angular/core"; | ||||
| import ApiService, {AvailableVersion} from "@api/api.service"; | ||||
| import {ProfessorResponse} from "@api/v1/professorResponse"; | ||||
|  | ||||
| @Injectable() | ||||
| export class ProfessorService extends ApiService { | ||||
|   protected basePath = 'Professor/'; | ||||
|   protected version = AvailableVersion.v1; | ||||
|  | ||||
|   public getProfessors(page: number | null = null, pageSize: number | null = null) { | ||||
|     return this.get<ProfessorResponse[]>('', {page: page, pageSize: pageSize}); | ||||
|   } | ||||
|  | ||||
|   public getById(id: number) { | ||||
|     return this.get<ProfessorResponse>(id.toString()); | ||||
|   } | ||||
| } | ||||
							
								
								
									
										44
									
								
								src/api/v1/schedule.service.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								src/api/v1/schedule.service.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | ||||
| import {Injectable} from "@angular/core"; | ||||
| import ApiService, {AvailableVersion} from "@api/api.service"; | ||||
| import {DateOnly} from "@model/DateOnly"; | ||||
| import {PeriodTimes} from "@model/pairPeriodTime"; | ||||
| import {ScheduleRequest} from "@api/v1/scheduleRequest"; | ||||
| import {ScheduleResponse} from "@api/v1/scheduleResponse"; | ||||
| import {GroupScheduleResponse} from "@api/v1/groupScheduleResponse"; | ||||
| import {ProfessorScheduleResponse} from "@api/v1/professorScheduleResponse"; | ||||
| import {LectureHallScheduleResponse} from "@api/v1/lectureHallScheduleResponse"; | ||||
| import {map} from "rxjs"; | ||||
|  | ||||
| @Injectable() | ||||
| export class ScheduleService extends ApiService { | ||||
|   protected basePath = 'Schedule/'; | ||||
|   protected version = AvailableVersion.v1; | ||||
|  | ||||
|   public startTerm() { | ||||
|     return this.get<string>('StartTerm').pipe(map(date => new DateOnly(date))); | ||||
|   } | ||||
|  | ||||
|   public pairPeriod() { | ||||
|     return this.get<PeriodTimes>('PairPeriod'); | ||||
|   } | ||||
|  | ||||
|   public postSchedule(data: ScheduleRequest) { | ||||
|     return this.post<ScheduleResponse[]>('', data); | ||||
|   } | ||||
|  | ||||
|   public getByGroup(id : number, isEven: boolean | null = null, disciplines: Array<number> | null = null, professors: Array<number> | null = null, lectureHalls: Array<number> | null = null) { | ||||
|     return this.get<GroupScheduleResponse>('GetByGroup' + id.toString(), {isEven: isEven, disciplines: disciplines, professors: professors, lectureHalls: lectureHalls}); | ||||
|   } | ||||
|  | ||||
|   public getByProfessor(id : number, isEven: boolean | null = null, disciplines: Array<number> | null = null, groups: Array<number> | null = null, lectureHalls: Array<number> | null = null) { | ||||
|     return this.get<ProfessorScheduleResponse>('GetByProfessor' + id.toString(), {isEven: isEven, disciplines: disciplines, groups: groups, lectureHalls: lectureHalls}); | ||||
|   } | ||||
|  | ||||
|   public getByLectureHall(id : number, isEven: boolean | null = null, disciplines: Array<number> | null = null, groups: Array<number> | null = null, professors: Array<number> | null = null) { | ||||
|     return this.get<LectureHallScheduleResponse>('GetByLectureHall' + id.toString(), {isEven: isEven, disciplines: disciplines, groups: groups, professors: professors}); | ||||
|   } | ||||
|  | ||||
|   public getByDiscipline(id : number, isEven: boolean | null = null, groups: Array<number> | null = null, professors: Array<number> | null = null, lectureHalls: Array<number> | null = null) { | ||||
|     return this.get<GroupScheduleResponse>('GetByDiscipline' + id.toString(), {isEven: isEven, groups: groups, professors: professors, lectureHalls: lectureHalls}); | ||||
|   } | ||||
| } | ||||
							
								
								
									
										58
									
								
								src/api/v1/setup.service.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								src/api/v1/setup.service.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,58 @@ | ||||
| import {Injectable} from "@angular/core"; | ||||
| import ApiService, {AvailableVersion} from "@api/api.service"; | ||||
| import {DatabaseRequest} from "@api/v1/databaseRequest"; | ||||
| import {CacheRequest} from "@api/v1/cacheRequest"; | ||||
| import {CreateUserRequest} from "@api/v1/createUserRequest"; | ||||
| import {LoggingRequest} from "@api/v1/loggingRequest"; | ||||
| import {EmailRequest} from "@api/v1/emailRequest"; | ||||
| import {ScheduleConfigurationRequest} from "@api/v1/scheduleConfigurationRequest"; | ||||
|  | ||||
| @Injectable() | ||||
| export default class SetupService extends ApiService { | ||||
|   protected basePath = 'v1/Setup/'; | ||||
|   protected version = AvailableVersion.v1; | ||||
|  | ||||
|   public checkToken(token: string) { | ||||
|     return this.get<boolean>('CheckToken', {token: token}); | ||||
|   } | ||||
|  | ||||
|   public setPsql(data: DatabaseRequest) { | ||||
|     return this.post<boolean>('SetPsql', data); | ||||
|   } | ||||
|  | ||||
|   public setMysql(data: DatabaseRequest) { | ||||
|     return this.post<boolean>('SetMysql', data); | ||||
|   } | ||||
|  | ||||
|   public setSqlite(path: string) { | ||||
|     return this.post<boolean>('SetSqlite', null, {path: path}); | ||||
|   } | ||||
|  | ||||
|   public setRedis(data: CacheRequest) { | ||||
|     return this.post<boolean>('SetRedis', data); | ||||
|   } | ||||
|  | ||||
|   public setMemcached() { | ||||
|     return this.post<boolean>('SetMemcached', null); | ||||
|   } | ||||
|  | ||||
|   public createAdmin(data: CreateUserRequest) { | ||||
|     return this.post<boolean>('CreateAdmin', data); | ||||
|   } | ||||
|  | ||||
|   public setLogging(data: LoggingRequest) { | ||||
|     return this.post<boolean>('SetLogging', data); | ||||
|   } | ||||
|  | ||||
|   public setEmail(data: EmailRequest) { | ||||
|     return this.post<boolean>('SetEmail', data); | ||||
|   } | ||||
|  | ||||
|   public setSchedule(data: ScheduleConfigurationRequest) { | ||||
|     return this.post<boolean>('SetSchedule', data); | ||||
|   } | ||||
|  | ||||
|   public submit() { | ||||
|     return this.post<boolean>('Submit', null); | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user