github.com/quickfeed/quickfeed@v0.0.0-20240507093252-ed8ca812a09c/qf/requests.proto (about) 1 syntax = "proto3"; 2 package qf; 3 option go_package = "github.com/quickfeed/quickfeed/qf"; 4 option swift_prefix = ""; 5 6 import "qf/types.proto"; 7 8 // Message types that are used as requests and responses in API calls. 9 10 message CourseSubmissions { 11 map<uint64, Submissions> submissions = 1; 12 } 13 14 message ReviewRequest { 15 uint64 courseID = 1; 16 Review review = 2; 17 } 18 19 message CourseRequest { 20 uint64 courseID = 1; 21 } 22 23 message GroupRequest { 24 uint64 courseID = 1; 25 uint64 userID = 2; 26 uint64 groupID = 3; 27 } 28 29 message Organization { 30 uint64 ScmOrganizationID = 1; 31 string ScmOrganizationName = 2; 32 } 33 34 message EnrollmentRequest { 35 oneof FetchMode { 36 uint64 courseID = 1; 37 uint64 userID = 2; 38 } 39 repeated Enrollment.UserStatus statuses = 3; 40 } 41 42 message SubmissionRequest { 43 enum SubmissionType { 44 ALL = 0; // fetch all submissions 45 USER = 1; // fetch all user submissions 46 GROUP = 2; // fetch all group submissions 47 } 48 uint64 CourseID = 1; 49 uint64 AssignmentID = 2; // only used for user and group submissions 50 oneof FetchMode { 51 uint64 UserID = 3; // fetch single user's submissions with build info 52 uint64 GroupID = 4; // fetch single group's submissions with build info 53 uint64 SubmissionID = 5; // fetch single specific submission with build info 54 SubmissionType Type = 6; // fetch all submissions of given type without build info 55 } 56 } 57 58 message UpdateSubmissionRequest { 59 uint64 submissionID = 1; 60 uint64 courseID = 2; 61 uint32 score = 3; 62 bool released = 4; 63 Submission.Status status = 5; 64 } 65 66 message UpdateSubmissionsRequest { 67 uint64 courseID = 1; 68 uint64 assignmentID = 2; 69 uint32 scoreLimit = 3; 70 bool release = 4; 71 bool approve = 5; 72 } 73 74 // used to check whether student/group submission repo is empty 75 message RepositoryRequest { 76 uint64 userID = 1; 77 uint64 groupID = 2; 78 uint64 courseID = 3; 79 } 80 81 message Repositories { 82 map<uint32, string> URLs = 1; // Map key is the Repository.Type 83 } 84 85 message RebuildRequest { 86 uint64 courseID = 1; 87 uint64 assignmentID = 2; 88 uint64 submissionID = 3; 89 } 90 91 // Void contains no fields. A server response with a Void still contains a gRPC status code, 92 // which can be checked for success or failure. Status code 0 indicates that the requested action was successful, 93 // whereas any other status code indicates some failure. As such, the status code can be used as a boolean result from 94 // the server. 95 message Void {}