HandcarLearningService

Key HandcarLearning
Version 1.0
Included Services  
Java Package edu.mit.oeit.mc3.handcar.model

The Handcar Learning Service is a RESTful expression of the OSID learning manager and related services needed to fully manage
learning objectives. These related services include Repository for assets, Grading for knowledge category and cognitive process
scales and type for genus and other types. These items are known issues that are under consideration for implementation in
future releases.

  1. Managing the configuration data for a bank directly via Handcar

  2. Providing a metadata so the UI can dynamically validate data values

  3. Support for assessments

  4. Managing assets directly via a separate repository service

  5. Support for additional asset content types (mime types)

  6. Getting branding information about a bank or an asset is not yet supported

  7. Cross bank support (having objectives in multiple banks) in general works but there may still be lingering issues.



Handcar is a simplified, but faithful, expression of the OSIDs that aligns with the REST goals of simplicity and focuses on
exposing OSID objects as resources.

See Wikipedia Representation state transfer

In particular Handcar takes a data centric view whereas the OSIDS exercise more specific method calls to express it's rich
functionality. For example, whereas the OSIDS allow a consumer to add and remove individual parents or children in an objective
hierarchy, this RESTful expression allows only allows complete updates replacing any existing parents or children with the new
set of parents or children.

It also takes a simplified view in that all resources are organized around independent objective banks. As such although an
objective could, according to the OSIDs, appear in more than one objective bank this interface limits an Objective (for now) to
appearing in just one bank. Similarly assets, which are organized into repositories according to the OSID model, have been
structured here so that there is a one to one relationship between an objective bank and a repository that holds all the assets
for that objective bank. That way assets can be thought of as also belonging to an objective bank and the underlying repository
is never surfaced in this restful interface.

OSID reference: Learning Manager Package

Operations
Main Message Structures

Method getAuthorizationHints
Description Get authorization hints
REST Signature
GET handcar/services/learning/authorization?proxyname={XXXX}
Parameters String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return AuthorizationHintsBean authorization hints for accessing objective banks
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user

Back to Operations

Method getAuthorizationHintsForBank
Description Get authorization hints for a particular objective bank
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/authorization?proxyname={XXXX}
Parameters String objectiveBankId that you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return AuthorizationHintsBean authorization hints for accessing objective banks
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user

Back to Operations

Method getAuthorizationHintsForObjectiveInBank
Description Get authorization hints for a particular objective in a bank
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/authorization?proxyname={XXXX}
Parameters String objectiveBankId that you want to fetch
String objectiveId objective id that you want to manage
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return AuthorizationHintsBean authorization hints for accessing objective banks
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user

Back to Operations

Method getObjectiveBanks
Description Get a list of all objective banks

OSID reference: ObjectiveBankLookupSession
REST Signature
GET handcar/services/learning/objectivebanks?federateusingobjectivebankhierarchyId={id}&objectivebankid={id}&proxyname={XXXX}
Additional query parameters (that can be mixed and matched):
     ?id={id}&id={id}...
     ?genustypeid={id}&genustypeid={id}...
     ?keyword={XXXX}
     ?addedby={XXXX}&addedby={XXXX}...
     ?addedonstartdate={YYYY-MM-DD}
     ?addedonenddate={YYYY-MM-DD}
     ?updatedby={XXXX}&updatedby={XXXX}...
     ?updatedonstartdate={YYYY-MM-DD}
     ?updatedonenddate={YYYY-MM-DD}
     ?startat={999}
     ?maxvalues={999}
Parameters String federateUsingObjectiveBankHierarchyId optional ability to search within a particular hierarchy
String objectiveBankId needs to be specified if using federated searching this searches all banks under this bank
ObjectiveBankQueryBean queryBean optional query filters to apply to the results
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBankBeanList list of all objective banks
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user

Back to Operations

Method getObjectiveBankById
Description Get a particular objective bank by id

OSID reference: ObjectiveBankLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}?proxyname={XXXX}
Parameters String objectiveBankId that you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBankBean the fetched objective bank
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective bank id is bad

Back to Operations

Method getObjectiveBankExtensionRecord
Description Fetch a particular objective bank's extension record

An EXTENSION record is basically a set of key value pairs holding additional data not explicitly defined in the object. It
is a way to extend the object without breaking the contract. See ExtensionRecordBean
for more details.

OSID reference: ObjectiveBank.getObjectiveBankRecord
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/extension?recordtypeid={id}&recordtypeid={id}...&proxyname={XXXX}
Parameters String objectiveBankId bank who's extension is to be fetched
StringList optionalRecordTypeIds optional list of the record types to include, if not specified all record types are included
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ExtensionRecordBean the fetched objective bank's extension
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective bank id is not valid

Back to Operations

Method updateObjectiveBankExtensionRecord
Description Update a particular objective bank's extension record

An EXTENSION record is basically a set of key value pairs holding additional data not explicitly defined in the object. It
is a way to extend the object without breaking the contract. See ExtensionRecordBean
for more details.

OSID reference: ObjectiveBank.getObjectiveBankRecord
REST Signature
PUT {extensionRecord} to  handcar/services/learning/objectivebanks/{objectiveBankId}/extension?proxyname={XXXX}
{
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
}
Parameters String objectiveBankId bank who's extension is to be fetched
ExtensionRecordBean extensionRecord extension record to replace the existing extension record
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ExtensionRecordBean the objective banks extension once updated
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective bank id is not valid

Back to Operations

Method getObjectiveBankBranding
Description Fetch a particular objective bank's branding information

OSID reference: Sourceable
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/branding?proxyname={XXXX}
Implementation Notes not implemented yet
Parameters String objectiveBankId id of bank who's branding information is to be fetched
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return BrandingBean the fetched objective bank's branding information
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective bank id is not valid

Back to Operations

Method getObjectiveBankNgrams
Description Get a list of all objective bank Ngrams

also can optionally take one or more types as query parameters:

GET handcar/services/learning/objectivebanks/ngrams?keyword={keyWord}&maxvalues={maxValues}?genustypeid={genusTypeId}

or any combination of these

GET handcar/services/learning/objectivebanks/ngrams?genustypeid={genusTypeId1}&genustypeid={genusTypeId2}
GET handcar/services/learning/objectivebanks/ngrams?federateusingobjectivebankhierarchyid={federateUsingObjectiveBankHierarchyId}&objectivebankid={objectiveBankId}
GET handcar/services/learning/objectivebanks/ngrams?keyword={keyword}


OSID reference: ObjectiveBankLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/ngrams?federateusingobjectivebankhierarchyId={id}&objectivebankid={id}&proxyname={XXXX}
Additional query parameters (that can be mixed and matched):
     ?id={id}&id={id}...
     ?genustypeid={id}&genustypeid={id}...
     ?keyword={XXXX}
     ?addedby={XXXX}&addedby={XXXX}...
     ?addedonstartdate={YYYY-MM-DD}
     ?addedonenddate={YYYY-MM-DD}
     ?updatedby={XXXX}&updatedby={XXXX}...
     ?updatedonstartdate={YYYY-MM-DD}
     ?updatedonenddate={YYYY-MM-DD}
     ?startat={999}
     ?maxvalues={999}
Parameters String federateUsingObjectiveBankHierarchyId optional ability to search within a particular hierarchy
String objectiveBankId needs to be specified if using federated searching this searches all banks under this bank
ObjectiveBankQueryBean queryBean optional query to filter the results before constructing ngrams
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return NgramBeanList list of all objective banks
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user

Back to Operations

Method getObjectiveNgramsInBank
Description Gets a list of all the ngrams for objectives in the specified bank

Optionally get a list of all the objectives in the specified bank matching the supplied query type or types.

also can optionally take one or more types as query parameters:

GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/ngrams?keyword={keyWord}&maxvalues={maxValues}?genustypeid={genusTypeId}

or any combination of these

GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/ngrams?genustypeid={genusTypeId1}&genustypeid={genusTypeId2}
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/ngrams?federateusingobjectivebankhierarchyid={federateUsingObjectiveBankHierarchyId}
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/ngrams?knowledgecategoryid={knowledgeCategoryId}
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/ngrams?cognitiveprocessid={cognitiveProcessId}
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/ngrams?otherobjectivebankid={otherObjectiveBankId}
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/ngrams?keyword={keyword}


OSID reference: ObjectiveLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/ngrams?federateUsingObjectiveBankHierarchyId={id}&proxyname={XXXX}
Additional query parameters (that can be mixed and matched):
     ?id={id}&id={id}...
     ?genustypeid={id}&genustypeid={id}...
     ?keyword={XXXX}
     ?expectedParentObjectiveId={id}
     ?assessmentid={id}&assessmentid={id}...
     ?knowledgecategoryid={id}&knowledgecategoryid={id}...
     ?cognitiveprocessid={id}&cognitiveprocessid={id}...
     ?addedby={XXXX}&addedby={XXXX}...
     ?addedonstartdate={YYYY-MM-DD}
     ?addedonenddate={YYYY-MM-DD}
     ?updatedby={XXXX}&updatedby={XXXX}...
     ?updatedonstartdate={YYYY-MM-DD}
     ?updatedonenddate={YYYY-MM-DD}
     ?startat={999}
     ?maxvalues={999}
Parameters String objectiveBankId that you want to fetch objectives for
String federateUsingObjectiveBankHierarchyId optional hierarchy to use to find objectives in any child banks of the
specified bank
ObjectiveQueryBean queryBean optional query to filter the results
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return NgramBeanList the list of fetched objectives
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective bank id is bad

Back to Operations

Method getObjectivesInBank
Description Queries for a list of all the objectives in the specified bank

Optionally get a list of all the objectives in the specified bank matching the supplied query type or types.

also can optionally take one or more types as query parameters:

GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives?genustypeid={genusTypeId}

or any combination of these

GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives?genustypeid={genusTypeId1}&genustypeid={genusTypeId2}
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives?ederateusingojectivebankhierarchyid={federateUsingObjectiveBankHierarchyId}
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives?knowledgecategoryid={knowledgeCategoryId}
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives?cognitiveprocessid={cognitiveProcessId}
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives?otherobjectivebankid={otherObjectiveBankId}
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives?keyword={keyword}


OSID reference: ObjectiveLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives?federateUsingObjectiveBankHierarchyId={id}&proxyname={XXXX}
Additional query parameters (that can be mixed and matched):
     ?id={id}&id={id}...
     ?genustypeid={id}&genustypeid={id}...
     ?keyword={XXXX}
     ?expectedParentObjectiveId={id}
     ?assessmentid={id}&assessmentid={id}...
     ?knowledgecategoryid={id}&knowledgecategoryid={id}...
     ?cognitiveprocessid={id}&cognitiveprocessid={id}...
     ?addedby={XXXX}&addedby={XXXX}...
     ?addedonstartdate={YYYY-MM-DD}
     ?addedonenddate={YYYY-MM-DD}
     ?updatedby={XXXX}&updatedby={XXXX}...
     ?updatedonstartdate={YYYY-MM-DD}
     ?updatedonenddate={YYYY-MM-DD}
     ?startat={999}
     ?maxvalues={999}
