regis

<back to all web services

SectionsAvailableToChangeForStudentRequest

Requires Authentication
Required role:REGISUserRole
The following routes are available for this service:
POST/Sections/AvailableToChange/{uuid}/Term/{reporting_term}
import Foundation
import ServiceStack

public class SectionsAvailableToChangeForStudentRequest : Codable
{
    public var uuid:String
    public var reporting_term:String
    public var online_only:Bool

    required public init(){}
}

public class SectionsAvailableForStudentResponse : Codable
{
    public var responseStatus:ResponseStatus
    public var regent_id:Int
    public var uuid:String
    public var reporting_term:String
    public var notifyOfAcademicProbation:Bool
    public var sectionsAvailable:[SectionAvailableForStudentResponse] = []
    public var messages:[String] = []

    required public init(){}
}

public class SectionAvailableForStudentResponse : SectionResponse
{
    public var uuid:String
    public var studentSectionUUID:String
    public var registered_amount:Double?
    public var is_full:Bool
    public var is_too_late:Bool
    public var is_too_early:Bool
    public var is_audit:Bool
    public var is_selected:Bool
    public var is_registered:Bool
    public var is_provisional:Bool
    public var is_missing_requisites:Bool
    public var is_completed:Bool
    public var maximum_credit_hours:Double?
    public var maximum_audit_hours:Double?
    public var can_retake:Bool
    public var is_credit_restricted:Bool
    public var is_audit_restricted:Bool
    public var is_oncampus_restricted_for_change:Bool
    public var is_online_restricted_for_change:Bool
    public var can_be_provisional:Bool
    public var can_be_dropped:Bool
    public var ruleMessages:[String] = []

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case uuid
        case studentSectionUUID
        case registered_amount
        case is_full
        case is_too_late
        case is_too_early
        case is_audit
        case is_selected
        case is_registered
        case is_provisional
        case is_missing_requisites
        case is_completed
        case maximum_credit_hours
        case maximum_audit_hours
        case can_retake
        case is_credit_restricted
        case is_audit_restricted
        case is_oncampus_restricted_for_change
        case is_online_restricted_for_change
        case can_be_provisional
        case can_be_dropped
        case ruleMessages
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        uuid = try container.decodeIfPresent(String.self, forKey: .uuid)
        studentSectionUUID = try container.decodeIfPresent(String.self, forKey: .studentSectionUUID)
        registered_amount = try container.decodeIfPresent(Double.self, forKey: .registered_amount)
        is_full = try container.decodeIfPresent(Bool.self, forKey: .is_full)
        is_too_late = try container.decodeIfPresent(Bool.self, forKey: .is_too_late)
        is_too_early = try container.decodeIfPresent(Bool.self, forKey: .is_too_early)
        is_audit = try container.decodeIfPresent(Bool.self, forKey: .is_audit)
        is_selected = try container.decodeIfPresent(Bool.self, forKey: .is_selected)
        is_registered = try container.decodeIfPresent(Bool.self, forKey: .is_registered)
        is_provisional = try container.decodeIfPresent(Bool.self, forKey: .is_provisional)
        is_missing_requisites = try container.decodeIfPresent(Bool.self, forKey: .is_missing_requisites)
        is_completed = try container.decodeIfPresent(Bool.self, forKey: .is_completed)
        maximum_credit_hours = try container.decodeIfPresent(Double.self, forKey: .maximum_credit_hours)
        maximum_audit_hours = try container.decodeIfPresent(Double.self, forKey: .maximum_audit_hours)
        can_retake = try container.decodeIfPresent(Bool.self, forKey: .can_retake)
        is_credit_restricted = try container.decodeIfPresent(Bool.self, forKey: .is_credit_restricted)
        is_audit_restricted = try container.decodeIfPresent(Bool.self, forKey: .is_audit_restricted)
        is_oncampus_restricted_for_change = try container.decodeIfPresent(Bool.self, forKey: .is_oncampus_restricted_for_change)
        is_online_restricted_for_change = try container.decodeIfPresent(Bool.self, forKey: .is_online_restricted_for_change)
        can_be_provisional = try container.decodeIfPresent(Bool.self, forKey: .can_be_provisional)
        can_be_dropped = try container.decodeIfPresent(Bool.self, forKey: .can_be_dropped)
        ruleMessages = try container.decodeIfPresent([String].self, forKey: .ruleMessages) ?? []
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if uuid != nil { try container.encode(uuid, forKey: .uuid) }
        if studentSectionUUID != nil { try container.encode(studentSectionUUID, forKey: .studentSectionUUID) }
        if registered_amount != nil { try container.encode(registered_amount, forKey: .registered_amount) }
        if is_full != nil { try container.encode(is_full, forKey: .is_full) }
        if is_too_late != nil { try container.encode(is_too_late, forKey: .is_too_late) }
        if is_too_early != nil { try container.encode(is_too_early, forKey: .is_too_early) }
        if is_audit != nil { try container.encode(is_audit, forKey: .is_audit) }
        if is_selected != nil { try container.encode(is_selected, forKey: .is_selected) }
        if is_registered != nil { try container.encode(is_registered, forKey: .is_registered) }
        if is_provisional != nil { try container.encode(is_provisional, forKey: .is_provisional) }
        if is_missing_requisites != nil { try container.encode(is_missing_requisites, forKey: .is_missing_requisites) }
        if is_completed != nil { try container.encode(is_completed, forKey: .is_completed) }
        if maximum_credit_hours != nil { try container.encode(maximum_credit_hours, forKey: .maximum_credit_hours) }
        if maximum_audit_hours != nil { try container.encode(maximum_audit_hours, forKey: .maximum_audit_hours) }
        if can_retake != nil { try container.encode(can_retake, forKey: .can_retake) }
        if is_credit_restricted != nil { try container.encode(is_credit_restricted, forKey: .is_credit_restricted) }
        if is_audit_restricted != nil { try container.encode(is_audit_restricted, forKey: .is_audit_restricted) }
        if is_oncampus_restricted_for_change != nil { try container.encode(is_oncampus_restricted_for_change, forKey: .is_oncampus_restricted_for_change) }
        if is_online_restricted_for_change != nil { try container.encode(is_online_restricted_for_change, forKey: .is_online_restricted_for_change) }
        if can_be_provisional != nil { try container.encode(can_be_provisional, forKey: .can_be_provisional) }
        if can_be_dropped != nil { try container.encode(can_be_dropped, forKey: .can_be_dropped) }
        if ruleMessages.count > 0 { try container.encode(ruleMessages, forKey: .ruleMessages) }
    }
}

