API

This space is archived

For current information please use the current ExamSys documentation

API

Rogo 6.1.0

Web services

The following restful endpoints are available:

 

Handler

All module management requests should hit /api/modulemanagement.

Schema

The module management schema is available at /api/schema/modulemanagement/managementrequest.xsd

Create

In order to create a module the create tag needs to be sent containing the name, modluecode, school and faculty tags.

Create Request
<?xml version="1.0" encoding="utf-8"?> <moduleManagementRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://localhost/rogo/api/schema/modulemanagement/managementrequest.xsd"> <create id="str1234"> <modulecode>abc</modulecode> <name>abc</name> <school>abc</school> <faculty>abc</faculty> </create> </moduleManagementRequest>

If the operation is successful the response returns the id of the created module in the id node and a message of 'OK' in the status node. The create tags id attribute is return in order for the external system to match up its request with the response. i.e. a request might contain 100 create requests, meaning we need to be able to identify the response to the specific request.

Create Response
<?xml version="1.0" encoding="utf-8"?> <moduleManagementResponse> <create id="str1234"> <id>23</id> <status_code>100</status_code> <status>OK</status> </create> </moduleManagementResponse>

If there is an error performing the operation the response message returns an id in the id node if applicable and a message in the status node. The create tags id attribute is return in order for the external system to match up its request with the response. i.e. a request might contain 100 create requests, meaning we need to be able to identify the response to the specific request.

Create Error Response
<?xml version="1.0" encoding="utf-8"?> <moduleManagementResponse> <create id="str1234"> <id>12</id> <status_code>505</status_code> <status>Module already exists</status> </create> </moduleManagementResponse>

Update

In order to update a module the update tag needs to be sent containing an id tag (or external id) of the module to be updated.

Update Request
<?xml version="1.0" encoding="utf-8"?> <moduleManagementRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://localhost/rogo/api/schema/modulemanagement/managementrequest.xsd"> <update id="1"> <id>23</id> <name>abcd</name> </update> </moduleManagementRequest>

If the operation is successful the response returns the id of the updated module in the id node and a message of 'OK' in the status node. The create tags id attribute is return in order for the external system to match up its request with the response. i.e. a request might contain 100 create requests, meaning we need to be able to identify the response to the specific request.

Update Response
<?xml version="1.0" encoding="utf-8"?> <moduleManagementResponse> <update id="1"> <id>23</id> <status_code>100</status_code> <status>OK</status> </update> </moduleManagementResponse>

If there is an error performing the operation the response message returns a null id node and a message in the status node. The create tags id attribute is return in order for the external system to match up its request with the response. i.e. a request might contain 100 create requests, meaning we need to be able to identify the response to the specific request.

Create Error Response
<?xml version="1.0" encoding="utf-8"?> <moduleManagementResponse> <update id="1"> <id></id> <status_code>501</status_code> <status>Module does not exist</status> </update> </moduleManagementResponse>
Valid attributes

Attribute

Action

Info

Required?

Attribute

Action

Info

Required?

id

update

The id used to identify the module to update

Only used when updating

externalid

create/update

The external is used to identify the module

If using the externalid as your primary identifier instead of id

externalsys

create/update

The name of the external system

If using the externalid as your primary identifier instead of id

modulecode

create/update

The code of the module

When creating

name

create/update

The name of the module

When creating

school

create/update

School the module is in i.e. 'School of Computer Science'

When creating and if updating faculty

faculty

create/update

Faculty the module is in i.e. 'Faculty of Science'.

 Only when school attribute supplied

sms

create/update

Student management system used to create module

No

 

Delete

In order to delete a module the delete tag needs to be sent containing an id tag of the module to be deleted.

Delete Request
<?xml version="1.0" encoding="utf-8"?> <moduleManagementRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://localhost/rogo/api/schema/modulemanagement/managementrequest.xsd"> <delete id="az"> <id>23</id> </delete> </moduleManagementRequest>

If the operation is successful the response returns the id of the deleted module in the id node and a message of 'OK' in the status node. The delete tags id attribute is return in order for the external system to match up its request with the response. i.e. a request might contain 100 delete requests, meaning we need to be able to identify the response to the specific request.

Delete Response
<?xml version="1.0" encoding="utf-8"?> <moduleManagementResponse> <delete id="az"> <id>23</id> <status_code>100</status_code> <status>OK</status> </delete> </moduleManagementResponse>

If there is an error performing the operation the response message returns a null id node and a message in the status node. The delete tags id attribute is return in order for the external system to match up its request with the response. i.e. a request might contain 100 delete requests, meaning we need to be able to identify the response to the specific request.