Parameters String objectiveBankId that you want to fetch objectives for
String federateUsingObjectiveBankHierarchyId optional hierarchy to use to find objectives in any child banks of the
specified bank
ObjectiveQueryBean queryBean optional query used to filter the results
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBeanList the list of fetched objectives
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective bank id is bad

Back to Operations

Method getObjectiveInBankById
Description Fetch a particular objective from a bank

OSID reference: ObjectiveLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}?proxyname={XXXX}
Parameters String objectiveBankId bank that the objective is in
String objectiveId id of the objective you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBean the fetched objective
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getObjectiveById
Description Fetch a particular objective without specifying the bank

OSID reference: ObjectiveLookupSession
REST Signature
GET handcar/services/learning/objectives/{objectiveId}?proxyname={XXXX}
Parameters String objectiveId id of the objective you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBean the fetched objective
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getObjectivesInBankByIds
Description Bulk fetch a bunch of objectives from a bank given a set of ids

OSID reference: ObjectiveLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/bulk?id={id}&id={id}...&proxyname={XXXX}
Parameters String objectiveBankId bank that the objective is in
StringList objectiveIds ids of the objectives you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBeanList list of the fetched objectives
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getObjectivesByIds
Description Bulk fetch a bunch of objectives given a set of ids regardless of the bank

OSID reference: ObjectiveLookupSession
REST Signature
GET handcar/services/learning/objectives/bulk?id={id}&id={id}...&proxyname={XXXX}
Parameters StringList objectiveIds ids of the objectives you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBeanList list of the fetched objectives
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getObjectiveExtensionRecord
Description Fetch a particular objective's EXTENSION record

An EXTENSION record is basically a set of key value pairs holding additional data not explicitly defined in the object. It
is a way to extend the object without breaking the contract. See ExtensionRecordBean
for more details.

OSID reference: Objective.getObjectiveRecord
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/extension?recordtypeid={id}&recordtypeid={id}...&proxyname={XXXX}
Parameters String objectiveBankId bank that the objective is in
String objectiveId id of the objective you want to fetch
StringList optionalRecordTypeIds optional list of the record types to include, if not specified all record types are included
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ExtensionRecordBean the fetched objective's extension record
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getObjectiveExtensionRecords
Description Bulk Fetch of objective EXTENSION records

An EXTENSION record is basically a set of key value pairs holding additional data not explicitly defined in the object. It
is a way to extend the object without breaking the contract. See ExtensionRecordBean
for more details.

OSID reference: Objective.getObjectiveRecord
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectiveextensions?objectiveId={id}&objectiveId={id}...&recordtypeid={id}&recordtypeid={id}...&proxyname={XXXX}
Additional query parameters (that can be mixed and matched):
     ?id={id}&id={id}...
     ?genustypeid={id}&genustypeid={id}...
     ?keyword={XXXX}
     ?expectedParentObjectiveId={id}
     ?assessmentid={id}&assessmentid={id}...
     ?knowledgecategoryid={id}&knowledgecategoryid={id}...
     ?cognitiveprocessid={id}&cognitiveprocessid={id}...
     ?addedby={XXXX}&addedby={XXXX}...
     ?addedonstartdate={YYYY-MM-DD}
     ?addedonenddate={YYYY-MM-DD}
     ?updatedby={XXXX}&updatedby={XXXX}...
     ?updatedonstartdate={YYYY-MM-DD}
     ?updatedonenddate={YYYY-MM-DD}
     ?startat={999}
     ?maxvalues={999}
Parameters String objectiveBankId bank that the objective is in
StringList objectiveIds ids of the objective's extension record you want to fetch, if no specific ids specified then all in bank are included
StringList optionalRecordTypeIds optional list of the record types to include, if not specified all record types are included
ObjectiveQueryBean queryBean optional filter on the objective itself
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ExtensionRecordBeanList the fetched objective extension records
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method updateObjectiveExtensionRecord
Description Update a particular objective's EXTENSION record

An EXTENSION record is basically a set of key value pairs holding additional data not explicitly defined in the object. It
is a way to extend the object without breaking the contract. See ExtensionRecordBean
for more details.

OSID reference: Objective.getObjectiveRecord
REST Signature
PUT {extensionRecord} to  handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/extension?proxyname={XXXX}
{
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
}
Parameters String objectiveBankId bank that the objective is in
String objectiveId id of the objective you want to fetch
ExtensionRecordBean extensionRecord to be updated
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ExtensionRecordBean the updated objective's new extension record
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getRootObjectiveIds
Description Fetch the root objective ids in the topic hierarchy for this bank

Basically this gets all objectives that do not have any parents, see href="#HandcarLearning-getObjectiveParentIds">getObjectiveParentIds.

OSID reference: ObjectiveHierarchySession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/rootids?proxyname={XXXX}
Parameters String objectiveBankId bank for which you wish to fetch the root objectives
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the ids of the root objectives for this bank
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective bank id does not exist

Back to Operations

Method getRootObjectiveNodes
Description Fetch the root objective nodes in the topic hierarchy for this bank and
optionally it's children down to a specified depth

OSID reference: ObjectiveHierarchySession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/roots?descendentlevels={999}&proxyname={XXXX}
Parameters String objectiveBankId bank for which you wish to fetch the root objectives
Integer descendentLevels number of levels down to fetch if not specified then 10 levels are fetched
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveNodeBeanList the root objective nodes for this bank down to the specified depth
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective bank id does not exist

Back to Operations

Method getObjectiveParentIds
Description Fetch a particular objective's hierarchy parent ids

See also getObjectiveParents

To maintain this list see updateObjectiveParentIds


An example of a hierarchy could be:

Math
Arithmetic
Addition
Subtraction
Multiplication
Division
Geometry
Planes
Lines
Angles
Calculus


Parent and child are the same relationship just viewed from the opposite perspective. See also href="#HandcarLearning-getObjectiveChildIds">getObjectiveChildIds

Typically an objective has just a single parent but we discovered situations where the same topic naturally aligns under
different parents so the contract allows for multiple parents.

OSID reference: ObjectiveHierarchySession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/parentids?proxyname={XXXX}
Parameters String objectiveBankId bank that the objective is in
String objectiveId id of the objective you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the objective's parent's ids
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getObjectiveParents
Description Fetch a particular objective's hierarchy parents.

Functionally equivalent to calling getObjectiveParentIds followed by
getObjectivesByIds.

OSID reference: ObjectiveHierarchySession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/parents?proxyname={XXXX}
Parameters String objectiveBankId bank that the objective is in
String objectiveId id of the objective you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBeanList the objective's parent's
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getObjectiveChildIds
Description Fetch a particular objective's hierarchy child ids

See also getObjectiveChildren

Parent and child are the same relationship just viewed from the opposite perspective. See also href="#HandcarLearning-getObjectiveParentIds">getObjectiveParentIds

To maintain this list see updateObjectiveChildIds

OSID reference: ObjectiveHierarchySession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/childids?proxyname={XXXX}
Parameters String objectiveBankId bank that the objective is in
String objectiveId id of the objective you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the objective's children's ids
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getObjectiveChildren
Description Fetch a particular objective's hierarchy children.

Functionally equivalent to calling getObjectiveChildIds followed by href="#HandcarLearning-getObjectivesByIds">getObjectivesByIds.

Parent and child are the same relationship just viewed from the opposite perspective.

See getObjectiveParentIds

OSID reference: ObjectiveHierarchySession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/children?proxyname={XXXX}
Additional query parameters (that can be mixed and matched):
     ?id={id}&id={id}...
     ?genustypeid={id}&genustypeid={id}...
     ?keyword={XXXX}
     ?expectedParentObjectiveId={id}
     ?assessmentid={id}&assessmentid={id}...
     ?knowledgecategoryid={id}&knowledgecategoryid={id}...
     ?cognitiveprocessid={id}&cognitiveprocessid={id}...
     ?addedby={XXXX}&addedby={XXXX}...
     ?addedonstartdate={YYYY-MM-DD}
     ?addedonenddate={YYYY-MM-DD}
     ?updatedby={XXXX}&updatedby={XXXX}...
     ?updatedonstartdate={YYYY-MM-DD}
     ?updatedonenddate={YYYY-MM-DD}
     ?startat={999}
     ?maxvalues={999}
Parameters String objectiveBankId bank that the objective is in
String objectiveId id of the objective you want to fetch
ObjectiveQueryBean objectiveQueryBean optional query parameters to filter the results
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBeanList the objective's children
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getObjectiveChildNodes
Description Bulk operation to fetch nodes representing a particular objective's children, grandchildren, great-grandchildren, etc.

See also getObjectiveChildren

OSID reference: ObjectiveHierarchySession.getObjectiveNodes
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/children/bulk?descendentlevels={999}&proxyname={XXXX}
Parameters String objectiveBankId bank that the objective is in
String objectiveId id of the objective you want to fetch
Integer descendentLevels number of levels down to fetch if not specified then 10 levels are fetched
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveNodeBean a node holding the objective's children, and grand children down to the specified depth
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getBeginnerObjectiveIds
Description Fetch the beginner objectives ids in this objective bank

Basically this gets all objectives that do not have any requisites, see href="#HandcarLearning-getObjectiveRequisiteIds">getObjectiveRequisiteIds.

OSID reference: ObjectiveRequisiteSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/beginnerids?proxyname={XXXX}
Additional query parameters (that can be mixed and matched):
     ?id={id}&id={id}...
     ?genustypeid={id}&genustypeid={id}...
     ?keyword={XXXX}
     ?expectedParentObjectiveId={id}
     ?assessmentid={id}&assessmentid={id}...
     ?knowledgecategoryid={id}&knowledgecategoryid={id}...
     ?cognitiveprocessid={id}&cognitiveprocessid={id}...
     ?addedby={XXXX}&addedby={XXXX}...
     ?addedonstartdate={YYYY-MM-DD}
     ?addedonenddate={YYYY-MM-DD}
     ?updatedby={XXXX}&updatedby={XXXX}...
     ?updatedonstartdate={YYYY-MM-DD}
     ?updatedonenddate={YYYY-MM-DD}
     ?startat={999}
     ?maxvalues={999}
Parameters String objectiveBankId bank for which you wish to fetch the root objectives
ObjectiveQueryBean queryBean optional query parameters to filter the results
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the ids of the root objectives for this bank
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective bank id does not exist

Back to Operations

Method getBeginnerObjectiveNodes
Description Fetch the beginner objectives in this objective bank

OSID reference: ObjectiveRequisiteSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/beginners?descendentlevels={999}&proxyname={XXXX}
Additional query parameters (that can be mixed and matched):
     ?id={id}&id={id}...
     ?genustypeid={id}&genustypeid={id}...
     ?keyword={XXXX}
     ?expectedParentObjectiveId={id}
     ?assessmentid={id}&assessmentid={id}...
     ?knowledgecategoryid={id}&knowledgecategoryid={id}...
     ?cognitiveprocessid={id}&cognitiveprocessid={id}...
     ?addedby={XXXX}&addedby={XXXX}...
     ?addedonstartdate={YYYY-MM-DD}
     ?addedonenddate={YYYY-MM-DD}
     ?updatedby={XXXX}&updatedby={XXXX}...
     ?updatedonstartdate={YYYY-MM-DD}
     ?updatedonenddate={YYYY-MM-DD}
     ?startat={999}
     ?maxvalues={999}