public class SectionResponse : Codable
{
    public var responseStatus:ResponseStatus
    public var secUUID:String
    public var course_name:String
    public var section_code:String
    public var course_title:String
    public var course_short_title:String
    public var course_description:String
    public var crosslist_description:String
    public var crosslist_course_name:String
    public var location_long_name:String
    public var room:String
    public var instructors:[InstructorResponse] = []
    public var required_documents:[DocumentResponse] = []
    public var start_date:Date?
    public var end_date:Date?
    public var first_meeting_date:Date?
    public var last_meeting_date:Date?
    public var meeting_days:String
    public var start_times:[String] = []
    public var end_times:[String] = []
    public var is_online_only:Bool
    public var is_weekend:Bool
    public var is_weekday:Bool
    public var is_evening:Bool
    public var is_waitlist:Bool
    public var has_special_requirements:Bool
    public var special_requirements:String
    public var is_unlisted:Bool
    public var credit_amounts:[Double] = []
    public var audit_amounts:[Double] = []
    public var audits_short_name:String
    public var audits_long_name:String
    public var credits_short_name:String
    public var credits_long_name:String
    public var distance_ed_materials:String
    public var prerequisites:String
    public var corequisites:String
    public var capacity:Int?
    public var flat_fee_amount:Double?
    public var additional_fee_amount:Double?
    public var registered_students:Int
    public var three_credit_plus:Int
    public var two_credit:Int
    public var one_credit:Int
    public var three_audit_plus:Int
    public var two_audit:Int
    public var one_audit:Int
    public var crosslist_registered_students:Int
    public var grades_received:Int
    public var crosslist_grades_received:Int
    public var registration_start_date:Date?
    public var registration_end_date:Date?
    public var add_start_date:Date?
    public var add_end_date:Date?
    public var drop_start_date:Date?
    public var drop_end_date:Date?
    public var grading_end_date:Date?
    public var term:String
    public var reporting_term:String
    public var reporting_year:Int
    public var current_status:String
    public var added_by:String
    public var added_date:Date?
    public var changed_by:String
    public var changed_date:Date?
    public var timestamp:Date

    required public init(){}
}

public class InstructorResponse : Codable
{
    public var responseStatus:ResponseStatus
    public var regent_id:Int
    public var regent_login:String
    public var preferred_name:String
    public var first_name:String
    public var last_name:String
    public var full_name:String
    public var email:String
    public var image_base64:String

    required public init(){}
}

public class DocumentResponse : Codable
{
    public var code:String
    public var document_name:String
    public var document_description:String

    required public init(){}
}


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

{
	uuid: String,
	reporting_term: String,
	online_only: 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
	]
}