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 {}