Parameters String objectiveBankId bank for which you wish to fetch the root objectives
Integer descendentLevels number of levels down to fetch if not specified then 10 levels are fetched
ObjectiveQueryBean queryBean optional query parameters to filter the results
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveNodeBeanList the root objectives for this bank
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective bank id does not exist

Back to Operations

Method getObjectiveRequisiteIds
Description Fetch a particular objective's immediate requisite ids

By immediate we mean the requisite immediately precedes this objective in the chain of requisites. This method does NOT
search through the requisite dependency chain.

An objective's requisites are those objectives which are conceptually a student must master before attempting to become
proficient in this objective.

Requisite and dependent relationships are the same relationship just expressed from the opposite perspective. See href="#HandcarLearning-getObjectiveDependentIds">getObjectiveDependentIds

To maintain this list see updateObjectiveRequisiteIds

OSID reference: ObjectiveRequisiteSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/requisiteids?proxyname={XXXX}
Parameters String objectiveBankId bank that the objective is in
String objectiveId id of the objective you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the fetched objective's requisite ids information
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getObjectiveRequisites
Description Fetch a particular objective's requisites

Functionally equivalent to calling getObjectiveRequisiteIds
followed by getObjectivesByIds.

OSID reference: ObjectiveRequisiteSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/requisites?proxyname={XXXX}
Parameters String objectiveBankId bank that the objective is in
String objectiveId id of the objective you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBeanList the fetched objective's requisites
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getObjectiveDependentIds
Description Fetch a particular objective's immediate dependent ids

By immediate we mean the requisite immediately follows this objective in the chain of dependencies. This method does NOT
search through the requisite dependency chain.

An objective's dependents are those objectives which conceptually a student may attempt to master once she has become
become proficient in this objective.

Requisite and dependent relationships are the SAME RELATIONSHIP just expressed from the opposite perspective. See href="#HandcarLearning-getObjectiveRequisiteIds">getObjectiveRequisiteIds

To maintain this list see updateObjectiveDependentIds

OSID reference: ObjectiveRequisiteSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/dependentids?proxyname={XXXX}
Parameters String objectiveBankId bank that the objective is in
String objectiveId id of the objective you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the fetched objective's dependent ids information
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getObjectiveDependents
Description Fetch a particular objective's dependent objectives

Functionally equivalent to calling getObjectiveRequisiteIds
followed by getObjectivesByIds.

OSID reference: ObjectiveRequisiteSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/dependents?proxyname={XXXX}
Parameters String objectiveBankId bank that the objective is in
String objectiveId id of the objective you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBeanList the fetched objective's dependent ids information
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getObjectiveDependentNodes
Description Bulk operation to fetch nodes representing a particular objective's dependent children, grandchildren, great-grandchildren,
etc.

See also getObjectiveDependents

OSID reference: ObjectiveHierarchySession
Note: there is no corresponding bulk operation in the OSID for requisite dependents but it made sense to have this in
handcar.
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/dependents/bulk?descendentlevels={999}&proxyname={XXXX}
Parameters String objectiveBankId bank that the objective is in
String objectiveId id of the objective you want to fetch
Integer descendentLevels number of levels down to fetch if not specified then 10 levels are fetched
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveNodeBean a node holding the objective's dependent's and it's children down to the specified depth
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getObjectiveRequisiteNodes
Description Bulk operation to fetch nodes representing a particular objective's requisite children, grand-children, great-grandchildren,
etc.

WARNING: this method does not necessarily produce a fully fleshed out graph of all the relationships.
In particular it does not go beyond the depth of the specified ancestor levels/

See also getObjectiveRequisites

OSID reference: ObjectiveHierarchySession
Note: there is no corresponding bulk operation in the OSID for requisite requisites but it made sense to have this in
handcar.
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/requisites/bulk?descendentLevels={999}&proxyname={XXXX}
Parameters String objectiveBankId bank that the objective is in
String objectiveId id of the objective you want to fetch
Integer descendentLevels number of levels down to fetch if not specified then 10 levels are fetched
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveNodeBean a node holding the objective's requisite's and it's parents up to the specified depth
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getObjectiveEquivalentIds
Description Fetch a particular objective's equivalent ids

An objective's equivalents are those objectives that conceptually equivalent to this objective.

This relationship is commutative but NOT transitive.

So that if objective A is equivalent to objective B then objective B is equivalent to objective A. BUT if objective A is
equivalent to objective B and B is equivalent to objective C then is does not automatically follow that A is equivalent to
C.

To maintain this list see updateObjectiveEquivalentIds

OSID reference: ObjectiveRequisiteSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/equivalentids?proxyname={XXXX}
Parameters String objectiveBankId bank that the objective is in
String objectiveId id of the objective you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the fetched objective's equivalent ids information
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getObjectiveEquivalents
Description Fetch a particular objective's equivalent ids

Functionally equivalent to calling getObjectiveEquivalentIds
followed by getObjectivesByIds.

OSID reference: ObjectiveRequisiteSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/equivalents?proxyname={XXXX}
Parameters String objectiveBankId bank that the objective is in
String objectiveId id of the objective you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBeanList the fetched objective's equivalent ids information
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getRelatedObjectiveIdsForRelationType
Description Fetch the ids of a particular objective's related objectives for a particular relationship type

This returns types of relationships in addition to Parent/Child, Requisite/Dependent and equivalent.

This allows us to flexibly capture additional types of relationships not formally defined in the contract.

Some of the known relationship types include RELATED, CORRELATE and STRONGLY CORRELATE. See href="#HandcarLearning-getObjectiveRelationshipGenusTypes">getObjectiveRelationshipGenusTypes.

To maintain this list see href="#HandcarLearning-updateObjectiveRelationsIdsByType">updateObjectiveRelationsIdsByType.

Relationships cannot be assumed to be commutative nor transitive, it all depends on the type and the context.

Therefore if objective A is related by some type to objective B then objective B is not assumed to be necessarily related
in the same manner to objective A. Also just because objective A may be related to objective B and B is related in the same
way to objective C then is does not automatically follow that A has any relationship to C.

OSID reference: RelationshipLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/relatedobjectiveids/{relationshipTypeId}?proxyname={XXXX}
Parameters String objectiveBankId bank that the objective is in
String objectiveId id of the objective you want to fetch
String relationshipTypeId optional id of the type of the relationship
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the fetched objective's equivalent ids information
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getRelatedObjectivesForRelationType
Description Fetch a objectives that are related to a particular objective by a specified relationship type

Functionally equivalent to calling href="#HandcarLearning-getObjectiveRelationsIds">getRelatedObjectiveIdsByRelationType followed by href="#HandcarLearning-getObjectivesByIds">getObjectivesByIds.

OSID reference: RelationshipLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/relatedobjectives/{relationshipTypeId}?proxyname={XXXX}
Parameters String objectiveBankId bank that the objective is in
String objectiveId id of the objective you want to fetch
String relationshipTypeId optional id of the type of the relationship
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBeanList the fetched objective's equivalent ids information
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getObjectiveActivityIds
Description Fetch the ids of the activities associated with an objective

NOTE: this just gets the ids of the activities, to get the actual activities, see href="#HandcarLearning-getObjectiveActivities">getObjectiveActivities

OSID reference: ActivityLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/activityids?proxyname={XXXX}
Parameters String objectiveBankId bank that the objective is in
String objectiveId id of the objective you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the ids of the objective's activities
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getObjectiveActivities
Description Fetches the activities associated with an objective

Functionally equivalent to calling getObjectiveActivityIds followed
by getActivities.

OSID reference: ActivityLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/activities?proxyname={XXXX}
Parameters String objectiveBankId objective bank within which the objective and activities are to be fetched
String objectiveId used to select activities
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ActivityBeanList list of activities what are associated with that objective, empty list if none
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank or objective do not exist

Back to Operations

Method getActivityNgramsInBank
Description Fetch all the activity NGRAMS in a bank, optionally selecting just the ones with the specified genus types

If the list of genus types is empty then all activities are returned.

OSID reference: ActivityLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/activities/ngrams?federateUsingObjectiveBankHierarchyId={id}&proxyname={XXXX}
Additional query parameters (that can be mixed and matched):
     ?id={id}&id={id}...
     ?genustypeid={id}&genustypeid={id}...
     ?keyword={XXXX}
     ?assetid={id}&assetid={id}...
     ?assessmentid={id}&assessmentid={id}...
     ?objectiveid={id}&objectiveid={id}...
     ?courseid={id}&courseid={id}...
     ?addedby={XXXX}&addedby={XXXX}...
     ?addedonstartdate={YYYY-MM-DD}
     ?addedonenddate={YYYY-MM-DD}
     ?updatedby={XXXX}&updatedby={XXXX}...
     ?updatedonstartdate={YYYY-MM-DD}
     ?updatedonenddate={YYYY-MM-DD}
     ?startat={999}
     ?maxvalues={999}
Parameters String objectiveBankId id of the objective bank from which you want the activities
String federateUsingObjectiveBankHierarchyId optional hierarchy to use to find objectives in any child banks of the
specified bank
ActivityQueryBean queryBean optional query to filter results
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return NgramBeanList list of activities, empty list if none
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank id is bad

Back to Operations

Method getActivitiesInBank
Description Queries all the activities in a bank

If the list of genus types is empty then all activities are returned.

OSID reference: ActivityLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/activities?federateUsingObjectiveBankHierarchyId={id}&proxyname={XXXX}
Additional query parameters (that can be mixed and matched):
     ?id={id}&id={id}...
     ?genustypeid={id}&genustypeid={id}...
     ?keyword={XXXX}
     ?assetid={id}&assetid={id}...
     ?assessmentid={id}&assessmentid={id}...
     ?objectiveid={id}&objectiveid={id}...
     ?courseid={id}&courseid={id}...
     ?addedby={XXXX}&addedby={XXXX}...
     ?addedonstartdate={YYYY-MM-DD}
     ?addedonenddate={YYYY-MM-DD}
     ?updatedby={XXXX}&updatedby={XXXX}...
     ?updatedonstartdate={YYYY-MM-DD}
     ?updatedonenddate={YYYY-MM-DD}
     ?startat={999}
     ?maxvalues={999}
Parameters String objectiveBankId id of the objective bank from which you want the activities
String federateUsingObjectiveBankHierarchyId optional hierarchy to use to find objectives in any child banks of the
specified bank
ActivityQueryBean queryBean optional query bean to filter the results
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ActivityBeanList list of activities, empty list if none
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank id is bad

Back to Operations

Method getActivityInBankById
Description Fetch a particular activity in a bank

OSID reference: ActivityLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/activities/{activityId}?proxyname={XXXX}
Parameters String objectiveBankId id of the objective bank from which you want the activity
String activityId id of the activity you want
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ActivityBean the fetched activity
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the activity is not in the bank

Back to Operations

Method getActivityById
Description Fetch a particular activity without specifying the bank

OSID reference: ActivityLookupSession
REST Signature
GET handcar/services/learning/activities/{activityId}?proxyname={XXXX}
Parameters String activityId id of the activity you want
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ActivityBean the fetched activity
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the activity is not in the bank

