regis

<back to all web services

AddRegistrationsRequest

Requires Authentication
Required role:REGISUserRole
The following routes are available for this service:
POST/Registration/{uuid}/Add/{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 InvoiceResponse:
    response_status: Optional[ResponseStatus] = None
    invoice_u_u_i_d: Optional[str] = None
    regent_id: int = 0
    uuid: Optional[str] = None
    reporting_term: Optional[str] = None
    total_charges: Optional[Decimal] = None
    total_credits: Optional[Decimal] = None
    current_status: Optional[str] = None
    timestamp: datetime.datetime = datetime.datetime(1, 1, 1)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class InvoiceItemResponse:
    response_status: Optional[ResponseStatus] = None
    invoice_item_u_u_i_d: Optional[str] = None
    rate_id: int = 0
    rate_code: Optional[str] = None
    rate_description: Optional[str] = None
    charge: Optional[Decimal] = None
    credit: Optional[Decimal] = None


@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 StudentSectionResponse(SectionResponse):
    student_section_u_u_i_d: Optional[str] = None
    registered_amount: Decimal = decimal.Decimal(0)
    is_provisional: bool = False
    is_audit: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StudentSectionInvoiceItemResponse(InvoiceItemResponse):
    student_section: Optional[StudentSectionResponse] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class InvoiceItemAdminResponse:
    response_status: Optional[ResponseStatus] = None
    invoice_item_u_u_i_d: Optional[str] = None
    rate_id: int = 0
    rate_code: Optional[str] = None
    rate_description: Optional[str] = None
    is_required: bool = False
    is_optional: bool = False
    charge: Optional[Decimal] = None
    credit: Optional[Decimal] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BenefitResponse:
    rate_id: int = 0
    rate_code: Optional[str] = None
    rate_description: Optional[str] = None
    percentage_rate: Decimal = decimal.Decimal(0)
    is_optional: bool = False
    is_required: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AddRegistrationsResponse(InvoiceResponse):
    transaction_uuid: Optional[str] = None
    student_section_invoice_items: Optional[List[StudentSectionInvoiceItemResponse]] = None
    section_rates: Optional[Dict[str, List[SectionRateWithAmountResponse]]] = None
    credit_tuition_rate: Optional[InvoiceItemAdminResponse] = None
    audit_tuition_rate: Optional[InvoiceItemAdminResponse] = None
    student_age: Optional[int] = None
    student_age_at_earliest_section_start_date: Optional[int] = None
    is_regent_grad: bool = False
    is_only_unclassified: bool = False
    can_register_for_audit_in_term: bool = False
    can_register_for_credit_in_term: bool = False
    messages: Optional[List[str]] = None
    current_term_audit_hours: Decimal = decimal.Decimal(0)
    current_term_credit_hours: Decimal = decimal.Decimal(0)
    total_credit_hours: Decimal = decimal.Decimal(0)
    available_invoice_items: Optional[List[InvoiceItemAdminResponse]] = None
    available_benefits: Optional[List[BenefitResponse]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AddRegistrationRequest:
    section_uuid: Optional[str] = None
    amount: Decimal = decimal.Decimal(0)
    is_audit: bool = False
    is_provisional: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AddRegistrationsRequest:
    uuid: Optional[str] = None
    transaction_uuid: Optional[str] = None
    reporting_term: Optional[str] = None
    sections: Optional[List[AddRegistrationRequest]] = None
    authorizing_uuid: Optional[str] = None

Python AddRegistrationsRequest 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 /Registration/{uuid}/Add/{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,
	sections: 
	[
		{
			section_uuid: String,
			amount: 0,
			is_audit: False,
			is_provisional: False
		}
	],
	authorizing_uuid: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	transaction_uuid: String,
	studentSectionInvoiceItems: 
	[
		{
			studentSection: 
			{
				studentSectionUUID: String,
				registered_amount: 0,
				is_provisional: False,
				is_audit: False,
				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
			},
			responseStatus: 
			{
				errorCode: String,
				message: String,
				stackTrace: String,
				errors: 
				[
					{
						errorCode: String,
						fieldName: String,
						message: String,
						meta: 
						{
							String: String
						}
					}
				],
				meta: 
				{
					String: String
				}
			},
			invoiceItemUUID: String,
			rate_id: 0,
			rate_code: String,
			rate_description: String,
			charge: 0,
			credit: 0
		}
	],
	sectionRates: 
	{
		String: 
		[
			{
				rate_id: 0,
				charge: 0,
				credit: 0,
				responseStatus: 
				{
					errorCode: String,
					message: String,
					stackTrace: String,
					errors: 
					[
						{
							errorCode: String,
							fieldName: String,
							message: String,
							meta: 
							{
								String: String
							}
						}
					],
					meta: 
					{
						String: String
					}
				},
				uuid: String,
				secUUID: String,
				section_id: 0,
				course_name: String,
				section_code: String,
				title: String,
				reporting_term: String,
				rate_code: String,
				rate_description: String,
				is_override_credit_rate: False,
				is_override_audit_rate: False
			}
		]
	},
	creditTuitionRate: 
	{
		responseStatus: 
		{
			errorCode: String,
			message: String,
			stackTrace: String,
			errors: 
			[
				{
					errorCode: String,
					fieldName: String,
					message: String,
					meta: 
					{
						String: String
					}
				}
			],
			meta: 
			{
				String: String
			}
		},
		invoiceItemUUID: String,
		rate_id: 0,
		rate_code: String,
		rate_description: String,
		is_required: False,
		is_optional: False,
		charge: 0,
		credit: 0
	},
	auditTuitionRate: 
	{
		responseStatus: 
		{
			errorCode: String,
			message: String,
			stackTrace: String,
			errors: 
			[
				{
					errorCode: String,
					fieldName: String,
					message: String,
					meta: 
					{
						String: String
					}
				}
			],
			meta: 
			{
				String: String
			}
		},
		invoiceItemUUID: String,
		rate_id: 0,
		rate_code: String,
		rate_description: String,
		is_required: False,
		is_optional: False,
		charge: 0,
		credit: 0
	},
	studentAge: 0,
	studentAgeAtEarliestSectionStartDate: 0,
	isRegentGrad: False,
	isOnlyUnclassified: False,
	canRegisterForAuditInTerm: False,
	canRegisterForCreditInTerm: False,
	messages: 
	[
		String
	],
	currentTermAuditHours: 0,
	currentTermCreditHours: 0,
	totalCreditHours: 0,
	availableInvoiceItems: 
	[
		{
			responseStatus: 
			{
				errorCode: String,
				message: String,
				stackTrace: String,
				errors: 
				[
					{
						errorCode: String,
						fieldName: String,
						message: String,
						meta: 
						{
							String: String
						}
					}
				],
				meta: 
				{
					String: String
				}
			},
			invoiceItemUUID: String,
			rate_id: 0,
			rate_code: String,
			rate_description: String,
			is_required: False,
			is_optional: False,
			charge: 0,
			credit: 0
		}
	],
	availableBenefits: 
	[
		{
			rate_id: 0,
			rate_code: String,
			rate_description: String,
			percentage_rate: 0,
			is_optional: False,
			is_required: False
		}
	],
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	},
	invoiceUUID: String,
	regent_id: 0,
	uuid: String,
	reporting_term: String,
	total_charges: 0,
	total_credits: 0,
	current_status: String,
	timestamp: 0001-01-01
}