Create Error Response
<?xml version="1.0" encoding="utf-8"?> <moduleManagementResponse> <delete id="az"> <id></id> <status>You do not have permission to run this action</status> </delete> </moduleManagementResponse>
Valid attributes

Attribute

Action

Info

Required?

Attribute

Action

Info

Required?

id

delete

The id used to identify the module to delete

Yes

externalid

create/update

The external is used to identify the module

If using the externalid as your primary identifier instead of id

 

Response Codes

Possible response codes are as follows:

Code

Description

Code

Description

100

Action successfully performed

500

Error deleting module

501

Module does not exist

502

Cannot delete module as in use

503

Error updating module

504

Error creating module

505

Module already exists

506

Faculty not supplied

511

School not supplied

512

Nothing to update

513

School External ID already in use

Handler

All school management requests should hit /api/schoolmanagement.

Schema

The school management schema is available at /api/schema/schoolmanagement/managementrequest.xsd

Create

In order to create a school the create tag needs to be sent containing the name, and faculty tags.

Create Request
<?xml version="1.0" encoding="utf-8"?> <schoolManagementRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://localhost/rogo/api/schema/schoolmanagement/managementrequest.xsd"> <create id="str1234"> <name>abcd</name> <faculty>abc</faculty> </create> </schoolManagementRequest>

If the operation is successful the response returns the id of the created school in the id node and a message of 'OK' in the status node. The create tags id attribute is return in order for the external system to match up its request with the response. i.e. a request might contain 100 create requests, meaning we need to be able to identify the response to the specific request.

Create Response
<?xml version="1.0" encoding="utf-8"?> <schoolManagementResponse> <create id="str1234"> <id>12</id> <status_code>100</status_code> <status>OK</status> </create> </schoolManagementResponse>

If there is an error performing the operation the response message returns an id in the id node if applicable and a message in the status node. The create tags id attribute is return in order for the external system to match up its request with the response. i.e. a request might contain 100 create requests, meaning we need to be able to identify the response to the specific request.

Create Error Response
<?xml version="1.0" encoding="utf-8"?> <schoolManagementResponse> <create id="str1234"> <id>12</id> <status_code>606</status_code> <status>School already exists</status> </create> </schoolManagementResponse>

Update

In order to update a module the update tag needs to be sent containing an id tag (or external id) of the school to be updated.

Update Request
<?xml version="1.0" encoding="utf-8"?> <schoolManagementRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://localhost/rogo/api/schema/schoolmanagement/managementrequest.xsd"> <update id="13"> <id>12</id> <name>abcde</name> </update> </schoolManagementRequest>

If the operation is successful the response returns the id of the updated school in the id node and a message of 'OK' in the status node. The create tags id attribute is return in order for the external system to match up its request with the response. i.e. a request might contain 100 create requests, meaning we need to be able to identify the response to the specific request.

Update Response
<?xml version="1.0" encoding="utf-8"?> <schoolManagementResponse> <update id="13"> <id>12</id> <status_code>100</status_code> <status>OK</status> </update> </schoolManagementResponse>

If there is an error performing the operation the response message returns a null id node and a message in the status node. The create tags id attribute is return in order for the external system to match up its request with the response. i.e. a request might contain 100 create requests, meaning we need to be able to identify the response to the specific request.

Create Error Response
<?xml version="1.0" encoding="utf-8"?> <schoolManagementResponse> <update id="1"> <id></id> <status_code>605</status_code> <status>Faculty does not exist</status> </update> </schoolManagementResponse>
Valid attributes

Attribute

Action

Info

Required?

Attribute

Action

Info

Required?

id

update

The id used to identify the school to update

Only used when updating

externalid

create/update

The external is used to identify the module

If using the externalid as your primary identifier instead of id

externalsys

create/update

The name of the external system

If using the externalid as your primary identifier instead of id

school

create/update

The School i.e. 'School of Computer Science'

When creating

faculty

create/update

Faculty the school is in i.e. 'Faculty of Science'.

 Only when creating a new school

 

Delete

In order to delete a module the delete tag needs to be sent containing an id tag of the school to be deleted.

Delete Request
<?xml version="1.0" encoding="utf-8"?> <schoolManagementRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://localhost/rogo/api/schema/schoolmanagement/managementrequest.xsd"> <delete id="qwerty"> <id>12</id> </delete> </schoolManagementRequest>

If the operation is successful the response returns the id of the deleted school in the id node and a message of 'OK' in the status node. The delete tags id attribute is return in order for the external system to match up its request with the response. i.e. a request might contain 100 delete requests, meaning we need to be able to identify the response to the specific request.