Back to Operations

Method getActivitiesByIds
Description Bulk fetch a bunch of activities in a bank

OSID reference: ActivityLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/activities/bulk?id={id}&id={id}...&proxyname={XXXX}
Parameters String objectiveBankId id of the objective bank from which you want the activity
StringList activityIds list of ids of the activities you want
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ActivityBeanList the list of fetched activities
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the activity is not in the bank

Back to Operations

Method getActivityExtensionRecord
Description Fetch a particular activity's EXTENSION record

An EXTENSION record is basically a set of key value pairs holding additional data not explicitly defined in the object. It
is a way to extend the object without breaking the contract. See ExtensionRecordBean
for more details.

OSID reference: Activity.getActivityRecord
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/activities/{activityId}/extension?recordtypeid={id}&recordtypeid={id}...&proxyname={XXXX}
Parameters String objectiveBankId bank that the activity is in
String activityId id of the activity's extention you want to fetch
StringList optionalRecordTypeIds optional list of the record types to include, if not specified all record types are included
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ExtensionRecordBean the fetched activity's extension record
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the activity id is not in the bank

Back to Operations

Method updateActivityExtensionRecord
Description Fetch a particular activity's EXTENSION record

An EXTENSION record is basically a set of key value pairs holding additional data not explicitly defined in the object. It
is a way to extend the object without breaking the contract. See ExtensionRecordBean
for more details.

OSID reference: Activity.getActivityRecord
REST Signature
PUT {extensionRecord} to  handcar/services/learning/objectivebanks/{objectiveBankId}/activities/{activityId}/extension?proxyname={XXXX}
{
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
}
Parameters String objectiveBankId bank that the activity is in
String activityId id of the activity's extention you want to update
ExtensionRecordBean extensionRecord ???
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ExtensionRecordBean the updated activity's extension record
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the activity id is not in the bank

Back to Operations

Method getActivityAssetIds
Description Fetch the ids of the assets associated with an activity

NOTE: this method was added so the contract methods would be consistent. I.e. every getXXX has a getXXXids. But... this
just gets the same ids as the list of assetIds that are already inside the activity bean, see href="#ActivityBean">ActivityBean.assetIds. This method is just an alternative to that method.

OSID reference: ActivityLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/activities/{activityId}/assetids?proxyname={XXXX}
Parameters String objectiveBankId bank that the activity is in
String activityId id of the activity who's asset ids you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the ids of the activity's assets
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getActivityAssets
Description Fetches the assets associated with an activity

Functionally equivalent to calling getActivityAssetIds followed by href="#HandcarLearning-getAssets">getAssets.

OSID reference: ActivityLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/activities/{activityId}/assets?proxyname={XXXX}
Parameters String objectiveBankId objective bank within which the objective and activities are to be fetched
String activityId used to select assets
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return AssetBeanList list of assets what are associated with that activity, empty list if none
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank or objective do not exist

Back to Operations

Method getAssetNgramsInBank
Description Fetch all the NGRAMS of assets in the repository associated with the bank

OSID reference: AssetLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/assets/ngrams?federateUsingObjectiveBankHierarchyId={id}&proxyname={XXXX}
Additional query parameters (that can be mixed and matched):
     ?id={id}&id={id}...
     ?genustypeid={id}&genustypeid={id}...
     ?keyword={XXXX}
     ?addedby={XXXX}&addedby={XXXX}...
     ?addedonstartdate={YYYY-MM-DD}
     ?addedonenddate={YYYY-MM-DD}
     ?updatedby={XXXX}&updatedby={XXXX}...
     ?updatedonstartdate={YYYY-MM-DD}
     ?updatedonenddate={YYYY-MM-DD}
     ?startat={999}
     ?maxvalues={999}
Parameters String objectiveBankId id of the objective bank from which you want the assets
String federateUsingObjectiveBankHierarchyId optional hierarchy to use to find objectives in any child banks of the
specified bank
AssetQueryBean queryBean optional query to filter the results
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return NgramBeanList list of assets, empty list if none
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank id is bad

Back to Operations

Method getAssetsInBank
Description Fetch all the assets in the repository associated with the bank

OSID reference: AssetLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/assets?federateUsingObjectiveBankHierarchyId={id}&proxyname={XXXX}
Additional query parameters (that can be mixed and matched):
     ?id={id}&id={id}...
     ?genustypeid={id}&genustypeid={id}...
     ?keyword={XXXX}
     ?addedby={XXXX}&addedby={XXXX}...
     ?addedonstartdate={YYYY-MM-DD}
     ?addedonenddate={YYYY-MM-DD}
     ?updatedby={XXXX}&updatedby={XXXX}...
     ?updatedonstartdate={YYYY-MM-DD}
     ?updatedonenddate={YYYY-MM-DD}
     ?startat={999}
     ?maxvalues={999}
Parameters String objectiveBankId id of the objective bank from which you want the assets
String federateUsingObjectiveBankHierarchyId optional hierarchy to use to find objectives in any child banks of the
specified bank
AssetQueryBean queryBean used to filter the results
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return AssetBeanList list of assets, empty list if none
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank id is bad

Back to Operations

Method getAssetInBankById
Description Fetch a particular asset from a bank

OSID reference: AssetLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/assets/{assetId}?proxyname={XXXX}
Parameters String objectiveBankId bank that the asset is in
String assetId id of the asset you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return AssetBean the fetched asset
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getAssetById
Description Fetch a particular asset without specifying a bank

OSID reference: AssetLookupSession
REST Signature
GET handcar/services/learning/assets/{assetId}?proxyname={XXXX}
Parameters String assetId id of the asset you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return AssetBean the fetched asset
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getAssetsByIds
Description Bulk fetch a bunch of assets from a bank

OSID reference: AssetLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/assets/bulk?id={id}&id={id}...&proxyname={XXXX}
Parameters String objectiveBankId bank that the asset is in
StringList assetIds list of ids of the assets you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return AssetBeanList the fetched assets
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getAssetBranding
Description Fetch a particular objective asset's branding information

OSID reference: Sourceable
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/assets/{assetId}/branding?proxyname={XXXX}
Implementation Notes not implemented yet
Parameters String objectiveBankId id of bank with which the asset is associated
String assetId id of asset who's branding information is to be fetched
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return BrandingBean the fetched asset's branding information
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective bank id is not valid or asset id is not in bank

Back to Operations

Method getAssetExtensionRecord
Description Fetch a particular asset's EXTENSION record

An EXTENSION record is basically a set of key value pairs holding additional data not explicitly defined in the object. It
is a way to extend the object without breaking the contract. See ExtensionRecordBean
for more details.

OSID reference: Asset.getAssetRecord
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/assets/{assetId}/extension?recordtypeid={id}&recordtypeid={id}...&proxyname={XXXX}
Parameters String objectiveBankId bank that the asset is in
String assetId id of the asset extention you want to fetch
StringList optionalRecordTypeIds optional list of the record types to include, if not specified all record types are included
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ExtensionRecordBean the fetched asset's extension record
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the asset id is not in the bank

Back to Operations

Method updateAssetExtensionRecord
Description Update a particular asset's EXTENSION record

An EXTENSION record is basically a set of key value pairs holding additional data not explicitly defined in the object. It
is a way to extend the object without breaking the contract. See ExtensionRecordBean
for more details.

OSID reference: Asset.getAssetRecord
REST Signature
PUT {extensionRecord} to  handcar/services/learning/objectivebanks/{objectiveBankId}/assets/{assetId}/extension?proxyname={XXXX}
{
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
}
Parameters String objectiveBankId bank that the asset is in
String assetId id of the asset extention you want to update
ExtensionRecordBean extensionRecord ???
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ExtensionRecordBean the updated asset's new extension record
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the asset id is not in the bank

Back to Operations

Method getAssetContentExtensionRecord
Description Fetch a particular asset content's EXTENSION record

An EXTENSION record is basically a set of key value pairs holding additional data not explicitly defined in the object. It
is a way to extend the object without breaking the contract. See ExtensionRecordBean
for more details.

OSID reference: AssetContent.getAssetContentRecord
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/assets/{assetId}/assetcontents/{assetContentId}/extension?recordtypeid={id}&recordtypeid={id}...&proxyname={XXXX}
Parameters String objectiveBankId bank that the asset is in
String assetId id of the asset that owns the content who's extention you want to fetch
String assetContentId id of the asset content's extention you want to fetch
StringList optionalRecordTypeIds optional list of the record types to include, if not specified all record types are included
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ExtensionRecordBean the fetched asset content's extension record
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the asset id is not in the bank or the content id is not in the asset

Back to Operations

Method updateAssetContentExtensionRecord
Description Update a particular asset content's EXTENSION record

An EXTENSION record is basically a set of key value pairs holding additional data not explicitly defined in the object. It
is a way to extend the object without breaking the contract. See ExtensionRecordBean
for more details.

OSID reference: AssetContent.getAssetContentRecord
REST Signature
PUT {extensionRecord} to  handcar/services/learning/objectivebanks/{objectiveBankId}/assets/{assetId}/assetcontents/{assetContentId}/extension?proxyname={XXXX}
{
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
}
Parameters String objectiveBankId bank that the asset is in
String assetId id of the asset that owns the content who's extention you want to update
String assetContentId id of the asset content's extention you want to fetch
ExtensionRecordBean extensionRecord ???
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ExtensionRecordBean the updated asset content's new extension record
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the asset id is not in the bank or the content id is not in the asset

Back to Operations

Method getKnowledgeCategoryGradeSystemForBank
Description Fetch the Grade System configured for this objective bank's knowledge categories

A knowledge category type is a way of grouping and putting on a scale an objective and is used to provide the legal values
that can be assigned to
ObjectiveBean.knowledgeCategoryId

This is configured when the objective bank is created and initially will default to Bloom's revised taxonomy for knowledge
categories.

See:
IOWA State's RevisedBloomsHandout.pdf
South Africa School Appendix_B.pdf
CMU
Knowlege-CogProcDimension.pdf


OSID reference: GradeSystem
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/gradesystems/knowledgecategory?proxyname={XXXX}
Parameters String objectiveBankId id of bank with which the knowledge category grade system is associated
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return GradeSystemBean grade system configured for this objective bank's knowledge categories
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getCognitiveProcessGradeSystemForBank
Description Fetch the Grade System configured for this objective bank's cognitive process ranking

A cognitive process grade system is a way of grouping and putting on a scale an objective and is used to provide the legal
values that can be assigned to
ObjectiveBean.knowledgeCategoryId

This is configured when the objective bank is created and initially will default to Bloom's revised taxonomy for cognitive
processes.

See:
IOWA State's RevisedBloomsHandout.pdf
South Africa School Appendix_B.pdf
CMU
Knowlege-CogProcDimension.pdf


OSID reference: GradeSystem
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/gradesystems/cognitiveprocess?proxyname={XXXX}
Parameters String objectiveBankId id of bank with which the cognitive process grade system is associated
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return GradeSystemBean grade system configured for this objective bank's knowledge categories
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getGradesInBank
Description Fetch all the grades for either a Knowledge Category or Cognitive Process Grade System in the bank.

