regis

<back to all web services

TranscriptRequest

Requires Authentication
Required role:REGISUserRole
The following routes are available for this service:
POST/Transcript/{uuid}
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 ExternalDegreeResponse:
    id: Optional[int] = None
    institution_id: Optional[int] = None
    degree_name: Optional[str] = None
    degree_override_name: Optional[str] = None
    institution_name: Optional[str] = None
    graduation_month: Optional[str] = None
    start_year: Optional[int] = None
    end_year: Optional[int] = None
    is_only_in_d365: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StudentProgramTranscriptResponse:
    response_status: Optional[ResponseStatus] = None
    program_code: Optional[str] = None
    program_name: Optional[str] = None
    concentration_code: Optional[str] = None
    concentration_name: Optional[str] = None
    start_date: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RegentDegreeResponse:
    id: int = 0
    program_code: Optional[str] = None
    program_name: Optional[str] = None
    concentration_code: Optional[str] = None
    concentration_name: Optional[str] = None
    graduation_month: Optional[datetime.datetime] = None
    start_date: Optional[datetime.datetime] = None
    end_date: Optional[datetime.datetime] = None
    gpa: Optional[Decimal] = None
    academic_level: Optional[str] = None
    commencement_date: Optional[datetime.datetime] = None
    added_date: Optional[datetime.datetime] = None
    added_by: Optional[str] = None
    changed_date: Optional[datetime.datetime] = None
    changed_by: Optional[str] = None
    timestamp: datetime.datetime = datetime.datetime(1, 1, 1)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StudentAcademicCredentialResponse:
    response_status: Optional[ResponseStatus] = None
    uuid: Optional[str] = None
    stac_uuid: Optional[str] = None
    section_id: Optional[int] = None
    course_name: Optional[str] = None
    section_code: Optional[str] = None
    subject: Optional[str] = None
    course_level: Optional[int] = None
    title: Optional[str] = None
    pretty_title: Optional[str] = None
    location: Optional[str] = None
    is_audio: bool = False
    is_oncampus: bool = False
    credit_value: Optional[Decimal] = None
    audit_value: Optional[Decimal] = None
    is_audit: bool = False
    is_pass_fail: bool = False
    grade: Optional[str] = None
    is_grade_final: bool = False
    gpa_credits: Optional[Decimal] = None
    grade_points: Optional[Decimal] = None
    academic_level: Optional[str] = None
    printed_comments: Optional[str] = None
    term: Optional[str] = None
    reporting_term: Optional[str] = None
    reporting_year: Optional[int] = None
    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


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StudentAcademicCredentialTranscriptResponse(StudentAcademicCredentialResponse):
    registered_credits: Optional[Decimal] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StudentTransferCredentialTranscriptResponse:
    course_name: Optional[str] = None
    title: Optional[str] = None
    is_advanced_standing: bool = False
    credit_value: Optional[Decimal] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StudentTransferCredentialsTranscriptResponse:
    institution_name: Optional[str] = None
    transfer_credits: Optional[List[StudentTransferCredentialTranscriptResponse]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TranscriptResponse:
    response_status: Optional[ResponseStatus] = None
    first_name: Optional[str] = None
    last_name: Optional[str] = None
    middle_name: Optional[str] = None
    override_name: Optional[str] = None
    regent_id: int = 0
    academic_level: Optional[str] = None
    dob: datetime.datetime = datetime.datetime(1, 1, 1)
    previous_degrees: Optional[List[ExternalDegreeResponse]] = None
    student_programs: Optional[List[StudentProgramTranscriptResponse]] = None
    regent_degrees: Optional[List[RegentDegreeResponse]] = None
    student_academic_credentials: Optional[List[StudentAcademicCredentialTranscriptResponse]] = None
    transfer_credentials: Optional[List[StudentTransferCredentialsTranscriptResponse]] = None
    transcript_notes: Optional[List[str]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TranscriptRequest:
    uuid: Optional[str] = None
    academic_level: Optional[str] = None
    override_all_restrictions: bool = False
    override_nonfinancial_restrictions: bool = False
    authorizing_uuid: Optional[str] = None

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

{
	uuid: String,
	academic_level: String,
	override_all_restrictions: False,
	override_nonfinancial_restrictions: False,
	authorizing_uuid: String
}
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
		}
	},
	first_name: String,
	last_name: String,
	middle_name: String,
	override_name: String,
	regent_id: 0,
	academic_level: String,
	dob: 0001-01-01,
	previous_degrees: 
	[
		{
			id: 0,
			institution_id: 0,
			degree_name: String,
			degree_override_name: String,
			institution_name: String,
			graduation_month: String,
			start_year: 0,
			end_year: 0,
			is_only_in_d365: False
		}
	],
	student_programs: 
	[
		{
			responseStatus: 
			{
				errorCode: String,
				message: String,
				stackTrace: String,
				errors: 
				[
					{
						errorCode: String,
						fieldName: String,
						message: String,
						meta: 
						{
							String: String
						}
					}
				],
				meta: 
				{
					String: String
				}
			},
			program_code: String,
			program_name: String,
			concentration_code: String,
			concentration_name: String,
			start_date: 0001-01-01
		}
	],
	regent_degrees: 
	[
		{
			id: 0,
			program_code: String,
			program_name: String,
			concentration_code: String,
			concentration_name: String,
			graduation_month: 0001-01-01,
			start_date: 0001-01-01,
			end_date: 0001-01-01,
			gpa: 0,
			academic_level: String,
			commencement_date: 0001-01-01,
			added_date: 0001-01-01,
			added_by: String,
			changed_date: 0001-01-01,
			changed_by: String,
			timestamp: 0001-01-01
		}
	],
	student_academic_credentials: 
	[
		{
			registered_credits: 0,
			responseStatus: 
			{
				errorCode: String,
				message: String,
				stackTrace: String,
				errors: 
				[
					{
						errorCode: String,
						fieldName: String,
						message: String,
						meta: 
						{
							String: String
						}
					}
				],
				meta: 
				{
					String: String
				}
			},
			uuid: String,
			stac_uuid: String,
			section_id: 0,
			course_name: String,
			section_code: String,
			subject: String,
			course_level: 0,
			title: String,
			pretty_title: String,
			location: String,
			is_audio: False,
			is_oncampus: False,
			credit_value: 0,
			audit_value: 0,
			is_audit: False,
			is_pass_fail: False,
			grade: String,
			is_grade_final: False,
			gpa_credits: 0,
			grade_points: 0,
			academic_level: String,
			printed_comments: String,
			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
		}
	],
	transfer_credentials: 
	[
		{
			institution_name: String,
			transferCredits: 
			[
				{
					course_name: String,
					title: String,
					is_advanced_standing: False,
					credit_value: 0
				}
			]
		}
	],
	transcript_notes: 
	[
		String
	]
}