-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProviderProtocol.swift
More file actions
73 lines (60 loc) · 3.13 KB
/
Copy pathProviderProtocol.swift
File metadata and controls
73 lines (60 loc) · 3.13 KB
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
//
// ProviderProtocol.swift
// Quickfeed
//
import Foundation
import Combine
import NIO
protocol ProviderProtocol{
// MARK: Users
func setUser(sessionId: String)
func getUser() -> User?
func getUsers() -> [User]?
func updateUser(user: User)
func isAuthorizedTeacher() -> Bool
// MARK: Groups
func getGroup(groupID: UInt64) -> Group?
func getGroupByUserAndCourse(courseID: UInt64, groupID: UInt64?, userID: UInt64) -> Group?
func getGroupsByCourse(courseID: UInt64) -> EventLoopFuture<Groups>
func createGroup(group: Group) -> EventLoopFuture<Group>
func updateGroup(group: Group)
func deleteGroup(userID: UInt64, groupID: UInt64, courseID: UInt64)
// MARK: Courses
func getCourse(courseID: UInt64) -> Course?
func getCourses() -> [Course]?
func getCoursesByUser(userID: UInt64, userStatus: [Enrollment.UserStatus]) -> [Course]?
func createCourse(course: Course) -> Course?
func updateCourse(course: Course)
func updateCourseVisibility(enrollment: Enrollment)
// MARK: Assignments
func getAssignments(courseID: UInt64) -> [Assignment]?
func updateAssignments(courseID: UInt64) -> Bool
// MARK: Enrollments
func getEnrollmentsByUser(userID: UInt64, userStatus: [Enrollment.UserStatus]) -> [Enrollment]?
func getEnrollmentsByCourse(courseID: UInt64, ignoreGroupMembers: Bool?, withActivity: Bool?, userStatus: [Enrollment.UserStatus]) -> EventLoopFuture<Enrollments>
func createEnrollment(enrollment: Enrollment)
func updateEnrollment(enrollment: Enrollment)
func updateEnrollments(courseID: UInt64)
// MARK: Submissions
func getSubmissions(userID: UInt64?, groupID: UInt64?, courseID: UInt64) -> [Submission]?
func getSubmissionsByCourse(courseID: UInt64, type: SubmissionsForCourseRequest.TypeEnum) -> EventLoopFuture<CourseSubmissions>
func updateSubmission(courseID: UInt64, submisssion: Submission) -> Bool
func updateSubmissions(assignmentID: UInt64, courseID: UInt64, score: UInt32, release: Bool, approve: Bool)
func rebuildSubmission(submissionID: UInt64, assignmentID: UInt64) -> Bool
// MARK: Manual Grading
func createBenchmark(gradingBenchmark: GradingBenchmark) -> GradingBenchmark?
func updateBenchmark(gradingBenchmark: GradingBenchmark)
func deleteBenchmark(gradingBenchmark: GradingBenchmark)
func createCriterion(gradingCriterion: GradingCriterion) -> GradingCriterion?
func updateCriterion(gradingCriterion: GradingCriterion)
func deleteCriterion(gradingCriterion: GradingCriterion)
func createReview(courseID: UInt64, review: Review) -> Review?
func updateReview(courseID: UInt64, review: Review)
func getReviewers(submissionID: UInt64, courseID: UInt64) -> Reviewers?
func loadCriteria(courseID: UInt64, assignmentID: UInt64) -> [GradingBenchmark]
// MARK: Misc
func getProviders() -> [String]?
func getOrganization(orgName: String) -> EventLoopFuture<Organization>
func getRepositories(courseID: UInt64, repositoryTypes: [Repository.TypeEnum]) -> Repositories?
func isEmptyRepo(userID: UInt64, groupID: UInt64, courseID: UInt64)
}