regis

<back to all web services

CourseCreateRequest

Requires Authentication
Required role:REGISUserRole
The following routes are available for this service:
POST/Courses/Admin/Create
import 'package:servicestack/servicestack.dart';

class CourseRequirementResponse implements IConvertible
{
    int? course_id;
    int? required_course_id;
    int? requirement_group;
    bool? is_prerequisite;
    bool? is_corequisite;
    DateTime? timestamp;

    CourseRequirementResponse({this.course_id,this.required_course_id,this.requirement_group,this.is_prerequisite,this.is_corequisite,this.timestamp});
    CourseRequirementResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        course_id = json['course_id'];
        required_course_id = json['required_course_id'];
        requirement_group = json['requirement_group'];
        is_prerequisite = json['is_prerequisite'];
        is_corequisite = json['is_corequisite'];
        timestamp = JsonConverters.fromJson(json['timestamp'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'course_id': course_id,
        'required_course_id': required_course_id,
        'requirement_group': requirement_group,
        'is_prerequisite': is_prerequisite,
        'is_corequisite': is_corequisite,
        'timestamp': JsonConverters.toJson(timestamp,'DateTime',context!)
    };

    getTypeName() => "CourseRequirementResponse";
    TypeContext? context = _ctx;
}

class CourseCreateRequest implements IConvertible
{
    String? course_name;
    String? title;
    String? pretty_title;
    String? course_description;
    bool? is_active;
    List<CourseRequirementResponse>? course_requirements;
    String? authorizing_uuid;

    CourseCreateRequest({this.course_name,this.title,this.pretty_title,this.course_description,this.is_active,this.course_requirements,this.authorizing_uuid});
    CourseCreateRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        course_name = json['course_name'];
        title = json['title'];
        pretty_title = json['pretty_title'];
        course_description = json['course_description'];
        is_active = json['is_active'];
        course_requirements = JsonConverters.fromJson(json['course_requirements'],'List<CourseRequirementResponse>',context!);
        authorizing_uuid = json['authorizing_uuid'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'course_name': course_name,
        'title': title,
        'pretty_title': pretty_title,
        'course_description': course_description,
        'is_active': is_active,
        'course_requirements': JsonConverters.toJson(course_requirements,'List<CourseRequirementResponse>',context!),
        'authorizing_uuid': authorizing_uuid
    };

    getTypeName() => "CourseCreateRequest";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'data.regent_college.edu', types: <String, TypeInfo> {
    'CourseRequirementResponse': TypeInfo(TypeOf.Class, create:() => CourseRequirementResponse()),
    'CourseCreateRequest': TypeInfo(TypeOf.Class, create:() => CourseCreateRequest()),
    'List<CourseRequirementResponse>': TypeInfo(TypeOf.Class, create:() => <CourseRequirementResponse>[]),
});

Dart CourseCreateRequest 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 /Courses/Admin/Create HTTP/1.1 
Host: data.regent-college.edu 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	course_name: String,
	title: String,
	pretty_title: String,
	course_description: String,
	is_active: False,
	course_requirements: 
	[
		{
			course_id: 0,
			required_course_id: 0,
			requirement_group: 0,
			is_prerequisite: False,
			is_corequisite: False,
			timestamp: 0001-01-01
		}
	],
	authorizing_uuid: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	errorCode: String,
	message: String,
	stackTrace: String,
	errors: 
	[
		{
			errorCode: String,
			fieldName: String,
			message: String,
			meta: 
			{
				String: String
			}
		}
	],
	meta: 
	{
		String: String
	}
}