This is configured when the objective bank is created and initially will default to Bloom's revised taxonony for cognitive
processes.

See:
Wikipedia Bloom's Taxonomy

OSID reference: GradeSystem
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/grades?proxyname={XXXX}
Parameters String objectiveBankId that the grades are configured into
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return GradeBeanList grades configured for this objective bank
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getGradeById
Description Fetch the detailed grade information for a grade in a Knowledge Category or Cognitive Process Grade System for this bank

A cognitive process grade or a knowledge category grade defines the meaning of that id and explains with a name and
description the legal values that can be assigned to
ObjectiveBean.knowledgeCategoryId
ObjectiveBean.cognitiveProcessId

This is configured when the objective bank is created and initially will default to Bloom's revised taxonony for cognitive
processes.

See:
Wikipedia Bloom's Taxonomy

OSID reference: GradeSystem
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/grades/{gradeId}?proxyname={XXXX}
Parameters String objectiveBankId id of bank inwhich the grade is configured
String gradeId id of grade to be fetched
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return GradeBean gradeId grade matching the id
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the grade id is not in the bank

Back to Operations

Method getObjectiveBankGenusTypes
Description Gets the list of supported objective bank genus types.

These types serve to categorize or group banks for further processing.

Right now we just have PROJECT based banks but later we may add banks specific to accreditation or course based.

OSID reference: ObjectiveBank.genusType
REST Signature
GET handcar/services/learning/objectivebanks/types/genus?proxyname={XXXX}
Parameters String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return TypeBeanList list of genus types that can be applied to an objective bank
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user

Back to Operations

Method getTypes
Description Gets the list of all supported types regardless of bank.

This can be any kind of type, genus, format, script, language, etc

OSID reference: ObjectiveBank.genusType
REST Signature
GET handcar/services/learning/types?proxyname={XXXX}
Parameters String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return TypeBeanList list of all supported types
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user

Back to Operations

Method getTypeById
Description Get a particular type by id regardless of the bank

This can be any kind of type, genus, format, script, language, etc

OSID reference: ObjectiveBank.genusType
REST Signature
GET handcar/services/learning/types/{typeId}?proxyname={XXXX}
Parameters String typeId id of the type you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return TypeBean type that can be applied to an objective bank
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the type id does not exist

Back to Operations

Method getObjectiveGenusTypes
Description Gets the list of objective genus types.

These types serve to categorize or group objectives for further processing.

There are two supported objective genus types, TOPIC and OUTCOME.

OSID reference: Objective.genusType
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/types/genus/objective?proxyname={XXXX}
Parameters String objectiveBankId id of the objective bank for which these types are configured
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return TypeBeanList list of relationship types that can be used to relate objectives
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank id does not exist

Back to Operations

Method getAllowedChildObjectiveGenusTypes
Description Gets the list of objective genus types that are allowed as children of the specified objective.

OSID reference: Objective.genusType
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/types/genus/objective/{objectiveId}/allowed/child?proxyname={XXXX}
Parameters String objectiveBankId id of the objective bank for which these types are configured
String objectiveId id of the parent objective for which children are being created
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return TypeBeanList list of relationship types that can be used to relate objectives
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank id does not exist

Back to Operations

Method getObjectiveRelationshipGenusTypes
Description Gets the list of relationship genus types that link together objectives.

Such types can be used to relate two objectives.

The only objective relationship type that is currently configured simply indicates that the two objectives are somehow
RELATED without any further specification as to how or why.

OSID reference: Relationship.genusType
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/types/genus/relationship?proxyname={XXXX}
Parameters String objectiveBankId id of the objective bank for which these types are configured
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return TypeBeanList list of relationship types that can be used to relate objectives
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank id does not exist

Back to Operations

Method getActivityGenusTypes
Description Gets the list of genus types for activities for this bank.

Activity genus types describe the type of activity, the supported general types indicate if it is: ASSET BASED, COURSE
BASED or ASSESSMENT BASED.

ASSET BASED means the student must consume some sort of asset to do the activity. COURSE BASED means the student must take
a course offered by some school as the activity. ASSESSMENT BASED means the student must take an assessment as the
activity.

Other types could include things like PROJECT BASED, LAB BASED, etc...

types returned by getDisplayTextFormatTypes to include types for
images, songs, and movies.

OSID reference: Activity.genusType
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/types/genus/activity?proxyname={XXXX}
Parameters String objectiveBankId id of the objective bank for which these types are configured
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return TypeBeanList list of activity genus types
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank id does not exist

Back to Operations

Method getAssetGenusTypes
Description Gets the list of asset types for this bank.

Asset genus types do not talk about the format but rather describe the overall characteristic. Right now we just have
WEB-RESOURCE but other types could be BOOK, NOTES, SYLABUS, LECTURE or a GAME.

OSID reference: AssetContent.genusType
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/types/genus/assets?proxyname={XXXX}
Parameters String objectiveBankId id of the objective bank for which these types are configured
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return TypeBeanList list of asset types that can be used to categorize asset
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank id does not exist

Back to Operations

Method getAssetContentGenusTypes
Description Gets the list of genus types -- mime types -- for asset contents for this bank.

AssetContent genus types are basically to mime types. They extend
types returned by getDisplayTextFormatTypes to include types for
images, songs, and movies.

OSID reference: AssetContent.genusType
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/types/genus/assetcontents?proxyname={XXXX}
Parameters String objectiveBankId id of the objective bank for which these types are configured
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return TypeBeanList list of asset content types that can be used to categorize asset contents
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank id does not exist

Back to Operations

Method getAssetContentAccessibilityTypes
Description Gets the list of accessibility types for asset contents for this bank

See AssetContentBean.accessibilityTypes

OSID reference: AssetContent.accessibilityTypes
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/types/accessibility?proxyname={XXXX}
Parameters String objectiveBankId id of the objective bank for which these types are configured
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return TypeBeanList list of asset content types that can be used to categorize asset contents
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank id does not exist

Back to Operations

Method getDisplayTextLanguageTypes
Description Gets the list of display text language types

See DisplayTextBean
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/types/languages?proxyname={XXXX}
Parameters String objectiveBankId id of the objective bank for which these types are configured
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return TypeBeanList list of language types
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank id does not exist

Back to Operations

Method getDefaultDisplayTextLanguageTypes
Description Gets the default display text language type

See DisplayTextBean
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/types/languages/default?proxyname={XXXX}
Parameters String objectiveBankId id of the objective bank for which these types are configured
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return TypeBean default language type
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank id does not exist

Back to Operations

Method getDisplayTextScriptTypes
Description Gets the list of Display Text script types.

See DisplayTextBean
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/types/scripts?proxyname={XXXX}
Parameters String objectiveBankId id of the objective bank for which these types are configured
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return TypeBeanList list of script types
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank id does not exist

Back to Operations

Method getDefaultDisplayTextScriptTypes
Description Gets the default of Display Text script type.

See DisplayTextBean
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/types/scripts/default?proxyname={XXXX}
Parameters String objectiveBankId id of the objective bank for which these types are configured
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return TypeBean default script type
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank id does not exist

Back to Operations

Method getDisplayTextFormatTypes
Description Gets the list of display text format types.

See DisplayTextBean
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/types/formats?proxyname={XXXX}
Parameters String objectiveBankId id of the objective bank for which these types are configured
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return TypeBeanList list of format types
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank id does not exist

Back to Operations

Method getDefaultDisplayTextFormatTypes
Description Gets the default display text format type

See DisplayTextBean
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/types/formats/default?proxyname={XXXX}
Parameters String objectiveBankId id of the objective bank for which these types are configured
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return TypeBean default format types
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank id does not exist

Back to Operations

Method createObjectiveBank
Description Creates an objective bank

Note: for certain objective bank genus types there can only be one bank with that type. If you try to create another one
the pre-existing one is returned instead.

If you supply an ID it will be replaced by an ID assigned by the service and the Id you supplied will be added as an alias.

OSID reference: ObjectiveBankAdminSession
REST Signature
POST {objectiveBank} to  handcar/services/learning/objectivebanks?proxyname={XXXX}
{
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
}
Parameters ObjectiveBankBean objectiveBank to be created
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBankBean the newly created objective bank
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException ???
HandcarInvalidArgumentException HTTP 422 if the data is invalid

Back to Operations

Method updateObjectiveBank
Description Updates an objective bank

OSID reference: ObjectiveBankAdminSession
REST Signature
PUT {objectiveBank} to  handcar/services/learning/objectivebanks?proxyname={XXXX}
{
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
}
Parameters ObjectiveBankBean objectiveBank to be updated
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBankBean the newly updated objective bank
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank or objective does not exist
HandcarInvalidArgumentException HTTP 422 if the data is invalid

Back to Operations

Method deleteObjectiveBank
Description Delete an Objective Bank

OSID reference: ObjectiveBankAdminSession
REST Signature
DELETE handcar/services/learning/objectivebanks/{objectiveBankId}?proxyname={XXXX}
Parameters String objectiveBankId id of bank to be deleted
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBankBean the objective bank as it was before it was deleted
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective is not in the bank

Back to Operations

Method createObjectiveInBank
Description Creates an objective in an objective in a bank

If you supply an ID it will be replaced by an ID assigned by the service and the Id you supplied will be added as an alias.

OSID reference: ObjectiveAdminSession
REST Signature
POST {objective} to  handcar/services/learning/objectivebanks/{objectiveBankId}/objectives?parentObjectiveId={id}&proxyname={XXXX}
{
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"objectiveBankId" : "id",
"assessmentId" : "id",
"knowledgeCategoryId" : "id",
"cognitiveProcessId" : "id",
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
}
Parameters String objectiveBankId within which the objective is to be created
String parentObjectiveId Convenience operation, if specified adds the newly created objective as a final child of this objective
ObjectiveBean objective to be created
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBean the newly created objective
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank or objective does not exist
HandcarInvalidArgumentException HTTP 422 if the data is invalid

Back to Operations

Method updateObjectiveInBank
Description Updates an objective

The objective Id read-only and cannot be changed and changes will be silently ignored.

OSID reference: ObjectiveAdminSession
REST Signature
PUT {objective} to  handcar/services/learning/objectivebanks/{objectiveBankId}/objectives?proxyname={XXXX}
{
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"objectiveBankId" : "id",
"assessmentId" : "id",
"knowledgeCategoryId" : "id",
"cognitiveProcessId" : "id",
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
}
Parameters String objectiveBankId within which the objective is to be updated
ObjectiveBean objective to be updated
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBean the newly updated objective
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank or objective does not exist
HandcarInvalidArgumentException HTTP 422 if the data is invalid

Back to Operations

Method deleteObjectiveInBank
Description Delete an Objective

OSID reference: ObjectiveAdminSession
REST Signature
DELETE handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}?cascade={true}&proxyname={XXXX}
Parameters String objectiveBankId within which the objective exists
String objectiveId id of the objective to be deleted
Boolean cascade indicates that the delete should cascade and delete any attached activities as well
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBean the objective as it was before it was deleted
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective is not in the bank

Back to Operations

Method updateObjectiveParentIds
Description Updates an objective's parents by specifying their ids

Functionally equivalent to processing each of the specified ids and updating it's children to include this objective.