Delete Response
<?xml version="1.0" encoding="utf-8"?> <schoolManagementResponse> <delete id="qwerty"> <id>12</id> <status_code>100</status_code> <status>OK</status> </delete> </schoolManagementResponse>

If there is an error performing the operation the response message returns a null id node and a message in the status node. The delete tags id attribute is return in order for the external system to match up its request with the response. i.e. a request might contain 100 delete requests, meaning we need to be able to identify the response to the specific request.

Delete Error Response
<?xml version="1.0" encoding="utf-8"?> <schoolManagementResponse> <delete id="qwerty"> <id></id> <status>You do not have permission to run this action</status> </delete> </schoolManagementResponse>
Valid attributes

Attribute

Action

Info

Required?

Attribute

Action

Info

Required?

id

delete

The id used to identify the school to delete

Yes

externalid

create/update

The external is used to identify the module

If using the externalid as your primary identifier instead of id

Response Codes

Possible response codes are as follows:

Code

Description

Code

Description

100

Action successfully performed

600

Error deleting school

601

School does not exist

602

Error updating school

603

Error creating school

604

Cannot delete school in use

605

Faculty supplied invalid

606

School already exists

607

Nothing to update

608

Faculty External ID invalid

 

 

 

Handler

All course management requests should hit /api/coursemanagement.

Schema

The course management schema is available at /api/schema/coursemanagement/managementrequest.xsd

Create

In order to create a course the create tag needs to be sent containing the name, description and school tags (ty as well if new school).

Create Request
<?xml version="1.0" encoding="utf-8"?> <courseManagementRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://localhost/rogo/api/schema/coursemanagement/managementrequest.xsd"> <create id="str1234"> <name>rogotest</name> <description>rogo test</description> <school>test</school> </create> </courseManagementRequest>

If the operation is successful the response returns the id of the created course in the id node and a message of 'OK' in the status node. The create tags id attribute is return in order for the external system to match up its request with the response. i.e. a request might contain 100 create requests, meaning we need to be able to identify the response to the specific request.

Create Response
<?xml version="1.0" encoding="utf-8"?> <courseManagementResponse> <create id="str1234"> <id>13</id> <status_code>100</status_code> <status>OK</status> </create> </courseManagementResponse>

If there is an error performing the operation the response message returns an id in the id node if applicable and a message in the status node. The create tags id attribute is return in order for the external system to match up its request with the response. i.e. a request might contain 100 create requests, meaning we need to be able to identify the response to the specific request.

Create Error Response
<?xml version="1.0" encoding="utf-8"?> <courseManagementResponse> <create id="str1234"> <id>13</id> <status_code>306</status_code> <status>Course already exists</status> </create> </courseManagementResponse>

Update

In order to update a module the update tag needs to be sent containing an id tag of the course to be updated.

Update Request
<?xml version="1.0" encoding="utf-8"?> <courseManagementRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://localhost/rogo/api/schema/coursemanagement/managementrequest.xsd"> <update id="str1234"> <id>13</id> <school>test 2</school> <faculty>test faculty</faculty>  </update> </courseManagementRequest>

If the operation is successful the response returns the id of the updated course in the id node and a message of 'OK' in the status node. The create tags id attribute is return in order for the external system to match up its request with the response. i.e. a request might contain 100 create requests, meaning we need to be able to identify the response to the specific request.

Update Response
<?xml version="1.0" encoding="utf-8"?> <courseManagementRequest> <update id="str1234"> <id>13</id> <status_code>100</status_code> <status>OK</status> </update> </courseManagementRequest>

If there is an error performing the operation the response message returns a null id node and a message in the status node. The create tags id attribute is return in order for the external system to match up its request with the response. i.e. a request might contain 100 create requests, meaning we need to be able to identify the response to the specific request.

Create Error Response
<?xml version="1.0" encoding="utf-8"?> <courseManagementRequest> <update id="1"> <id></id> <status_code>301</status_code> status>Course does not exist</status> </update> </courseManagementRequest>
Valid attributes

Attribute

Action

Info

Required?

Attribute

Action

Info

Required?

id

update

The id used to identify the course to update

Only used when updating

externalid

create/update

The external is used to identify the module

If using the externalid as your primary identifier instead of id

externalsys

create/update

The name of the external system

If using the externalid as your primary identifier instead of id

name

create/update

The code of the course i.e. EA03

When creating

description

create/update

Description of the course i.e. 'Computer Science with Artificial Intelligence (2+2)(4 Year UG (yr 1 foundation))'

When creating

school

create/update

School the course is in i.e. 'School of Computer Science'

When creating

faculty

create/update

Faculty the school is in i.e. 'Faculty of Science'.

 Only when school attribute supplied

 

Delete

