regis

<back to all web services

ClassRosterRequest

Requires Authentication
Required permission:ReadClassRosters
The following routes are available for this service:
POST/ClassRoster/{reporting_term}
POST/ClassRoster/{reporting_term}/{section_uuid}
<?php namespace dtos;

use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};


class ClassRosterRequest implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $reporting_term=null,
        /** @var string|null */
        public ?string $section_uuid=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['reporting_term'])) $this->reporting_term = $o['reporting_term'];
        if (isset($o['section_uuid'])) $this->section_uuid = $o['section_uuid'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->reporting_term)) $o['reporting_term'] = $this->reporting_term;
        if (isset($this->section_uuid)) $o['section_uuid'] = $this->section_uuid;
        return empty($o) ? new class(){} : $o;
    }
}

PHP ClassRosterRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /ClassRoster/{reporting_term} HTTP/1.1 
Host: data.regent-college.edu 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	reporting_term: String,
	section_uuid: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

[
	{
		course_name: String,
		section_uuid: String,
		section_code: String,
		course_title: String,
		room: String,
		start_date: 0001-01-01,
		end_date: 0001-01-01,
		first_meeting_date: 0001-01-01,
		last_meeting_date: 0001-01-01,
		meeting_days: String,
		start_times: String,
		end_times: String,
		capacity: 0,
		term: String,
		reporting_term: String,
		has_required_documents: False,
		instructors: 
		[
			{
				responseStatus: 
				{
					errorCode: String,
					message: String,
					stackTrace: String,
					errors: 
					[
						{
							errorCode: String,
							fieldName: String,
							message: String,
							meta: 
							{
								String: String
							}
						}
					],
					meta: 
					{
						String: String
					}
				},
				regent_id: 0,
				regent_login: String,
				preferred_name: String,
				first_name: String,
				last_name: String,
				full_name: String,
				email: String,
				image_base64: String
			}
		],
		registrations: 
		[
			{
				regent_id: 0,
				uuid: String,
				regent_login: String,
				first_name: String,
				preferred_name: String,
				middle_name: String,
				last_name: String,
				email: String,
				phone_home: String,
				phone_cell: String,
				phone_bus: String,
				academic_program: String,
				academic_concentration: String,
				amount: 0,
				is_credit: False,
				is_audit: False,
				is_provisional: False,
				additional_instructors: 
				[
					{
						responseStatus: 
						{
							errorCode: String,
							message: String,
							stackTrace: String,
							errors: 
							[
								{
									errorCode: String,
									fieldName: String,
									message: String,
									meta: 
									{
										String: String
									}
								}
							],
							meta: 
							{
								String: String
							}
						},
						regent_id: 0,
						regent_login: String,
						preferred_name: String,
						first_name: String,
						last_name: String,
						full_name: String,
						email: String,
						image_base64: String
					}
				],
				documents: 
				[
					{
						uuid: String,
						regent_id: 0,
						first_name: String,
						last_name: String,
						gender: String,
						email: String,
						program: String,
						concentration: String,
						section_uuid: String,
						course_name: String,
						course_title: String,
						reporting_term: String,
						document_code: String,
						document_json: String,
						document_name: String,
						document_description: String,
						added_date: 0001-01-01,
						changed_date: 0001-01-01
					}
				],
				date: 0001-01-01
			}
		]
	}
]