Makes the supplied list of ids the parents of this objective.

Note: Using this method as opposed to the update children method does not preserve the ordering. Parents can only order
their children but children cannot specify an ordering on their parents.

OSID reference: ObjectiveHierarchyDesignSession
REST Signature
PUT {ids} to  handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/parentids?proxyname={XXXX}
{
"ids" : ["id", ...]
}
Parameters String objectiveBankId within which the objective is to be updated
String objectiveId to be updated
IdsBean ids bean holding an ordered list of ids to be used in this update
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the newly updated list of ids
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank or objective or any of the ids do not exist

Back to Operations

Method updateObjectiveChildIds
Description Updates an objective's children by specifying their ids

Makes the supplied list of ids the children of this objective.

Note: the ordering of the list will be preserved when fetched, see href="#HandcarLearning-getObjectiveChildIds">getObjectiveChildIds

OSID reference: ObjectiveHierarchyDesignSession
REST Signature
PUT {ids} to  handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/childids?proxyname={XXXX}
{
"ids" : ["id", ...]
}
Parameters String objectiveBankId within which the objective is to be updated
String objectiveId to be updated
IdsBean ids bean holding an ordered list of ids to be used in this update
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the newly updated list of ids
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank or objective or any of the ids do not exist

Back to Operations

Method updateObjectiveRequisiteIds
Description Updates an objective's requisites by specifying their ids

Makes the supplied list of ids the requisites of this objective.

Note: the ordering of the list will be preserved when fetched, see href="#HandcarLearning-getObjectiveRequisiteIds">getObjectiveRequisiteIds

OSID reference: ObjectiveRequisiteAssignmentSession
REST Signature
PUT {ids} to  handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/requisiteids?proxyname={XXXX}
{
"ids" : ["id", ...]
}
Parameters String objectiveBankId within which the objective is to be updated
String objectiveId to be updated
IdsBean ids bean holding an ordered list of ids to be used in this update
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the newly updated list of ids
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank or objective or any of the ids do not exist

Back to Operations

Method updateObjectiveDependentIds
Description Updates an objective's dependents by specifying their ids

Functionally equivalent to processing each of the specified ids and updating it's requisites to include this objective.

Makes the supplied list of ids the dependents of this objective.

Note: the ordering of the list will be preserved when fetched, see href="#HandcarLearning-getObjectiveDependentIds">getObjectiveDependentIds

OSID reference: ObjectiveRequisiteAssignmentSession
REST Signature
PUT {ids} to  handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/dependentids?proxyname={XXXX}
{
"ids" : ["id", ...]
}
Parameters String objectiveBankId within which the objective is to be updated
String objectiveId to be updated
IdsBean ids bean holding an ordered list of ids to be used in this update
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the newly updated list of ids
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank or objective or any of the ids do not exist

Back to Operations

Method updateObjectiveEquivalentIds
Description Updates an objective's equivalencies by specifying their ids

Makes the supplied list of ids the equivalent to this objective.

Note: the ordering of the list will be preserved when fetched, see href="#HandcarLearning-getObjectiveEquivalentIds">getObjectiveEquivalentIds

OSID reference: ObjectiveRequisiteAssignmentSession
REST Signature
PUT {ids} to  handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/equivalentids?proxyname={XXXX}
{
"ids" : ["id", ...]
}
Parameters String objectiveBankId within which the objective is to be updated
String objectiveId to be updated
IdsBean ids bean holding an ordered list of ids to be used in this update
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the newly updated list of ids
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank or objective or any of the ids do not exist

Back to Operations

Method updateRelatedObjectiveIdsForRelationType
Description Updates an objective's related objective ids by type

Makes the supplied list of objective ids related via the specified type to this objective.

Note: the ordering of the list will be preserved when fetched, see href="#HandcarLearning-getObjectiveRelationsIds">getObjectiveRelationsIds

OSID reference: RelationshipAdminSession
REST Signature
PUT {ids} to  handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/relatedobjectiveids/{relationshipTypeId}?proxyname={XXXX}
{
"ids" : ["id", ...]
}
Parameters String objectiveBankId within which the objective is to be updated
String objectiveId to be updated
String relationshipTypeId id indicating the type of relationship
IdsBean ids bean holding an ordered list of ids to be used in this update
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the newly updated list of ids
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank or objective or any of the ids do not exist

Back to Operations

Method createActivityInBank
Description Creates an activity associated with an objective in a bank

If you supply an ID it will be replaced by an ID assigned by the service and the Id you supplied will be added as an alias.

OSID reference: ActivityAdminSession
REST Signature
POST {activity} to  handcar/services/learning/objectivebanks/{objectiveBankId}/activities?proxyname={XXXX}
{
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"objectiveId" : "id",
"assetIds" : ["id", ...],
"courseIds" : ["id", ...],
"assessmentIds" : ["id", ...],
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
}
Parameters String objectiveBankId within which the activity is to be created
ActivityBean activity to be created
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ActivityBean the newly created activity
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank or activity does not exist
HandcarInvalidArgumentException HTTP 422 if the data is invalid

Back to Operations

Method createAssetBasedActivityInBank
Description Convenience method to creates both an activity and it's corresponding asset at the same time.

If you supply an ID it will be replaced by an ID assigned by the service and the Id you supplied will be added as an alias.

Functionally equivalent to calling createAsset and

Functionally equivalent to calling createAsset followed by href="#HandcarLearning-createActivity">createActivity.

OSID reference: ActivityAdminSession
REST Signature
POST {assetBasedActivity} to  handcar/services/learning/objectivebanks/{objectiveBankId}/activities/assetbased?proxyname={XXXX}
{
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"assets" : [ {
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"providerId" : "id",
"brandingIds" : ["id", ...],
"license" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"title" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"publicDomain" : true,
"copyright" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"copyrightRegistration" : "XXXX",
"canDistributeVerbatim" : true,
"canDistributeAlterations" : true,
"canDistributeCompositions" : true,
"sourceId" : "id",
"providerLinkIds" : ["id", ...],
"createdDate" : "YYYY-MM-DD",
"published" : true,
"publishedDate" : "YYYY-MM-DD",
"principalCreditString" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"assetContents" : [ {
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"assetId" : "id",
"accessiblityTypeIds" : ["id", ...],
"dataLength" : 999,
"url" : "XXXX",
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
},
...],
"compositionId" : "id",
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
},
...],
"objectiveId" : "id",
"assetIds" : ["id", ...],
"courseIds" : ["id", ...],
"assessmentIds" : ["id", ...],
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
}
Parameters String objectiveBankId within which the activity is to be created
AssetBasedActivityBean assetBasedActivity based to be created
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ActivityBean the newly created activity
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank or activity does not exist
HandcarInvalidArgumentException HTTP 422 if the data is invalid

Back to Operations

Method updateActivityInBank
Description Updates an activity

The objective Id read-only and cannot be changed and changes will be silently ignored.

OSID reference: ActivityAdminSession
REST Signature
PUT {activity} to  handcar/services/learning/objectivebanks/{objectiveBankId}/activities?proxyname={XXXX}
{
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"objectiveId" : "id",
"assetIds" : ["id", ...],
"courseIds" : ["id", ...],
"assessmentIds" : ["id", ...],
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
}
Parameters String objectiveBankId within which the activity is to be updated
ActivityBean activity to be updated
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ActivityBean the newly updated activity
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank or activity does not exist
HandcarInvalidArgumentException HTTP 422 if the data is invalid

Back to Operations

Method deleteActivityInBank
Description Delete an Activity

OSID reference: ActivityAdminSession
REST Signature
DELETE handcar/services/learning/objectivebanks/{objectiveBankId}/activities/{activityId}?proxyname={XXXX}
Parameters String objectiveBankId within which the activity exists
String activityId id of the activity to be deleted
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ActivityBean the activity as it was before it was deleted
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the activity is not in the bank

Back to Operations

Method createAssetInBank
Description Creates an asset associated with a bank

If you supply an ID it will be replaced by an ID assigned by the service and the Id you supplied will be added as an alias.

OSID reference: AssetAdminSession
REST Signature
POST {asset} to  handcar/services/learning/objectivebanks/{objectiveBankId}/assets?proxyname={XXXX}
{
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"providerId" : "id",
"brandingIds" : ["id", ...],
"license" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"title" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"publicDomain" : true,
"copyright" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"copyrightRegistration" : "XXXX",
"canDistributeVerbatim" : true,
"canDistributeAlterations" : true,
"canDistributeCompositions" : true,
"sourceId" : "id",
"providerLinkIds" : ["id", ...],
"createdDate" : "YYYY-MM-DD",
"published" : true,
"publishedDate" : "YYYY-MM-DD",
"principalCreditString" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"assetContents" : [ {
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"assetId" : "id",
"accessiblityTypeIds" : ["id", ...],
"dataLength" : 999,
"url" : "XXXX",
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
},
...],
"compositionId" : "id",
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
}
Parameters String objectiveBankId within which the asset is to be created
AssetBean asset to be created
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return AssetBean the newly created asset
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank or asset does not exist
HandcarInvalidArgumentException HTTP 422 if the data is invalid

Back to Operations

Method updateAssetInBank
Description Updates an asset

The asset Id read-only and cannot be changed and changes will be silently ignored.

OSID reference: AssetAdminSession
REST Signature
PUT {asset} to  handcar/services/learning/objectivebanks/{objectiveBankId}/assets?proxyname={XXXX}
{
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"providerId" : "id",
"brandingIds" : ["id", ...],
"license" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"title" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"publicDomain" : true,
"copyright" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"copyrightRegistration" : "XXXX",
"canDistributeVerbatim" : true,
"canDistributeAlterations" : true,
"canDistributeCompositions" : true,
"sourceId" : "id",
"providerLinkIds" : ["id", ...],
"createdDate" : "YYYY-MM-DD",
"published" : true,
"publishedDate" : "YYYY-MM-DD",
"principalCreditString" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"assetContents" : [ {
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"assetId" : "id",
"accessiblityTypeIds" : ["id", ...],
"dataLength" : 999,
"url" : "XXXX",
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
},
...],
"compositionId" : "id",
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
}
Parameters String objectiveBankId within which the asset exists
AssetBean asset to be updated
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return AssetBean the newly updated asset
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank or asset does not exist
HandcarInvalidArgumentException HTTP 422 if the data is invalid

Back to Operations

Method deleteAssetInBank
Description Delete an Asset

OSID reference: AssetAdminSession
REST Signature
DELETE handcar/services/learning/objectivebanks/{objectiveBankId}/assets/{assetId}?proxyname={XXXX}
Parameters String objectiveBankId within which the asset exists
String assetId id of the asset to be deleted
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return AssetBean the asset as it was before it was deleted
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the asset is not in the bank

Back to Operations

Method getObjectiveBankHierarchiesOptionallyByGenusType
Description Get a list of all objective bank hierarchies

OSID reference: ObjectiveBankHierarchySession
REST Signature
GET handcar/services/learning/objectivebankhierarchies?genusTypeIds={id}&genusTypeIds={id}...&proxyname={XXXX}
Parameters StringList genusTypeIds optional list of genus types on which to query
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return HierarchyBeanList list of all objective bank hierarchies
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user