In order to delete a module the delete tag needs to be sent containing an id tag of the course to be deleted.

Delete Request
<?xml version="1.0" encoding="utf-8"?> <courseManagementRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://localhost/rogo/api/schema/coursemanagement/managementrequest.xsd"> <delete id="qwerty"> <id>13</id> </delete> </courseManagementRequest>

If the operation is successful the response returns the id of the deleted course in the id node and a message of 'OK' in the status node. The delete tags id attribute is return in order for the external system to match up its request with the response. i.e. a request might contain 100 delete requests, meaning we need to be able to identify the response to the specific request.

Delete Response
<?xml version="1.0" encoding="utf-8"?> <courseManagementRequest> <delete id="qwerty"> <id>13</id> <status_code>100</status_code> <status>OK</status> </delete> </courseManagementRequest>

If there is an error performing the operation the response message returns a null id node and a message in the status node. The delete tags id attribute is return in order for the external system to match up its request with the response. i.e. a request might contain 100 delete requests, meaning we need to be able to identify the response to the specific request.

Delete Error Response
<?xml version="1.0" encoding="utf-8"?> <courseManagementRequest> <delete id="qwerty"> <id></id> <status>You do not have permission to run this action</status> </delete> </courseManagementRequest>
Valid attributes

Attribute

Action

Info

Required?

Attribute

Action

Info

Required?

id

delete

The id used to identify the course to delete

Yes

externalid

create/update

The external is used to identify the module

If using the externalid as your primary identifier instead of id

Response Codes

Possible response codes are as follows:

Code

Description

Code

Description

100

Action successfully performed

300

Error deleting course

301

Course does not exist

302

Cannot delete course as in use

303

Invalid faculty

304

Error updating course

305

Error creating course

306

Course already exists

307

School not supplied

308

Request updates nothing

309

School External ID already in use

 

 

Handler

All faculty management requests should hit /api/facultymanagement.

Schema

The faculty management schema is available at /api/schema/facultymanagement/managementrequest.xsd

Create

In order to create a faculty the create tag needs to be sent containing the name.

Create Request
<?xml version="1.0" encoding="utf-8"?> <facultyManagementRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://localhost/rogo/api/schema/facultymanagement/managementrequest.xsd"> <create id="str1234"> <name>abc</name> </create> </facultyManagementRequest>

If the operation is successful the response returns the id of the created faculty in the id node and a message of 'OK' in the status node. The create tags id attribute is return in order for the external system to match up its request with the response. i.e. a request might contain 100 create requests, meaning we need to be able to identify the response to the specific request.

Create Response
<?xml version="1.0" encoding="utf-8"?> <facultyManagementResponse> <create id="str1234"> <id>11</id> <status_code>100</status_code> <status>OK</status> </create> </facultyManagementResponse>

If there is an error performing the operation the response message returns an id in the id node if applicable and a message in the status node. The create tags id attribute is return in order for the external system to match up its request with the response. i.e. a request might contain 100 create requests, meaning we need to be able to identify the response to the specific request.

Create Error Response
<?xml version="1.0" encoding="utf-8"?> <facultyManagementResponse> <create id="str1234"> <id>10</id> <status_code>401</status_code> <status>Faculty already exists</status> </create> </facultyManagementResponse>

Update

In order to update a module the update tag needs to be sent containing an id tag of the faculty to be updated.

Update Request
<?xml version="1.0" encoding="utf-8"?> <facultyManagementRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://localhost/rogo/api/schema/facultymanagement/managementrequest.xsd"> <update id="str1234"> <id>11</id> <name>abcde</name> </update> </facultyManagementRequest>

If the operation is successful the response returns the id of the updated faculty in the id node and a message of 'OK' in the status node. The create tags id attribute is return in order for the external system to match up its request with the response. i.e. a request might contain 100 create requests, meaning we need to be able to identify the response to the specific request.

Update Response
<?xml version="1.0" encoding="utf-8"?> <facultyManagementResponse> <update id="str1234"> <id>11</id> <status_code>100</status_code> <status>OK</status> </update> </facultyManagementResponse>

If there is an error performing the operation the response message returns a null id node and a message in the status node. The create tags id attribute is return in order for the external system to match up its request with the response. i.e. a request might contain 100 create requests, meaning we need to be able to identify the response to the specific request.

Create Error Response
<?xml version="1.0" encoding="utf-8"?> <facultyManagementResponse> <update id="str1234"> <id></id> <status_code>402</status_code> <status>Faculty not updated</status> </update> </facultyManagementResponse>
Valid attributes

Attribute

Action

Info

Required?

Attribute

Action

Info

Required?

id

update

The id used to identify the faculty to update

Only used when updating

externalid