regis

<back to all web services

SectionsAvailableForStudentRequest

Requires Authentication
Required role:REGISUserRole
The following routes are available for this service:
POST/Sections/Available/{uuid}/Term/{reporting_term}
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class InstructorResponse:
    response_status: Optional[ResponseStatus] = None
    regent_id: int = 0
    regent_login: Optional[str] = None
    preferred_name: Optional[str] = None
    first_name: Optional[str] = None
    last_name: Optional[str] = None
    full_name: Optional[str] = None
    email: Optional[str] = None
    image_base64: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DocumentResponse:
    code: Optional[str] = None
    document_name: Optional[str] = None
    document_description: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SectionResponse:
    response_status: Optional[ResponseStatus] = None
    sec_u_u_i_d: Optional[str] = None
    course_name: Optional[str] = None
    section_code: Optional[str] = None
    course_title: Optional[str] = None
    course_short_title: Optional[str] = None
    course_description: Optional[str] = None
    crosslist_description: Optional[str] = None
    crosslist_course_name: Optional[str] = None
    location_long_name: Optional[str] = None
    room: Optional[str] = None
    instructors: Optional[List[InstructorResponse]] = None
    required_documents: Optional[List[DocumentResponse]] = None
    start_date: Optional[datetime.datetime] = None
    end_date: Optional[datetime.datetime] = None
    first_meeting_date: Optional[datetime.datetime] = None
    last_meeting_date: Optional[datetime.datetime] = None
    meeting_days: Optional[str] = None
    start_times: Optional[List[str]] = None
    end_times: Optional[List[str]] = None
    is_online_only: bool = False
    is_weekend: bool = False
    is_weekday: bool = False
    is_evening: bool = False
    is_waitlist: bool = False
    has_special_requirements: bool = False
    special_requirements: Optional[str] = None
    is_unlisted: bool = False
    credit_amounts: Optional[List[Decimal]] = None
    audit_amounts: Optional[List[Decimal]] = None
    audits_short_name: Optional[str] = None
    audits_long_name: Optional[str] = None
    credits_short_name: Optional[str] = None
    credits_long_name: Optional[str] = None
    distance_ed_materials: Optional[str] = None
    prerequisites: Optional[str] = None
    corequisites: Optional[str] = None
    capacity: Optional[int] = None
    flat_fee_amount: Optional[Decimal] = None
    additional_fee_amount: Optional[Decimal] = None
    registered_students: int = 0
    three_credit_plus: int = 0
    two_credit: int = 0
    one_credit: int = 0
    three_audit_plus: int = 0
    two_audit: int = 0
    one_audit: int = 0
    crosslist_registered_students: int = 0
    grades_received: int = 0
    crosslist_grades_received: int = 0
    registration_start_date: Optional[datetime.datetime] = None
    registration_end_date: Optional[datetime.datetime] = None
    add_start_date: Optional[datetime.datetime] = None
    add_end_date: Optional[datetime.datetime] = None
    drop_start_date: Optional[datetime.datetime] = None
    drop_end_date: Optional[datetime.datetime] = None
    grading_end_date: Optional[datetime.datetime] = None
    term: Optional[str] = None
    reporting_term: Optional[str] = None
    reporting_year: int = 0
    current_status: Optional[str] = None
    added_by: Optional[str] = None
    added_date: Optional[datetime.datetime] = None
    changed_by: Optional[str] = None
    changed_date: Optional[datetime.datetime] = None
    timestamp: datetime.datetime = datetime.datetime(1, 1, 1)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SectionAvailableForStudentResponse(SectionResponse):
    uuid: Optional[str] = None
    student_section_u_u_i_d: Optional[str] = None
    registered_amount: Optional[Decimal] = None
    is_full: bool = False
    is_too_late: bool = False
    is_too_early: bool = False
    is_audit: bool = False
    is_selected: bool = False
    is_registered: bool = False
    is_provisional: bool = False
    is_missing_requisites: bool = False
    is_completed: bool = False
    maximum_credit_hours: Optional[Decimal] = None
    maximum_audit_hours: Optional[Decimal] = None
    can_retake: bool = False
    is_credit_restricted: bool = False
    is_audit_restricted: bool = False
    is_oncampus_restricted_for_change: bool = False
    is_online_restricted_for_change: bool = False
    can_be_provisional: bool = False
    can_be_dropped: bool = False
    rule_messages: Optional[List[str]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SectionsAvailableForStudentResponse:
    response_status: Optional[ResponseStatus] = None
    regent_id: int = 0
    uuid: Optional[str] = None
    reporting_term: Optional[str] = None
    notify_of_academic_probation: bool = False
    sections_available: Optional[List[SectionAvailableForStudentResponse]] = None
    messages: Optional[List[str]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SectionsAvailableForStudentRequest:
    uuid: Optional[str] = None
    transaction_uuid: Optional[str] = None
    reporting_term: Optional[str] = None
    online_only: bool = False
    oncampus_only: bool = False
    is_admin: bool = False

Python SectionsAvailableForStudentRequest 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 /Sections/Available/{uuid}/Term/{reporting_term} HTTP/1.1 
Host: data.regent-college.edu 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	uuid: String,
	transaction_uuid: String,
	reporting_term: String,
	online_only: False,
	oncampus_only: False,
	is_admin: False
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	},
	regent_id: 0,
	uuid: String,
	reporting_term: String,
	notifyOfAcademicProbation: False,
	sectionsAvailable: 
	[
		{
			uuid: String,
			studentSectionUUID: String,
			registered_amount: 0,
			is_full: False,
			is_too_late: False,
			is_too_early: False,
			is_audit: False,
			is_selected: False,
			is_registered: False,
			is_provisional: False,
			is_missing_requisites: False,
			is_completed: False,
			maximum_credit_hours: 0,
			maximum_audit_hours: 0,
			can_retake: False,
			is_credit_restricted: False,
			is_audit_restricted: False,
			is_oncampus_restricted_for_change: False,
			is_online_restricted_for_change: False,
			can_be_provisional: False,
			can_be_dropped: False,
			ruleMessages: 
			[
				String
			],
			responseStatus: 
			{
				errorCode: String,
				message: String,
				stackTrace: String,
				errors: 
				[
					{
						errorCode: String,
						fieldName: String,
						message: String,
						meta: 
						{
							String: String
						}
					}
				],
				meta: 
				{
					String: String
				}
			},
			secUUID: String,
			course_name: String,
			section_code: String,
			course_title: String,
			course_short_title: String,
			course_description: String,
			crosslist_description: String,
			crosslist_course_name: String,
			location_long_name: String,
			room: String,
			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
				}
			],
			required_documents: 
			[
				{
					code: String,
					document_name: String,
					document_description: 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
			],
			is_online_only: False,
			is_weekend: False,
			is_weekday: False,
			is_evening: False,
			is_waitlist: False,
			has_special_requirements: False,
			special_requirements: String,
			is_unlisted: False,
			credit_amounts: 
			[
				0
			],
			audit_amounts: 
			[
				0
			],
			audits_short_name: String,
			audits_long_name: String,
			credits_short_name: String,
			credits_long_name: String,
			distance_ed_materials: String,
			prerequisites: String,
			corequisites: String,
			capacity: 0,
			flat_fee_amount: 0,
			additional_fee_amount: 0,
			registered_students: 0,
			three_credit_plus: 0,
			two_credit: 0,
			one_credit: 0,
			three_audit_plus: 0,
			two_audit: 0,
			one_audit: 0,
			crosslist_registered_students: 0,
			grades_received: 0,
			crosslist_grades_received: 0,
			registration_start_date: 0001-01-01,
			registration_end_date: 0001-01-01,
			add_start_date: 0001-01-01,
			add_end_date: 0001-01-01,
			drop_start_date: 0001-01-01,
			drop_end_date: 0001-01-01,
			grading_end_date: 0001-01-01,
			term: String,
			reporting_term: String,
			reporting_year: 0,
			current_status: String,
			added_by: String,
			added_date: 0001-01-01,
			changed_by: String,
			changed_date: 0001-01-01,
			timestamp: 0001-01-01
		}
	],
	messages: 
	[
		String
	]
}