Back to Operations

Method createObjectiveBankHierarchy
Description Creates an objective bank hierarchy

If you supply an ID it will be replaced by an ID assigned by the service and the Id you supplied will be added as an alias.

OSID reference: HierarchyAdminSession
REST Signature
POST {objectiveBankHierarchy} to  handcar/services/learning/objectivebankhierarchies?proxyname={XXXX}
{
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
}
Parameters HierarchyBean objectiveBankHierarchy to be created
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return HierarchyBean the newly created objective bank hierarchy
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException ???
HandcarInvalidArgumentException HTTP 422 if the data is invalid

Back to Operations

Method updateObjectiveBankHierarchy
Description Updates an objective bank hierarchy

OSID reference: HierarchyAdminSession
REST Signature
PUT {objectiveBankHierarchy} to  handcar/services/learning/objectivebankhierarchies?proxyname={XXXX}
{
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
}
Parameters HierarchyBean objectiveBankHierarchy to be updated
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return HierarchyBean the newly updated objective bank hierarchy
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the hierarchy does not exist
HandcarInvalidArgumentException HTTP 422 if the data is invalid

Back to Operations

Method deleteObjectiveBankHierarchy
Description Delete an Objective Bank Hierarchy

OSID reference: ObjectiveBankAdminSession
REST Signature
DELETE handcar/services/learning/objectivebankhierarchies/{objectiveBankHierarchyId}?proxyname={XXXX}
Parameters String objectiveBankHierarchyId id of the hierarchy to be deleted
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return void ???
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective is not in the bank

Back to Operations

Method getObjectiveBankHierarchyById
Description Get a particular objective bank hierarchy by id

OSID reference: HierarchyLookupSession
REST Signature
GET handcar/services/learning/objectivebankhierarchies/{objectiveBankHierarchyId}?proxyname={XXXX}
Parameters String objectiveBankHierarchyId that you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return HierarchyBean the fetched hierarchy
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the hierarchy id is bad

Back to Operations

Method getObjectiveBankRootIdsInHierarchy
Description Fetch the root objective banks ids in the hierarchy

Basically this gets all objective banks that do not have any parents, see href="#HandcarLearning-getObjectiveBankParentIds">getObjectiveBankParentIds.

OSID reference: ObjectiveBankHierarchySession
REST Signature
GET handcar/services/learning/objectivebankhierarchies/{objectiveBankHierarchyId}/root/ids?proxyname={XXXX}
Parameters String objectiveBankHierarchyId hierarchy id
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the ids of the root objective banks for this hierarchy
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective bank id does not exist

Back to Operations

Method updateObjectiveBankRootIdsInHierarchy
Description Updates an objective bank hierarchy's roots by specifying their ids

Makes the supplied list of ids the roots of this objective bank hierarchy.

Note: Using this method as opposed to the update children method does not preserve the ordering. Parents can only order
their children but children cannot specify an ordering on their parents.

OSID reference: ObjectiveHierarchyDesignSession
REST Signature
PUT {ids} to  handcar/services/learning/objectivebankhierarchies/{objectiveBankHierarchyId}/root/ids?proxyname={XXXX}
{
"ids" : ["id", ...]
}
Parameters String objectiveBankHierarchyId within which the objective bank hierarchy is to be updated
IdsBean ids bean holding an ordered list of ids to be used in this update
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the newly updated list of ids
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank or objective or any of the ids do not exist

Back to Operations

Method getObjectiveBankRootNodesInHierarchy
Description Fetch the root objective bank nodes in the hierarchy and optionally it's children down to a specified depth

OSID reference: ObjectiveBankHierarchySession
REST Signature
GET handcar/services/learning/objectivebankhierarchies/{objectiveBankHierarchyId}/root/nodes?descendentLevels={999}&proxyname={XXXX}
Parameters String objectiveBankHierarchyId hierarchy for which you wish to fetch the root objective banks
Integer descendentLevels number of levels down to fetch if not specified then 10 levels are fetched
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBankNodeBeanList the root objective nodes for this bank down to the specified depth
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective bank id does not exist

Back to Operations

Method getObjectiveBankParentIdsInHierarchy
Description Fetch a particular objective bank's parent ids in this hiearcharchy

See also getObjectiveBankParents

To maintain this list see updateObjectiveBankParentIds


An example of a hierarchy could be:

18 -- Math
18.01 -- Calculus I
18.02 -- Caclulus II
Subtraction
Multiplication
Division
8 -- Physics
8.01 -- Physics I
8.02 -- Physics II


Parent and child are the same relationship just viewed from the opposite perspective. See also href="#HandcarLearning-getObjectiveBankChildIds">getObjectiveBankChildIds

Typically an objective has just a single parent but we discovered situations where the same naturally aligns under
different parents so the contract allows for multiple parents.

OSID reference: ObjectiveBankHierarchySession
REST Signature
GET handcar/services/learning/objectivebankhierarchies/{objectiveBankHierarchyId}/parent/ids/{objectiveBankId}?proxyname={XXXX}
Parameters String objectiveBankHierarchyId bank that the objective is in
String objectiveBankId id of the objective you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the objective bank's parent's ids
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getObjectiveBankChildIdsInHierarchy
Description Fetch a particular objective bank's child ids in a hierarchy

See also getObjectiveBankChildren

Parent and child are the same relationship just viewed from the opposite perspective. See also href="#HandcarLearning-getObjectiveBankParentIds">getObjectiveBankParentIds

To maintain this list see updateObjectiveBankChildIds

OSID reference: ObjectiveBankHierarchySession
REST Signature
GET handcar/services/learning/objectivebankhierarchies/{objectiveBankHierarchyId}/child/ids/{objectiveBankId}?proxyname={XXXX}
Parameters String objectiveBankHierarchyId hierarchy that the objective bank is in
String objectiveBankId id of the objective bank you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the objective's children's ids
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method updateObjectiveBankChildIdsInHierarchy
Description Updates an objective banks's children by specifying their ids

Makes the supplied list of ids the children of this objective.

Note: the ordering of the list will be preserved when fetched, see href="#HandcarLearning-getObjectiveBankChildIds">getObjectiveChildIds

OSID reference: ObjectiveBankHierarchyDesignSession
REST Signature
PUT {ids} to  handcar/services/learning/objectivebankhierarchies/{objectiveBankHierarchyId}/child/ids/{objectiveBankId}?proxyname={XXXX}
{
"ids" : ["id", ...]
}
Parameters String objectiveBankHierarchyId within which the objective is to be updated
String objectiveBankId to be updated
IdsBean ids bean holding an ordered list of ids to be used in this update
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the newly updated list of ids
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank or objective or any of the ids do not exist

Back to Operations

Method getObjectiveBankChildNodesInHierarchy
Description Bulk operation to fetch nodes representing a particular objective bank's children, grandchildren, great-grandchildren, etc.

See also getObjectiveBankChildren

OSID reference: ObjectiveBankHierarchySession.getObjectiveBankNodes
REST Signature
GET handcar/services/learning/objectivebankhierarchies/{objectiveBankHierarchyId}/child/nodes/{objectiveBankId}?descendentLevels={999}&proxyname={XXXX}
Parameters String objectiveBankHierarchyId bank that the objective is in
String objectiveBankId id of the objective you want to fetch
Integer descendentLevels number of levels down to fetch if not specified then 10 levels are fetched
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBankNodeBean a node holding the objective bank's children, and grand children down to the specified depth
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getAssignableObjectiveBanks
Description Gets the list of banks to which this user may assign an objective

OSID reference: ObjectiveObjectiveBankAssignmentSession.getAssignableObjectiveBankIds
REST Signature
GET handcar/services/learning/bankassignment/assignablebanks?proxyname={XXXX}
Parameters String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBankBeanList a list of banks to which this user may assign an objective
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user

Back to Operations

Method getAssignableObjectiveBanksForObjective
Description Gets the list of banks to which this user may assign this particular objective

OSID reference: ObjectiveObjectiveBankAssignmentSession.getAssignableObjectiveBankIdsForObjective
REST Signature
GET handcar/services/learning/bankassignment/assignablebanks/{objectiveId}?proxyname={XXXX}
Parameters String objectiveId id of the objective you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ObjectiveBankBeanList a list of banks to which this objective may be assigned
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getAssignedObjectiveBankIdsByObjective
Description Fetch the objective bank ids associated with this objective.

The first ID in the returned list is the "home" bank in that it controls the authorizations for accessing and managing this
objective.

OSID reference: ObjectiveObjectiveBankSession.getObjectiveBankIdsByObjective
REST Signature
GET handcar/services/learning/bankassignment/{objectiveId}?proxyname={XXXX}
Parameters String objectiveId objective for which you wish to fetch the objective banks
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the ids of the banks associated with this objective.
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective bank id does not exist

Back to Operations

Method updateAssignedObjectiveBankIdsByObjective
Description Set (bulk update) the objective bank ids associated with (assigned to) this objective.

The first ID in the specified list is the "home" bank in that it controls the authorizations for accessing and managing this
objective.

OSID reference: ObjectiveObjectiveBankAssignmentSession
REST Signature
PUT {objectiveBankIds} to  handcar/services/learning/bankassignment/{objectiveId}?proxyname={XXXX}
{
"ids" : ["id", ...]
}
Parameters String objectiveId objective for which you wish to fetch the objective banks
IdsBean objectiveBankIds list of bank ids to be associated with this objective
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the ids of the banks associated with this objective.
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective bank id does not exist

Back to Operations

Method assignObjectiveToObjectiveBank
Description Assign an objective bank to an objective.

If the objective is already assigned to the bank this does nothing.

OSID reference: ObjectiveObjectiveBankAssignmentSession
REST Signature
POST handcar/services/learning/bankassignment/{objectiveId}/{objectiveBankId}?proxyname={XXXX}
Parameters String objectiveId objective for which you wish to fetch the objective banks
String objectiveBankId bank id to be associated with this objective
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the ids of all the banks associated with this objective.
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective bank id does not exist

Back to Operations

Method unassignObjectiveFromObjectiveBank
Description Deassign an objective bank from an objective.

Throws an exception if the bank is the objective's home or main bank. It can only be reassigned.

OSID reference: ObjectiveObjectiveBankAssignmentSession
REST Signature
DELETE handcar/services/learning/bankassignment/{objectiveId}/{objectiveBankId}?proxyname={XXXX}
Parameters String objectiveId objective for which you wish to fetch the objective banks
String objectiveBankId the bank id to be removed from this objective
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the ids of the banks associated with this objective.
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective bank id does not exist

Back to Operations

Method reassignObjectiveFromObjectiveBank
Description Reassign an objective bank from an objective.

OSID reference: ObjectiveObjectiveBankAssignmentSession
REST Signature
PUT handcar/services/learning/bankassignment/{objectiveId}/{fromObjectiveBankId}/{toObjectiveBankId}?proxyname={XXXX}
Parameters String objectiveId objective for which you wish to fetch the objective banks
String fromObjectiveBankId bank id to be removed from being associated with this objective
String toObjectiveBankId bank id to be associated with this objective
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the ids of the banks associated with this objective.
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective bank id does not exist

Back to Operations

Method getObjectiveProficiencyIds
Description Fetch the ids of the proficiencies associated with an objective

NOTE: this just gets the ids of the proficiencies, to get the actual proficiencies, see href="#HandcarLearning-getObjectiveProficiencies">getObjectiveProficiencies

OSID reference: ProficiencyLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/proficiencyids?proxyname={XXXX}
Parameters String objectiveBankId bank that the objective is in
String objectiveId id of the objective you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return IdsBean the ids of the objective's proficiencies
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method getObjectiveProficiencies
Description Fetches the proficiencies associated with an objective

Functionally equivalent to calling getObjectiveProficiencyIds followed
by getProficiencies.

OSID reference: ProficiencyLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/objectives/{objectiveId}/proficiencies?proxyname={XXXX}
Parameters String objectiveBankId objective bank within which the objective and proficiencies are to be fetched
String objectiveId used to select proficiencies
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ProficiencyBeanList list of proficiencies what are associated with that objective, empty list if none
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank or objective do not exist

Back to Operations

Method getProficiencyNgramsInBank
Description Fetch all the proficiency NGRAMS in a bank, optionally selecting just the ones with the specified genus types

If the list of genus types is empty then all proficiencies are returned.

OSID reference: ProficiencyLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/proficiencies/ngrams?federateUsingObjectiveBankHierarchyId={id}&proxyname={XXXX}
Additional query parameters (that can be mixed and matched):
     ?id={id}&id={id}...
     ?genustypeid={id}&genustypeid={id}...
     ?keyword={XXXX}
     ?resourceid={id}&resourceid={id}...
     ?objectiveid={id}&objectiveid={id}...
     ?levelid={id}&levelid={id}...
     ?startcompletion={startCompletion}
     ?endcompletion={endCompletion}
     ?completionmatch={true}
     ?endreasonid={id}&endreasonid={id}...
     ?effective={true}
     ?startdatestartrange={YYYY-MM-DD}
     ?startdateendrange={YYYY-MM-DD}
     ?startdatematch={true}
     ?enddatestartrange={YYYY-MM-DD}
     ?enddateendrange={YYYY-MM-DD}
     ?enddatematch={true}
     ?addedby={XXXX}&addedby={XXXX}...
     ?addedonstartdate={YYYY-MM-DD}
     ?addedonenddate={YYYY-MM-DD}
     ?updatedby={XXXX}&updatedby={XXXX}...
     ?updatedonstartdate={YYYY-MM-DD}
     ?updatedonenddate={YYYY-MM-DD}
     ?startat={999}
     ?maxvalues={999}
Parameters String objectiveBankId id of the objective bank from which you want the proficiencies
String federateUsingObjectiveBankHierarchyId optional hierarchy to use to find objectives in any child banks of the
specified bank
ProficiencyQueryBean queryBean optional query to filter results
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return NgramBeanList list of proficiencies, empty list if none
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank id is bad

Back to Operations

Method getProficienciesInBank
Description Queries all the proficiencies in a bank

If the list of genus types is empty then all proficiencies are returned.

OSID reference: ProficiencyLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/proficiencies?federateUsingObjectiveBankHierarchyId={id}&proxyname={XXXX}
Additional query parameters (that can be mixed and matched):
     ?id={id}&id={id}...
     ?genustypeid={id}&genustypeid={id}...
     ?keyword={XXXX}
     ?resourceid={id}&resourceid={id}...
     ?objectiveid={id}&objectiveid={id}...
     ?levelid={id}&levelid={id}...
     ?startcompletion={startCompletion}
     ?endcompletion={endCompletion}
     ?completionmatch={true}
     ?endreasonid={id}&endreasonid={id}...
     ?effective={true}
     ?startdatestartrange={YYYY-MM-DD}
     ?startdateendrange={YYYY-MM-DD}
     ?startdatematch={true}
     ?enddatestartrange={YYYY-MM-DD}
     ?enddateendrange={YYYY-MM-DD}
     ?enddatematch={true}
     ?addedby={XXXX}&addedby={XXXX}...
     ?addedonstartdate={YYYY-MM-DD}
     ?addedonenddate={YYYY-MM-DD}
     ?updatedby={XXXX}&updatedby={XXXX}...
     ?updatedonstartdate={YYYY-MM-DD}
     ?updatedonenddate={YYYY-MM-DD}
     ?startat={999}
     ?maxvalues={999}
Parameters String objectiveBankId id of the objective bank from which you want the proficiencies
String federateUsingObjectiveBankHierarchyId optional hierarchy to use to find objectives in any child banks of the
specified bank
ProficiencyQueryBean queryBean optional query bean to filter the results
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ProficiencyBeanList list of proficiencies, empty list if none
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank id is bad

Back to Operations

Method getProficiencyInBankById
Description Fetch a particular proficiency in a bank

OSID reference: ProficiencyLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/proficiencies/{proficiencyId}?proxyname={XXXX}
Parameters String objectiveBankId id of the objective bank from which you want the proficiency
String proficiencyId id of the proficiency you want
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ProficiencyBean the fetched proficiency
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the proficiency is not in the bank

Back to Operations

Method getProficiencyById
Description Fetch a particular proficiency without specifying the bank

OSID reference: ProficiencyLookupSession
REST Signature
GET handcar/services/learning/proficiencies/{proficiencyId}?proxyname={XXXX}
Parameters String proficiencyId id of the proficiency you want
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ProficiencyBean the fetched proficiency
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the proficiency is not in the bank

Back to Operations

Method getProficienciesByIds
Description Bulk fetch a bunch of proficiencies in a bank

OSID reference: ProficiencyLookupSession
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/proficiencies/bulk?id={id}&id={id}...&proxyname={XXXX}
Parameters String objectiveBankId id of the objective bank from which you want the proficiency
StringList proficiencyIds list of ids of the proficiencies you want
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ProficiencyBeanList the list of fetched proficiencies
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the proficiency is not in the bank

Back to Operations

Method getProficiencyExtensionRecord
Description Fetch a particular proficiency's EXTENSION record

An EXTENSION record is basically a set of key value pairs holding additional data not explicitly defined in the object. It
is a way to extend the object without breaking the contract. See ExtensionRecordBean
for more details.

OSID reference: Proficiency.getProficiencyRecord
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/proficiencies/{proficiencyId}/extension?recordtypeid={id}&recordtypeid={id}...&proxyname={XXXX}
Parameters String objectiveBankId bank that the proficiency is in
String proficiencyId id of the proficiency's extention you want to fetch
StringList optionalRecordTypeIds optional list of the record types to include, if not specified all record types are included
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ExtensionRecordBean the fetched proficiency's extension record
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the proficiency id is not in the bank

Back to Operations

Method updateProficiencyExtensionRecord
Description Update a particular proficiency's EXTENSION record

An EXTENSION record is basically a set of key value pairs holding additional data not explicitly defined in the object. It
is a way to extend the object without breaking the contract. See ExtensionRecordBean
for more details.
OSID reference: Proficiency.getProficiencyRecord
REST Signature
PUT {extensionRecord} to  handcar/services/learning/objectivebanks/{objectiveBankId}/proficiencies/{proficiencyId}/extension?proxyname={XXXX}
{
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
}
Parameters String objectiveBankId bank that the proficiency is in
String proficiencyId id of the proficiency's extention you want to update
ExtensionRecordBean extensionRecord extension to be updated
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ExtensionRecordBean the updated proficiency's extension record
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the proficiency id is not in the bank

Back to Operations

Method getProficiencyGenusTypes
Description Gets the list of genus types for proficiencies for this bank.

Proficiency genus types describe the type of proficiency, the supported general types indicate if it is: ASSET BASED, COURSE
BASED or ASSESSMENT BASED.

ASSET BASED means the student must consume some sort of asset to do the proficiency. COURSE BASED means the student must take
a course offered by some school as the proficiency. ASSESSMENT BASED means the student must take an assessment as the
proficiency.

Other types could include things like PROJECT BASED, LAB BASED, etc...

types returned by getDisplayTextFormatTypes to include types for
images, songs, and movies.

OSID reference: Proficiency.genusType
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/types/genus/proficiency?proxyname={XXXX}
Parameters String objectiveBankId id of the objective bank for which these types are configured
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return TypeBeanList list of proficiency genus types
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank id does not exist

Back to Operations

Method getProficiencyLevelsInBank
Description Fetch all the grades used as levels for proficiencies in this bank

This is configured when the objective bank is created and initially will default to Bloom's revised taxonony for cognitive
processes.

See:
Wikipedia Bloom's Taxonomy

OSID reference: GradeSystem
REST Signature
GET handcar/services/learning/objectivebanks/{objectiveBankId}/proficiency/levels?proxyname={XXXX}
Parameters String objectiveBankId that the grades are configured into
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return GradeSystemBean grades configured as valid levels for proficiencies in this objective bank
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the objective id is not in the bank

Back to Operations

Method createProficiencyInBank
Description Creates a proficiency associated with an objective in a bank

If you supply an ID it will be replaced by an ID assigned by the service and the Id you supplied will be added as an alias.

OSID reference: ProficiencyAdminSession
REST Signature
POST {proficiency} to  handcar/services/learning/objectivebanks/{objectiveBankId}/proficiencies?proxyname={XXXX}
{
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"objectiveId" : "id",
"resourceId" : "id",
"completion" : completion,
"levelId" : "id",
"endReasonId" : "id",
"startDate" : "YYYY-MM-DD",
"endDate" : "YYYY-MM-DD",
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
}
Parameters String objectiveBankId within which the proficiency is to be created
ProficiencyBean proficiency to be created
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ProficiencyBean the newly created proficiency
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank or proficiency does not exist
HandcarInvalidArgumentException HTTP 422 if the data is invalid

Back to Operations

Method updateProficiencyInBank
Description Updates a proficiency

The objective Id read-only and cannot be changed and changes will be silently ignored.

OSID reference: ProficiencyAdminSession
REST Signature
PUT {proficiency} to  handcar/services/learning/objectivebanks/{objectiveBankId}/proficiencies?proxyname={XXXX}
{
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"objectiveId" : "id",
"resourceId" : "id",
"completion" : completion,
"levelId" : "id",
"endReasonId" : "id",
"startDate" : "YYYY-MM-DD",
"endDate" : "YYYY-MM-DD",
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
}
Parameters String objectiveBankId within which the proficiency is to be updated
ProficiencyBean proficiency to be updated
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ProficiencyBean the newly updated proficiency
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the bank or proficiency does not exist
HandcarInvalidArgumentException HTTP 422 if the data is invalid

Back to Operations

Method deleteProficiencyInBank
Description Delete a proficiency

OSID reference: ProficiencyAdminSession
REST Signature
DELETE handcar/services/learning/objectivebanks/{objectiveBankId}/proficiencies/{proficiencyId}?proxyname={XXXX}
Parameters String objectiveBankId within which the proficiency exists
String proficiencyId id of the proficiency to be deleted
String proxyName optional name of user for whom this operation is being executed, if not specified taken from security
context
Return ProficiencyBean the proficiency as it was before it was deleted
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this method or are not allowed to proxy
user
HandcarNotFoundException HTTP 404 if the proficiency is not in the bank

Back to Operations