block_exacomp_get_courses

Get courses with exacomp block instances. get courses
type: read
Params:
userid int null optional default: NULL id of user
Returns:
[
    {
        "courseid": "int null (id of course)",
        "fullname": "text null (fullname of course)",
        "shortname": "raw null (shortname of course)",
        "exarole": "int null (1=trainer, 2=student)",
        "teachercanedit": "bool null ()"
    },
    "..."
]

block_exacomp_get_examples_for_subject

Get examples for subtopic Get examples
type: read
Params:
subjectid int null required id of subject
courseid int null required id of course
userid int null required id of user
Returns:
[
    {
        "topicid": "int null (id of topic)",
        "title": "text null (title of topic)",
        "requireaction": "bool null (trainer action required or not)",
        "examples": [
            {
                "exampleid": "int null (id of example)",
                "example_title": "text null (title of example)",
                "example_item": "int null (current item id)",
                "example_status": "int null (status of current item)",
                "example_creatorid": "int null (creator of example)"
            },
            "..."
        ],
        "quizes": [
            {
                "quizid": "int null (id of quiz)",
                "quiz_title": "text null (title of quiz)",
                "quiz_grade": "float null (sum grade of quiz)"
            },
            "... quiz data ..."
        ]
    },
    "..."
]

block_exacomp_get_examples_for_subject_with_lfs_infos

Get examples for subtopic Get examples
type: read
Params:
subjectid int null required id of subject
courseid int null required id of course
userid int null required id of user
Returns:
[
    {
        "topicid": "int null (id of topic)",
        "title": "text null (title of topic)",
        "requireaction": "bool null (trainer action required or not)",
        "totalCompetencies": "int null (amount of total competencies of this topic)",
        "examples": [
            {
                "exampleid": "int null (id of example)",
                "numbering": "text null (descriptor numbering)",
                "example_title": "text null (title of example)",
                "example_item": "int null (current item id)",
                "example_status": "int null (status of current item)",
                "example_creatorid": "int null (creator of example)"
            },
            "..."
        ],
        "quizes": [
            {
                "quizid": "int null (id of quiz)",
                "quiz_title": "text null (title of quiz)",
                "quiz_grade": "float null (sum grade of quiz)"
            },
            "... quiz data ..."
        ]
    },
    "..."
]

block_exacomp_get_example_by_id

Get example Get example
type: read
Params:
exampleid int null required id of example
Returns:
{
    "title": "text null (title of example)",
    "description": "text null (description of example)",
    "taskfileurl": "text null (task fileurl)",
    "taskfilenames": "text null (task filename)",
    "externalurl": "text null (externalurl of example)",
    "task": "text null (@deprecated)",
    "solution": "text null (solution(url\/description) of example)",
    "timeframe": "text null (timeframe as string)",
    "hassubmissions": "bool null (true if example has already submissions)",
    "quiz": {
        "quizid": "int null (id of quiz)",
        "quiz_title": "text null (title of quiz)",
        "quiz_grade": "float null (sum grade of quiz)"
    }
}

block_exacomp_get_descriptors_for_example

Get desciptors for example Get descriptors for example
type: read
Params:
exampleid int null required id of example
courseid int null required id of course
userid int null required id of user
Returns:
[
    {
        "descriptorid": "int null (id of descriptor)",
        "title": "text null (title of descriptor)",
        "evaluation": "int null (evaluation of descriptor)"
    },
    "..."
]

block_exacomp_get_descriptors_for_quiz

Get desciptors for quiz Get descriptors for quiz
type: read
Params:
quizid int null required id of quiz
courseid int null required id of course
userid int null required id of user
Returns:
[
    {
        "descriptorid": "int null (id of descriptor)",
        "title": "text null (title of descriptor)",
        "evaluation": "int null (evaluation of descriptor)"
    },
    "..."
]

block_exacomp_get_user_role

Get role for user: 1=trainer 2=student
type: read
Params:
Returns:
{
    "role": "int null (1=trainer, 2=student)"
}

block_exacomp_diggr_get_user_role

Get role for user: 1=trainer 2=student
type: read
Params:
Returns:
{
    "role": "int null (1=trainer, 2=student)"
}

block_exacomp_get_external_trainer_students

Get external trainer's students Get all students for an external trainer
type: read
Params:
Returns:
[
    {
        "userid": "int null (id of user)",
        "name": "text null (name of user)",
        "cohorts": [
            {
                "cohortid": "int null (id of cohort)",
                "name": "text null (title of cohort)"
            },
            "..."
        ],
        "requireaction": "bool null (trainer action required or not)",
        "examples": {
            "total": "int null ()",
            "submitted": "int null ()",
            "reached": "int null ()"
        }
    },
    "..."
]

block_exacomp_get_subjects_for_user

Get Subjects get subjects from one user for all his courses
type: read
Params:
userid int null required id of user
Returns:
[
    {
        "subjectid": "int null (id of subject)",
        "title": "text null (title of subject)",
        "courseid": "int null (id of course)",
        "requireaction": "bool null (whether example in this subject has been edited or not by the selected student)"
    },
    "..."
]

diggrplus_get_subjects_and_topics_for_user

Get Subjects get subjects from one user for all his courses
type: read
Params:
userid int null required id of user
Returns:
[
    {
        "id": "int null (id of subject)",
        "title": "text null (title of subject)",
        "courseid": "int null (id of course)",
        "courseshortname": "text null (courseshortname)",
        "coursefullname": "text null (coursefullname)",
        "topics": [
            {
                "id": "int null (id of example)",
                "title": "text null (title of example)"
            },
            "..."
        ]
    },
    "..."
]

diggrplus_get_niveaus_for_subject

Get Subjects get subjects from one user for all his courses
type: read
Params:
subjectid int null required id of subject
Returns:
[
    {
        "niveauid": "int null (id of subject)",
        "niveautitle": "text null (title of subject)"
    },
    "..."
]

block_exacomp_delete_item

delete a submitted and wrong item Deletes one user item if it is not graded already
type: write
Params:
itemid int null required id of item
Returns:
{
    "success": "bool null (status)"
}

block_exacomp_set_competence

Set a student evaluation for a particular competence Set student evaluation
type: write
Params:
courseid int null required id of course
descriptorid int null required id of descriptor
value int null required evaluation value
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

block_exacomp_get_item_for_example

Get Item get subjects from one user for all his courses
type: read
Params:
userid int null required id of user
itemid int null required id of item
Returns:
{
    "id": "int null (id of item)",
    "name": "text null (title of item)",
    "type": "text null (type of item (note,file,link))",
    "url": "text null (url)",
    "effort": "raw null (description of the effort)",
    "filename": "text null (title of item)",
    "file": "url null (file url)",
    "isimage": "bool null (true if file is image)",
    "status": "int null (status of the submission)",
    "teachervalue": "int null (teacher grading)",
    "studentvalue": "int null (student grading)",
    "teachercomment": "text null (teacher comment)",
    "studentcomment": "text null (student comment)"
}

block_exacomp_get_competencies_for_upload

Get competencetree Get all available competencies
type: read
Params:
userid int null required id of user
Returns:
[
    {
        "subjectid": "int null (id of topic)",
        "subjecttitle": "text null (title of topic)",
        "topics": [
            {
                "topicid": "int null (id of example)",
                "topictitle": "text null (title of example)",
                "descriptors": [
                    {
                        "descriptorid": "int null (id of example)",
                        "descriptortitle": "text null (title of example)"
                    },
                    "..."
                ]
            },
            "..."
        ]
    },
    "..."
]

block_exacomp_submit_example

Submit example submit example for elove and diggr Add item
type: read
Params:
exampleid int null required exampleid
studentvalue int null required studentvalue
url url null required url
effort text null required effort
filename text null required filename, used to look up file and create a new one in the exaport file area
fileitemid int null required fileitemid, used to look up file and create a new one in the exaport file area
studentcomment text null required studentcomment
title text null required title
itemid int null required itemid
courseid int null required courseid
Returns:
{
    "success": "bool null (status)",
    "itemid": "int null (itemid)"
}

block_exacomp_create_or_update_example

Create an example or update it create example
type: write
Params:
exampleid int null optional default: int(-1) id of the example that is to be updated
name text null required title of example
description text null required description of example
timeframe text null optional default: string(0) "" description of example
externalurl text null optional default: string(4) "wwww"
comps text null optional default: string(1) "0" list of competencies, seperated by comma, or "freemat" if freematerial should be created
fileitemids text null optional default: string(0) "" fileitemids separated by comma
solutionfileitemid text null optional default: string(0) "" fileitemid
taxonomies text null optional default: string(0) "" list of taxonomies
newtaxonomy text null optional default: string(0) "" new taxonomy to be created
courseid int null optional default: int(0) courseid
filename text null optional default: string(0) "" deprecated (old code for maybe elove?) filename, used to look up file and create a new one in the exaport file area
crosssubjectid int null optional default: int(-1) id of the crosssubject if it is a crosssubjectfile
activityid int null optional default: int(0) id of related activity
is_teacherexample int null optional default: int(0) is a teacher example?
Returns:
{
    "exampleid": "int null (id of created example)",
    "newtaxonomy": {
        "id": "int null (amount of total competencies)",
        "source": "text null (amount of reached competencies)",
        "title": "text null (amount of reached competencies)"
    }
}

diggrplus_create_or_update_example

Create an example or update it create example
type: write
Params:
exampleid int null optional default: int(-1) id of the example that is to be updated
name text null required title of example
description text null required description of example
timeframe text null optional default: string(0) "" description of example
externalurl text null optional default: string(4) "wwww"
descriptorids text null optional default: string(1) "0" list of descriptorids, seperated by comma, or "freemat" if freematerial should be created
taxonomies text null optional default: string(0) "" list of taxonomies
newtaxonomy text null optional default: string(0) "" new taxonomy to be created
courseid int null optional default: int(0) courseid
crosssubjectid int null optional default: int(-1) id of the crosssubject if it is a crosssubjectfile
activityid int null optional default: int(0) id of related activity
is_teacherexample int null optional default: int(0) is a teacher example?
fileitemids text null required fileitemids separated by comma, used to look up file and create a new one in the exaport file area
removefiles text null optional default: int(0) fileindizes/pathnamehashes of the files that should be removed, separated by comma
solutionfileitemid text null optional default: string(0) "" fileitemid for the solutionfile
Returns:
{
    "exampleid": "int null (id of created example)",
    "success": "bool null (status)"
}

block_exacomp_grade_item

Grade an item grade an item
type: write
Params:
userid int null required id of user
value int null required value for grading
status int null required status
comment text null required comment of grading
itemid int null required id of item
comps text null required comps for example - positive grading
courseid int null required if of course
Returns:
{
    "success": "bool null (true if grading was successful)"
}

block_exacomp_get_user_examples

get examples created by a specific user grade an item
type: read
Params:
Returns:
[
    {
        "exampleid": "int null (id of example)",
        "exampletitle": "text null (title of example)",
        "example_status": "int null (status of example)",
        "exampletopicid": "int null (topic id where example belongs to)"
    },
    "..."
]

block_exacomp_get_user_profile

get a list of courses with their competencies
type: read
Params:
userid int null required id of user
Returns:
{
    "user": {
        "competencies": {
            "total": "int null (amount of total competencies)",
            "reached": "int null (amount of reached competencies)"
        },
        "examples": {
            "total": "int null (amount of total competencies)",
            "reached": "int null (amount of reached competencies)"
        }
    },
    "subjects": [
        {
            "title": "text null (subject title)",
            "data": {
                "competencies": {
                    "total": "int null (amount of total competencies)",
                    "reached": "int null (amount of reached competencies)"
                },
                "examples": {
                    "total": "int null (amount of total competencies)",
                    "reached": "int null (amount of reached competencies)"
                }
            },
            "topics": [
                {
                    "title": "text null (topic title)",
                    "data": {
                        "competencies": {
                            "total": "int null (amount of total competencies)",
                            "reached": "int null (amount of reached competencies)"
                        },
                        "examples": {
                            "total": "int null (amount of total competencies)",
                            "reached": "int null (amount of reached competencies)"
                        }
                    }
                },
                "..."
            ]
        },
        "..."
    ]
}

block_exacomp_update_example

update an example
type: write
Params:
exampleid int null required id of example
name text null required title of example
description text null required description of example
externalurl text null required
comps text null required list of competencies, seperated by comma
filename text null required filename, used to look up file and create a new one in the exaport file area
fileitemid int null required fileitemid
Returns:
{
    "success": "bool null (true if successful)"
}

block_exacomp_delete_example

delete a custom item delete example
type: write
Params:
exampleid int null required id of example
Returns:
{
    "success": "bool null (true if successful)"
}

block_exacomp_get_competencies_by_topic

get competencies for a specific topic Get all available competencies
type: read
Params:
userid int null required id of user
topicid int null required id of topic
Returns:
[
    {
        "descriptorid": "int null (id of example)",
        "descriptortitle": "text null (title of example)"
    },
    "..."
]

dakora_set_competence

set competence for student Set a competence for a user
type: write
Params:
courseid int null required id of course
userid int null required id of user, if 0 current user
compid int null required competence id
comptype int null required type of competence: descriptor, topic, subject
role int null required user role (0 == student, 1 == teacher)
value int null required evaluation value, only set for TK (0 to 3)
additionalinfo float null required decimal between 1 and 6
evalniveauid int null required evaluation niveau (-1, 1, 2, 3)
subjectid int null optional default: int(-1) subjectid
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_get_courses

get courses for user for dakora app get courses
type: read
Params:
userid int null optional default: NULL id of user
Returns:
[
    {
        "courseid": "int null (id of course)",
        "fullname": "text null (fullname of course)",
        "shortname": "raw null (shortname of course)",
        "exarole": "int null (1=trainer, 2=student)",
        "teachercanedit": "bool null ()"
    },
    "..."
]

dakora_get_topics_by_course

get topics for course for dakora app associated with examples get courses
type: read
Params:
courseid int null required id of course
userid int null optional default: int(0) id of user, 0 for current user
forall bool null optional default: int(0) for all users = true, for one user = false
Returns:
[
    {
        "topicid": "int null (id of topic)",
        "topictitle": "text null (title of topic)",
        "numbering": "text null (numbering for topic)",
        "subjectid": "int null (id of subject)",
        "subjecttitle": "text null (title of subject)",
        "visible": "int null (visibility of topic in current context)",
        "used": "int null (used in current context)"
    },
    "..."
]

dakora_get_all_topics_by_course

get topics for course for dakora app get courses
type: read
Params:
courseid int null required id of course
userid int null optional default: int(0) id of user, 0 for current user
forall bool null optional default: int(0) for all users = true, for one user = false
groupid int null optional default: NULL id of user, 0 for current user
Returns:
{
    "topics": [
        {
            "topicid": "int null (id of topic)",
            "topictitle": "text null (title of topic)",
            "topicdescription": "raw null (description of topic)",
            "numbering": "text null (numbering for topic)",
            "subjectid": "int null (id of subject)",
            "subjecttitle": "text null (title of subject)",
            "visible": "int null (visibility of topic in current context)",
            "used": "int null (used in current context)"
        },
        "..."
    ],
    "activitylist": [
        {
            "id": "int null (id)",
            "name": "text null (name)"
        },
        "..."
    ]
}

dakora_get_descriptors

get descriptors for topic for dakora app associated with examples get descriptors for one topic, considering the visibility
type: read
Params:
courseid int null required id of course
topicid int null required id of topic
userid int null required id of user, 0 for current user
forall bool null required for all users = true, for one user = false
Returns:
[
    {
        "descriptorid": "int null (id of descriptor)",
        "descriptortitle": "text null (title of descriptor)",
        "numbering": "text null (numbering for descriptor)",
        "niveautitle": "text null (title of niveau)",
        "niveaudescription": "text null (description of niveau)",
        "niveauid": "int null (id of niveau)",
        "visible": "int null (visibility of topic in current context)",
        "niveauvisible": "bool null (if niveau is visible)",
        "used": "int null (used in current context)",
        "niveausort": "int null (sorting for ids)"
    },
    "..."
]

dakora_get_all_descriptors

get descriptors for topic for dakora app get courses
type: read
Params:
courseid int null required id of course
topicid int null required id of topic
userid int null required id of user, 0 for current user
forall bool null required for all users = true, for one user = false
editmode bool null optional default: int(0) when editmode is active, descriptors fo hidden niveaus should be loaded
Returns:
[
    {
        "descriptorid": "int null (id of descriptor)",
        "descriptortitle": "text null (title of descriptor)",
        "numbering": "text null (numbering for descriptor)",
        "niveautitle": "text null (title of niveau)",
        "niveauid": "int null (id of niveau)",
        "niveaudescription": "text null (description of niveau)",
        "visible": "int null (visibility of topic in current context)",
        "used": "int null (used in current context)",
        "gradingisold": "bool null (true when there are newer gradings in the childcompetences)",
        "niveauvisible": "bool null (if niveau is visible)",
        "niveausort": "int null (sorting for ids)"
    },
    "..."
]

dakora_get_descriptor_children

get children (childdescriptor and examples) for descriptor for dakora app (only childs associated with examples) get courses
type: read
Params:
courseid int null required id of course
descriptorid int null required id of parent descriptor
userid int null required id of user, 0 for current user
forall bool null required for all users = true, for one user = false
Returns:
{
    "children": [
        {
            "descriptorid": "int null (id of child)",
            "descriptortitle": "text null (title of child)",
            "numbering": "text null (numbering for child)",
            "teacherevaluation": "int null (grading of child)",
            "evalniveauid": "int null (evaluation niveau id)",
            "timestampteacher": "int null (timestamp of teacher evaluation)",
            "studentevaluation": "int null (self evaluation of child)",
            "timestampstudent": "int null (timestamp of student evaluation)",
            "examplestotal": "int null (total number of material)",
            "examplesvisible": "int null (visible number of material)",
            "examplesinwork": "int null (edited number of material)",
            "visible": "int null (visibility of child)",
            "used": "int null (used in current context)"
        },
        "..."
    ],
    "examples": [
        {
            "exampleid": "int null (id of example)",
            "exampletitle": "text null (title of example)",
            "examplestate": "int null (state of example, always 0 if for all students)",
            "visible": "int null (visibility of example)",
            "used": "int null (used in current context)"
        },
        "..."
    ],
    "examplestotal": "int null (number of total examples)",
    "examplesvisible": "int null (number of visible examples)",
    "examplesinwork": "int null (number of examples in work)"
}

dakora_get_examples_for_descriptor

get examples for descriptor for dakora app
type: read
Params:
courseid int null required id of course
descriptorid int null required id of parent descriptor
userid int null required id of user, if 0 current user
forall bool null required if all users = true, only one user = false
Returns:
[
    {
        "exampleid": "int null (id of descriptor)",
        "exampletitle": "text null (title of descriptor)",
        "examplestate": "int null (state of example, always 0 if for all students)",
        "visible": "int null (visibility of example in current context)",
        "used": "int null (used in current context)"
    },
    "..."
]

dakora_get_examples_for_descriptor_with_grading

get examples for descriptor with additional grading information
type: read
Params:
courseid int null required id of course
descriptorid int null required id of parent descriptor
userid int null required id of user, if 0 current user
forall bool null required if all users = true, only one user = false
Returns:
[
    {
        "exampleid": "int null (id of descriptor)",
        "exampletitle": "text null (title of descriptor)",
        "examplestate": "int null (state of example, always 0 if for all students)",
        "visible": "int null (visibility of example in current context)",
        "used": "int null (used in current context)",
        "teacherevaluation": "int null (example evaluation of teacher)",
        "studentevaluation": "int null (example evaluation of student)",
        "evalniveauid": "int null (evaluation niveau id)",
        "timestampteacher": "int null (timestamp for teacher evaluation)",
        "timestampstudent": "int null (timestamp for student evaluation)"
    },
    "..."
]

dakora_get_examples_for_descriptor_for_crosssubject

get examples for descriptor for dakora app
type: read
Params:
courseid int null required id of course
descriptorid int null required id of parent descriptor
userid int null required id of user, if 0 current user
forall bool null required if all users = true, only one user = false
crosssubjid int null required id of crosssubject
Returns:
[
    {
        "exampleid": "int null (id of descriptor)",
        "exampletitle": "text null (title of descriptor)",
        "examplestate": "int null (state of example, always 0 if for all students)",
        "visible": "int null (visibility of example in current context)",
        "used": "int null (used in current context)"
    },
    "..."
]

dakora_get_examples_for_descriptor_for_crosssubject_with_grading

get examples for descriptor with additional grading information
type: read
Params:
courseid int null required id of course
descriptorid int null required id of parent descriptor
userid int null required id of user, if 0 current user
forall bool null required if all users = true, only one user = false
crosssubjid int null required id of crosssubject
Returns:
[
    {
        "exampleid": "int null (id of descriptor)",
        "exampletitle": "text null (title of descriptor)",
        "examplestate": "int null (state of example, always 0 if for all students)",
        "visible": "int null (visibility of example in current context)",
        "used": "int null (used in current context)",
        "teacherevaluation": "int null (example evaluation of teacher)",
        "studentevaluation": "int null (example evaluation of student)",
        "evalniveauid": "int null (evaluation niveau id)",
        "timestampteacher": "int null (timestamp for teacher evaluation)",
        "timestampstudent": "int null (timestamp for student evaluation)"
    },
    "..."
]

dakora_get_example_overview

get example overview for dakora app
type: read
Params:
courseid int null required id of course
exampleid int null required id of example
userid int null required id of user, if 0 current user
Returns:
{
    "title": "text null (title of example)",
    "description": "text null (description of example)",
    "taskfileurl": "text null (task fileurl)",
    "taskfilenames": "text null (task filename)",
    "solutionfilename": "text null (task filename)",
    "externalurl": "text null (externalurl of example)",
    "externaltask": "text null (url of associated module)",
    "task": "text null (@deprecated)",
    "taskfilecount": "text null (number of files for the task)",
    "solution": "text null (solution(url\/description) of example)",
    "timeframe": "text null (timeframe as string)",
    "hassubmissions": "bool null (true if example has already submissions)",
    "solution_visible": "bool null (visibility for example solution in current context)",
    "exampletaxonomies": "text null (taxonomies seperated by comma)",
    "exampletaxids": "text null (taxids seperated by comma)",
    "is_teacherexample": "bool null (is teacher example?)"
}

diggrplus_get_example_overview

get example overview for dakora app
type: read
Params:
courseid int null required id of course
exampleid int null required id of example
userid int null required id of user, if 0 current user
Returns:
{
    "id": "text null (id of example)",
    "visible": "bool null (visibility of example)",
    "title": "text null (title of example)",
    "description": "text null (description of example)",
    "solutionfilename": "text null (task filename)",
    "externalurl": "text null (externalurl of example)",
    "externaltask": "text null (url of associated module)",
    "solution": "text null (solution(url\/description) of example)",
    "timeframe": "text null (timeframe as string)",
    "hassubmissions": "bool null (true if example has already submissions)",
    "solution_visible": "bool null (visibility for example solution in current context)",
    "exampletaxonomies": "text null (taxonomies seperated by comma)",
    "exampletaxids": "text null (taxids seperated by comma)",
    "is_teacherexample": "bool null (is teacher example?)",
    "taskfiles": [
        {
            "name": "text null (title of taskfile)",
            "url": "url null (file url)",
            "type": "text null (mime type for file)"
        },
        "... taskfiles of the example ..."
    ]
}

dakora_add_example_to_learning_calendar

add example to learning calendar for dakora get courses
type: write
Params:
courseid int null required id of course
exampleid int null required id of example
creatorid int null required id of creator
userid int null required id of user, if 0 current user
forall bool null required for all users = true, for one user = false
groupid int null optional default: NULL id of group
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_get_descriptors_for_example

get descriptors where example is associated Get descriptors for example
type: read
Params:
exampleid int null required id of example
courseid int null required id of course
userid int null required id of user
forall bool null required for all users = true, for one user = false
Returns:
[
    {
        "descriptorid": "int null (id of descriptor)",
        "title": "text null (title of descriptor)",
        "teacherevaluation": "int null (evaluation of descriptor)",
        "studentevaluation": "int null (student evaluation of descriptor)",
        "evalniveauid": "int null (evaluation niveau id)",
        "niveauid": "int null (id of niveau)",
        "additionalinfo": "float null (additional grading for descriptor)",
        "topicid": "int null (id of topic)",
        "numbering": "text null (descriptor numbering)",
        "child": "bool null (true: child, false: parent)",
        "parentid": "int null (parentid if child, 0 otherwise)",
        "gradingisold": "bool null (true when there are newer gradings in the childcompetences)",
        "reviewerid": "int null (id of reviewer)",
        "reviewername": "text null (name of reviewer)"
    },
    "..."
]

dakora_get_example_grading

get student and teacher evaluation for example Get example grading for user
type: read
Params:
exampleid int null required id of example
courseid int null required id of course
userid int null required id of user, if 0 current user
Returns:
{
    "teacherevaluation": "int null (teacher evaluation for student and example)",
    "studentevaluation": "int null (self evaluation for example)",
    "evalniveauid": "int null (evaluation niveau id)"
}

dakora_get_topic_grading

get student and teacher evaluation for topic Get topic grading for user
type: read
Params:
topicid int null required id of topic
courseid int null required id of course
userid int null required id of user, if 0 current user
Returns:
{
    "teacherevaluation": "int null (teacher evaluation for student and topic)",
    "additionalinfo": "float null (teacher additional info for student and topic)",
    "studentevaluation": "int null (self evaluation for topic)",
    "evalniveauid": "int null (evaluation niveau id)",
    "timestampteacher": "int null (timestamp for teacher evaluation)",
    "timestampstudent": "int null (timestamp for student evaluation)"
}

dakora_get_subject_grading

get student and teacher evaluation for subject Get subject grading for user
type: read
Params:
subjectid int null required id of subject
courseid int null required id of course
userid int null required id of user, if 0 current user
Returns:
{
    "teacherevaluation": "int null (teacher evaluation for student and subject)",
    "additionalinfo": "float null (teacher additional info for student and subject)",
    "studentevaluation": "int null (self evaluation for subject)",
    "evalniveauid": "int null (evaluation niveau id)",
    "timestampteacher": "int null (timestamp for teacher evaluation)",
    "timestampstudent": "int null (timestamp for student evaluation)"
}

dakora_get_user_role

get user role 1= trainer, 2= student return 1 for trainer 2 for student 0 if false
type: read
Params:
Returns:
{
    "role": "int null (1=trainer, 2=student)"
}

dakora_get_students_and_groups_for_course

get list of students for course
type: read
Params:
courseid int null required id of course
Returns:
{
    "students": [
        {
            "studentid": "int null (id of student)",
            "firstname": "text null (firstname of student)",
            "lastname": "text null (lastname of student)",
            "profilepicture": "text null (link to  profile picture)"
        },
        "..."
    ],
    "groups": [
        {
            "id": "int null (id of group)",
            "name": "text null (name of group)",
            "picture": "text null (link to  picture)"
        },
        "..."
    ]
}

dakora_get_students_for_teacher

get list of students that are enrolled in any course of a teacher
type: read
Params:
userid int null required id of user
Returns:
[
    {
        "id": "int null (id of student)",
        "firstname": "text null (firstname of student)",
        "lastname": "text null (lastname of student)"
    },
    "..."
]

dakora_get_teachers_for_student

get list of teachers in any course of the student
type: read
Params:
userid int null required id of user
Returns:
[
    {
        "id": "int null (id of teacher)",
        "firstname": "text null (firstname of teacher)",
        "lastname": "text null (lastname of teacher)"
    },
    "..."
]

dakora_get_examples_pool

get list of examples for weekly schedule pool Get examples for pool
type: read
Params:
courseid int null required id of course
userid int null required id of user, if 0 current user
Returns:
[
    {
        "exampleid": "int null (id of example)",
        "title": "text null (title of example)",
        "student_evaluation": "int null (self evaluation of student)",
        "teacher_evaluation": "int null (evaluation of teacher)",
        "evalniveauid": "int null (evaluation niveau id)",
        "courseid": "int null (example course)",
        "state": "int null (state of example)",
        "scheduleid": "int null (id in schedule context)",
        "courseshortname": "text null (shortname of example course)",
        "coursefullname": "text null (full name of example course)",
        "exampletaxonomies": "text null (taxonomies seperated by comma)",
        "exampletaxids": "text null (taxids seperated by comma)",
        "source": "text null (tag where the material comes from)",
        "timeframe": "text null (timeframe, suggested time)"
    },
    "..."
]

dakora_get_examples_trash

get examples for trash bin Get examples for trash
type: read
Params:
courseid int null required id of course
userid int null required id of user, if 0 current user
Returns:
[
    {
        "exampleid": "int null (id of example)",
        "title": "text null (title of example)",
        "student_evaluation": "int null (self evaluation of student)",
        "teacher_evaluation": "int null (evaluation of teacher)",
        "evalniveauid": "int null (evaluation niveau id)",
        "courseid": "int null (example course)",
        "state": "int null (state of example)",
        "scheduleid": "int null (id in schedule context)",
        "courseshortname": "text null (shortname of example course)",
        "coursefullname": "text null (full name of example course)",
        "source": "text null (tag where the material comes from)"
    },
    "..."
]

dakora_set_example_time_slot

set start and end time for example set example time slot
type: write
Params:
scheduleid int null required id in schedule context
start int null required start timestamp
end int null required end timestamp
deleted int null required delete item
Returns:
{
    "timeremaining": "text null (time planned minus timeframe = timeremaining)",
    "timeplanned": "text null (time planned )",
    "timesuggested": "text null (timeframe)",
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_remove_example_from_schedule

remove example from weekly schedule remove example from time slot
type: write
Params:
scheduleid int null required id of schedule entry
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_add_examples_to_schedule_for_all

add examples to the schedules of all course students remove example from time slot
type: write
Params:
courseid int null required id of course
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_get_examples_for_time_slot

get examples for a special start to end period (e.g. day) Get examples for time slot
type: read
Params:
userid int null required id of user, if 0 current user
start int null required start timestamp
end int null required end timestamp
Returns:
[
    {
        "exampleid": "int null (id of example)",
        "title": "text null (title of example)",
        "start": "int null (start of event)",
        "end": "int null (end of event)",
        "timeframe": "text null (timeframe)",
        "student_evaluation": "int null (self evaluation of student)",
        "teacher_evaluation": "int null (evaluation of teacher)",
        "evalniveauid": "int null (evaluation niveau id)",
        "courseid": "int null (example course)",
        "state": "int null (state of example)",
        "scheduleid": "int null (id in schedule context)",
        "courseshortname": "text null (shortname of example course)",
        "coursefullname": "text null (full name of example course)",
        "exampletaxonomies": "text null (taxonomies seperated by comma)",
        "exampletaxids": "text null (taxids seperated by comma)",
        "source": "text null (tag where the material comes from)",
        "schedule_marker": "text null (tag for the marker on the material in the weekly schedule)",
        "editable": "bool null (for blocking events: show if editable)"
    },
    "..."
]

dakora_get_cross_subjects_by_course

get cross subjects for an user in course context (allways all crosssubjs, even if not associated) Get cross subjects
type: read
Params:
courseid int null required id of course
userid int null required id of user, if 0 current user
forall bool null required for all users = true, for one user = false
Returns:
[
    {
        "id": "int null (id of cross subject)",
        "title": "text null (title of cross subject)",
        "description": "text null (description of cross subject)",
        "subjectid": "int null (subject id, cross subject is associated with)",
        "visible": "int null (visibility of crosssubject for selected student)",
        "groupcategory": "text null (name of groupcategory)",
        "hasmaterial": "bool null (true or false if crosssubject has material)",
        "examples": [
            {
                "exampleid": "int null (id of example)",
                "exampletitle": "text null (title of example)",
                "examplestate": "int null (state of example, always 0 if for all students)",
                "visible": "int null (visibility of example in current context)",
                "used": "int null (used in current context)",
                "teacherevaluation": "int null (example evaluation of teacher)",
                "studentevaluation": "int null (example evaluation of student)",
                "timestampteacher": "int null (timestamp of teacher evaluation)",
                "timestampstudent": "int null (timestamp of student evaluation)",
                "evalniveauid": "int null (evaluation niveau id)",
                "solution_visible": "bool null (visibility for example solution in current context)"
            },
            "..."
        ],
        "additionalinfo": "float null (additional grading)",
        "teacherevaluation": "int null (grading of child)",
        "evalniveauid": "int null (evaluation niveau id)",
        "timestampteacher": "int null (timestamp of teacher evaluation)",
        "studentevaluation": "int null (self evaluation of child)",
        "timestampstudent": "int null (timestamp of student evaluation)"
    },
    "..."
]

dakora_get_descriptors_by_cross_subject

get descriptors for a cross subject associated with examples Get cross subjects
type: read
Params:
courseid int null required id of course
crosssubjid int null required id of cross subject
userid int null required id of user, if 0 current user
forall bool null required for all users = true, for one user = false
Returns:
[
    {
        "descriptorid": "int null (id of descriptor)",
        "descriptortitle": "text null (title of descriptor)",
        "numbering": "text null (numbering for descriptor)",
        "niveautitle": "text null (title of nivaue)",
        "niveauid": "int null (id of niveau)",
        "visible": "int null (visibility of example in current context)",
        "used": "int null (used in current context)"
    },
    "..."
]

dakora_get_all_descriptors_by_cross_subject

get descriptors for a cross subject Get cross subjects
type: read
Params:
courseid int null required id of course
crosssubjid int null required id of cross subject
userid int null required id of user, if 0 current user
forall bool null required for all users = true, for one user = false
Returns:
[
    {
        "descriptorid": "int null (id of descriptor)",
        "descriptortitle": "text null (title of descriptor)",
        "numbering": "text null (numbering for descriptor)",
        "niveautitle": "text null (title of nivaue)",
        "niveauid": "int null (id of niveau)",
        "visible": "int null (visibility of example in current context)",
        "used": "int null (used in current context)"
    },
    "..."
]

dakora_get_descriptor_children_for_cross_subject

get children in context of cross subject, associated with examples get children for descriptor in cross subject context
type: read
Params:
courseid int null required id of course
descriptorid int null required id of parent descriptor
userid int null required id of user, 0 for current user
forall bool null required for all users = true, for one user = false
crosssubjid int null required id of cross subject
Returns:
{
    "children": [
        {
            "descriptorid": "int null (id of child)",
            "descriptortitle": "text null (title of child)",
            "numbering": "text null (numbering for child)",
            "teacherevaluation": "int null (grading of children)",
            "evalniveauid": "int null (evaluation niveau id)",
            "timestampteacher": "int null (timestamp of teacher evaluation)",
            "studentevaluation": "int null (self evaluation of children)",
            "timestampstudent": "int null (timestamp of student evaluation)",
            "examplestotal": "int null (total number of material)",
            "examplesvisible": "int null (visible number of material)",
            "examplesinwork": "int null (edited number of material)",
            "visible": "int null (visibility of child in current context)",
            "used": "int null (used in current context)"
        },
        "..."
    ],
    "examples": [
        {
            "exampleid": "int null (id of example)",
            "exampletitle": "text null (title of example)",
            "examplestate": "int null (state of example, always 0 if for all students)",
            "visible": "int null (visibility of example in current context)",
            "used": "int null (used in current context)"
        },
        "..."
    ],
    "examplestotal": "int null (number of total examples)",
    "examplesvisible": "int null (number of visible examples)",
    "examplesinwork": "int null (number of examples in work)"
}

dakora_get_all_descriptor_children_for_cross_subject

get children in context of cross subject get children for descriptor in cross subject context
type: read
Params:
courseid int null required id of course
descriptorid int null required id of parent descriptor
userid int null required id of user, 0 for current user
forall bool null required for all users = true, for one user = false
crosssubjid int null required id of cross subject
Returns:
{
    "children": [
        {
            "descriptorid": "int null (id of child)",
            "descriptortitle": "text null (title of child)",
            "numbering": "text null (numbering for child)",
            "teacherevaluation": "int null (grading of children)",
            "evalniveauid": "int null (evaluation niveau id)",
            "timestampteacher": "int null (timestamp of teacher evaluation)",
            "studentevaluation": "int null (self evaluation of children)",
            "timestampstudent": "int null (timestamp of student evaluation)",
            "hasmaterial": "bool null (true or false if child has materials)",
            "examplestotal": "int null (total number of material)",
            "examplesvisible": "int null (visible number of material)",
            "examplesinwork": "int null (edited number of material)",
            "visible": "int null (visibility of children in current context)",
            "used": "int null (used in current context)"
        },
        "..."
    ],
    "examples": [
        {
            "exampleid": "int null (id of example)",
            "exampletitle": "text null (title of example)",
            "examplestate": "int null (state of example, always 0 if for all students)",
            "visible": "int null (visibility of example in current context)",
            "used": "int null (used in current context)"
        },
        "..."
    ],
    "examplestotal": "int null (number of total examples)",
    "examplesvisible": "int null (number of visible examples)",
    "examplesinwork": "int null (number of examples in work)"
}

dakora_get_schedule_config

get configuration options for schedule units get children for descriptor in cross subject context
type: read
Params:
Returns:
{
    "units": "int null (number of units per day)",
    "interval": "text null (duration of unit in minutes)",
    "begin": "text null (begin time for the first unit, format hh:mm)",
    "periods": [
        {
            "title": "text null (id of example)"
        },
        "..."
    ]
}

dakora_get_pre_planning_storage_examples

get examples for pre planning storage get pre planning storage examples for current teacher
type: read
Params:
courseid int null required id of course
Returns:
[
    {
        "exampleid": "int null (id of example)",
        "title": "text null (title of example)",
        "courseid": "int null (example course)",
        "state": "int null (state of example)",
        "scheduleid": "int null (id in schedule context)"
    },
    "..."
]

dakora_get_pre_planning_storage_students

get students for pre planning storage get pre planning storage students for current teacher
type: read
Params:
courseid int null required id of course
Returns:
[
    {
        "studentid": "int null (id of student)",
        "firstname": "text null (firstname of student)",
        "lastname": "text null (lastname of student)",
        "has_examples": "bool null (already has examples from current pre planning storage)"
    },
    "..."
]

dakora_get_pre_planning_storage_groups

get students for pre planning storage get pre planning storage students for current teacher
type: read
Params:
courseid int null required id of course
Returns:
[
    {
        "id": "int null (id of group)",
        "name": "text null (name of group)",
        "has_examples": "bool null (already has examples from current pre planning storage)"
    },
    "..."
]

dakora_has_items_in_pre_planning_storage

return 0 if no items, 1 otherwise get pre planning storage students for current teacher
type: read
Params:
courseid int null required id of course
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_empty_pre_planning_storage

delte all items from current pre planning storage empty pre planning storage for current teacher
type: write
Params:
courseid int null required id of course
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_add_example_to_pre_planning_storage

add example to current pre planning storage add example to current pre planning storage
type: write
Params:
courseid int null required id of course
exampleid int null required id of example
Returns:
{
    "success": "bool null (status of success)"
}

dakora_add_examples_to_students_schedule

add examples from current pre planning storage to students weekly schedule add example to current pre planning storage
type: write
Params:
courseid int null required id of course
examples text null required json array of examples
students text null required json array of students
groups text null optional default: string(0) "" json array of groups
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_add_examples_to_selected_students_schedule

add examples from current pre planning storage to students weekly schedule add example to current pre planning storage
type: write
Params:
courseid int null required id of course
students text null required json array of students
groups text null optional default: string(0) "" json array of groups
distributionid text null optional default: NULL distribution id. used for undo button
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_delete_examples_from_schedule

remove example from weekly schedule by teacherid and distribution id used for 'undo' button
type: write
Params:
teacherid int null required id of teacher
distributionid int null required distribution id
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_undo_examples_from_schedule

remove example from weekly schedule by teacherid and distribution id used for 'undo' button
type: write
Params:
teacherid int null required id of teacher
distributionid int null required distribution id
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_submit_example

submit example solution Add student submission to example.
type: write
Params:
exampleid int null required exampleid
studentvalue int null optional default: int(-1) studentvalue for grading
url url null required url
filenames text null required filenames, separated by comma, used to look up files and create a new ones in the exaport file area
studentcomment text null required studentcomment
itemid int null required itemid (<=0 for insert, >0 for update)
courseid int null required courseid
fileitemids text null required fileitemids separated by comma
Returns:
{
    "success": "bool null (status)",
    "itemid": "int null (itemid)"
}

diggrplus_submit_item

Add studentsubmission (exaportitem) to topic, descriptor or example
type: write
Params:
compid int null required id of topic/example
studentvalue int null optional default: int(-1) studentvalue for grading
url url null required url
filenames text null required filenames, separated by comma, used to look up files and create a new ones in the exaport file area
studentcomment text null required studentcomment
fileitemids text null required fileitemids separated by comma, used to look up file and create a new one in the exaport file area
itemid int null required itemid (0 for insert, >0 for update)
courseid int null required courseid
comptype int null required comptype (example, topic, descriptor)
itemtitle text null optional default: string(0) "" name of the item (for examples, the exampletitle is fitting, but for topics, using the topic would not be very useful
collabuserids text null optional default: string(0) "" userids of collaborators separated by comma
submit int null optional default: int(0) 1 for submitting definitely (submitted), 0 for only creating/updating the item (inprogress)
removefiles text null required fileindizes/pathnamehashes of the files that should be removed, separated by comma
solutiondescription text null required description of what the student has done
descriptorgradings not null required descriptors and gradingds
Returns:
{
    "success": "bool null (status)",
    "itemid": "int null (itemid)"
}

diggrplus_submit_item_comment

Add studentsubmission (exaportitem) to topic, descriptor or example
type: write
Params:
itemid int null required id of item
comment text null required comment text
Returns:
{
    "success": "bool null (status)",
    "itemid": "int null (itemid)"
}

diggrplus_get_item_comments

Add studentsubmission (exaportitem) to topic, descriptor or example
type: write
Params:
itemid int null required id of item
Returns:
[
    {
        "id": "int null (commentid)",
        "userid": "int null (userid)",
        "fullname": "text null (fullname of user)",
        "comment": "text null (commenttext)",
        "timemodified": "int null (timemodified)"
    },
    "..."
]

diggrplus_get_examples_and_items

Get Items get all items AND examples for a competence they will be returned in one array, even though their fields may vary, but it makes ordering according to filters easier for the backend
type: read
Params:
userid int null required id of user
compid int null required id of subject(3)/topic(1)/descriptor(0)/example(4) if <= 0 then show all items for user
comptype int null required Type of competence: subject/topic/descriptor/example if <= 0 then show all items for user
type text null optional default: string(0) "" examples, own_items or empty
search text null optional default: string(0) "" search string
niveauid int null optional default: int(-1) niveauid normally stands for "LFS1, LFS2 ect
status text null optional default: string(0) "" new, inprogress, submitted, completed. acts as a filter
Returns:
[
    {
        "courseid": "int null ()",
        "status": "text null (new, inprogress, submitted, completed)",
        "subjectid": "int null (id of subject)",
        "subjecttitle": "text null (title of subject)",
        "topicid": "int null (id of topic)",
        "topictitle": "text null (title of topic)",
        "niveautitle": "text null (title of niveau)",
        "niveauid": "int null (id of niveau)",
        "timemodified": "int null (time the item was last modified --> not gradings, but only changes to the item (files, comments, name, collaborators))",
        "example": {
            "id": "int null (id of example)",
            "title": "text null (title of example)",
            "description": "text null (description of example)",
            "solutionfilename": "text null (task filename)",
            "externalurl": "text null (externalurl of example)",
            "externaltask": "text null (url of associated module)",
            "solution": "text null (solution(url\/description) of example)",
            "timeframe": "text null (timeframe as string)",
            "hassubmissions": "bool null (true if example has already submissions)",
            "solution_visible": "bool null (visibility for example solution in current context)",
            "taskfiles": [
                {
                    "name": "text null (title of taskfile)",
                    "url": "url null (file url)",
                    "type": "text null (mime type for file)"
                },
                "... taskfiles of the example ..."
            ],
            "teacher_evaluation": "int null (teacher_evaluation)",
            "student_evaluation": "int null (student_evaluation)"
        },
        "item": {
            "id": "int null (id of item )",
            "name": "text null (title of item)",
            "solutiondescription": "text null (description of item)",
            "type": "text null (type of item (note,file,link))",
            "url": "text null (url)",
            "effort": "raw null (description of the effort)",
            "teachervalue": "int null (teacher grading)",
            "studentvalue": "int null (student grading)",
            "teachercomment": "text null (teacher comment)",
            "studentcomment": "text null (student comment)",
            "owner": {
                "userid": "int null ()",
                "fullname": "text null ()",
                "profileimageurl": "text null ()"
            },
            "studentfiles": [
                {
                    "id": "int null (id)",
                    "filename": "text null (filename)",
                    "file": "url null (file url)",
                    "mimetype": "text null (mime type for file)",
                    "fileindex": "text null (fileindex, used for deleting this file)"
                },
                "... files of the student's submission ..."
            ],
            "collaborators": [
                {
                    "userid": "int null (userid of collaborator)",
                    "fullname": "text null ()",
                    "profileimageurl": "text null ()"
                },
                "... collaborators ..."
            ]
        }
    },
    "..."
]

diggrplus_get_teacher_examples_and_items

Get Items get all items AND examples for a competence they will be returned in one array, even though their fields may vary, but it makes ordering according to filters easier for the backend
type: read
Params:
courseid int null required
studentid int null required
compid int null required id of topic/descriptor/example if <= 0 then show all items for user
comptype int null required Type of competence: topic/descriptor/example if <= 0 then show all items for user
type text null optional default: string(0) "" examples, own_items or empty
search text null optional default: string(0) "" search string
niveauid int null optional default: int(-1) niveauid normally stands for "LFS1, LFS2 ect
status text null optional default: string(0) "" new, inprogress, submitted, completed. acts as a filter
Returns:
[
    {
        "courseid": "int null ()",
        "status": "text null (new, inprogress, submitted, completed)",
        "subjectid": "int null (id of subject)",
        "subjecttitle": "text null (title of subject)",
        "topicid": "int null (id of topic)",
        "topictitle": "text null (title of topic)",
        "niveautitle": "text null (title of niveau)",
        "niveauid": "int null (id of niveau)",
        "timemodified": "int null (time the item was last modified --> not gradings, but only changes to the item (files, comments, name, collaborators))",
        "example": {
            "id": "int null (id of example)",
            "title": "text null (title of example)",
            "description": "text null (description of example)",
            "solutionfilename": "text null (task filename)",
            "externalurl": "text null (externalurl of example)",
            "externaltask": "text null (url of associated module)",
            "solution": "text null (solution(url\/description) of example)",
            "timeframe": "text null (timeframe as string)",
            "hassubmissions": "bool null (true if example has already submissions)",
            "solution_visible": "bool null (visibility for example solution in current context)",
            "taskfiles": [
                {
                    "name": "text null (title of taskfile)",
                    "url": "url null (file url)",
                    "type": "text null (mime type for file)"
                },
                "... taskfiles of the example ..."
            ],
            "teacher_evaluation": "int null (teacher_evaluation)",
            "student_evaluation": "int null (student_evaluation)"
        },
        "item": {
            "id": "int null (id of item )",
            "name": "text null (title of item)",
            "solutiondescription": "text null (description of item)",
            "type": "text null (type of item (note,file,link))",
            "url": "text null (url)",
            "effort": "raw null (description of the effort)",
            "teachervalue": "int null (teacher grading)",
            "studentvalue": "int null (student grading)",
            "teachercomment": "text null (teacher comment)",
            "studentcomment": "text null (student comment)",
            "owner": {
                "userid": "int null ()",
                "fullname": "text null ()",
                "profileimageurl": "text null ()"
            },
            "studentfiles": [
                {
                    "id": "int null (id)",
                    "filename": "text null (filename)",
                    "file": "url null (file url)",
                    "mimetype": "text null (mime type for file)",
                    "fileindex": "text null (fileindex, used for deleting this file)"
                },
                "... files of the student's submission ..."
            ],
            "collaborators": [
                {
                    "userid": "int null (userid of collaborator)",
                    "fullname": "text null ()",
                    "profileimageurl": "text null ()"
                },
                "... collaborators ..."
            ]
        }
    },
    "..."
]

diggrplus_get_all_subjects_for_course_as_tree

Get Subjects get subjects from one user for one course
type: read
Params:
userid int null required id of user
courseid int null required id of course
Returns:
[
    {
        "id": "int null (id of subject)",
        "title": "text null (title of subject)",
        "courseid": "int null (id of course)",
        "courseshortname": "text null (courseshortname)",
        "coursefullname": "text null (coursefullname)",
        "topics": [
            {
                "id": "int null (id of example)",
                "title": "text null (title of topic)",
                "visible": "bool null (visibility of topic in current context )",
                "used": "bool null (if topic is used)",
                "descriptors": [
                    {
                        "id": "int null (id of example)",
                        "title": "text null (title of descriptor)",
                        "visible": "bool null (visibility of descriptor in current context )",
                        "used": "bool null (if descriptor is used)",
                        "childdescriptors": [
                            {
                                "id": "int null (id of example)",
                                "title": "text null (title of example)",
                                "visible": "bool null (visibility of descriptor in current context )",
                                "used": "bool null (if descriptor is used)",
                                "examples": [
                                    {
                                        "id": "int null (id of example)",
                                        "title": "text null (title of example)",
                                        "creatorid": "int null (creator of this example)",
                                        "visible": "bool null (visibility of example in current context )"
                                    },
                                    "..."
                                ]
                            },
                            "..."
                        ],
                        "examples": [
                            {
                                "id": "int null (id of example)",
                                "title": "text null (title of example)",
                                "creatorid": "int null (creator of this example)",
                                "visible": "bool null (visibility of example in current context )"
                            },
                            "..."
                        ]
                    },
                    "..."
                ]
            },
            "..."
        ]
    },
    "..."
]

diggrplus_request_external_file

Load a file from an external Domain to prevent CORS when loading directly in the App
type: read
Params:
url url null required
Returns:
"file null ()"

diggrplus_grade_item

type: write
Params:
itemid int null required
teachervalue int null optional default: int(-1) teacher grading of the item, -1 if none (leads to status "submitted" instead of "completed"
descriptorgradings not null required descriptors and gradingds
Returns:
{
    "success": "bool null (true if grading was successful)"
}

diggrplus_get_competence_profile_statistic

Get competence statistic for profile
type: read
Params:
courseid int null optional default: int(0)
userid int null optional default: int(0)
Returns:
{
    "items_and_examples_total": "int null (number of free items + examples)",
    "items_and_examples_completed": "int null (number of solved items, those items can be free or related to an example)",
    "competencies_total": "int null ()",
    "competencies_gained": "int null ()"
}

diggrplus_get_descriptors_for_example

get descriptors where example is associated Get descriptors for example
type: read
Params:
exampleid int null required id of example
courseid int null required id of course
userid int null required id of user
forall bool null required for all users = true, for one user = false
Returns:
[
    {
        "descriptorid": "int null (id of descriptor)",
        "title": "text null (title of descriptor)",
        "teacherevaluation": "int null (evaluation of descriptor)",
        "studentevaluation": "int null (student evaluation of descriptor)",
        "evalniveauid": "int null (evaluation niveau id)",
        "niveauid": "int null (id of niveau)",
        "additionalinfo": "float null (additional grading for descriptor)",
        "topicid": "int null (id of topic)",
        "numbering": "text null (descriptor numbering)",
        "child": "bool null (true: child, false: parent)",
        "parentid": "int null (parentid if child, 0 otherwise)",
        "gradingisold": "bool null (true when there are newer gradings in the childcompetences)",
        "reviewerid": "int null (id of reviewer)",
        "reviewername": "text null (name of reviewer)"
    },
    "..."
]

dakora_grade_example

grade example solution Add student submission to example.
type: write
Params:
userid int null required userid
courseid int null required courseid
exampleid int null required exampleid
examplevalue int null required examplevalue
additionalinfo float null required additionalInfo
exampleevalniveauid int null required example evaluation niveau id
itemid int null optional default: int(-1) itemid
comment text null optional default: string(0) "" comment
url url null optional default: string(0) "" url
filename text null optional default: string(0) "" filename, used to look up file and create a new one in the exaport comment file area
fileitemid text null optional default: string(0) "" fileitemid
Returns:
{
    "success": "bool null (status)",
    "exampleid": "int null (exampleid)"
}

dakora_get_descriptors_details

get descriptor details incl. grading and children for many descriptors
type: read
Params:
courseid int null required courseid
descriptorids text null required list of descriptors, seperated by comma
userid int null required userid
forall bool null required forall
crosssubjid int null required crosssubjid
Returns:
[
    {
        "reviewerid": "int null (id of reviewer)",
        "reviewername": "text null (name of reviewer)",
        "descriptorid": "int null (id of descriptor)",
        "parentid": "int null (id of parent of descriptor)",
        "descriptortitle": "text null (title of descriptor)",
        "teacherevaluation": "int null (teacher evaluation of descriptor)",
        "studentevaluation": "int null (student evaluation of descriptor)",
        "additionalinfo": "float null (additional grading for descriptor)",
        "timestampteacher": "int null (timestamp for teacher evaluation)",
        "timestampstudent": "int null (timestamp for student evaluation)",
        "evalniveauid": "int null (evaluation niveau id)",
        "numbering": "text null (numbering)",
        "categories": "text null (descriptor categories seperated by comma)",
        "niveauid": "int null (id of niveau)",
        "niveautitle": "text null (title of niveau)",
        "gradingisold": "bool null (true when there are newer gradings in the childcompetences)",
        "globalgradings": "raw null (Globalgradings as text)",
        "gradinghistory": "raw null (Gradinghistory as text)",
        "hasmaterial": "bool null (true or false if descriptor has material)",
        "children": [
            {
                "reviewerid": "int null (id of reviewer)",
                "reviewername": "text null (name of reviewer)",
                "descriptorid": "int null (id of descriptor)",
                "parentid": "int null (id of parent of descriptor)",
                "descriptortitle": "text null (title of descriptor)",
                "teacherevaluation": "int null (teacher evaluation of descriptor)",
                "additionalinfo": "float null (additional grading for descriptor)",
                "evalniveauid": "int null (evaluation niveau id)",
                "timestampteacher": "int null (timestamp of teacher evaluation)",
                "studentevaluation": "int null (student evaluation of descriptor)",
                "timestampstudent": "int null (timestamp of student evaluation)",
                "numbering": "text null (numbering)",
                "globalgradings": "raw null (Globalgradings as text)",
                "gradinghistory": "raw null (Gradinghistory as text)",
                "hasmaterial": "bool null (true or false if descriptor has material)",
                "examples": [
                    {
                        "exampleid": "int null (id of example)",
                        "exampletitle": "text null (title of example)",
                        "examplestate": "int null (state of example, always 0 if for all students)",
                        "visible": "int null (visibility of example in current context)",
                        "used": "int null (used in current context)",
                        "teacherevaluation": "int null (example evaluation of teacher)",
                        "studentevaluation": "int null (example evaluation of student)",
                        "timestampteacher": "int null (timestamp of teacher evaluation)",
                        "timestampstudent": "int null (timestamp of student evaluation)",
                        "evalniveauid": "int null (evaluation niveau id)",
                        "solution_visible": "bool null (visibility for example solution in current context)",
                        "exampletaxonomies": "text null (taxonomies seperated by comma)",
                        "exampletaxids": "text null (taxids seperated by comma)",
                        "examplecreatorid": "int null (id of the creator of this example)",
                        "additionalinfo": "float null (additional grading)",
                        "resubmission": "bool null (resubmission is allowed\/not allowed)",
                        "is_teacherexample": "bool null (is a teacher example?)"
                    },
                    "..."
                ],
                "examplestotal": "int null (total number of material)",
                "examplesvisible": "int null (visible number of material)",
                "examplesinwork": "int null (number of material in work)",
                "visible": "int null (visibility of children in current context)",
                "used": "int null (used in current context)",
                "examplesedited": "int null (number of edited material)",
                "examplegradings": {
                    "teacher": [
                        {
                            "evalniveauid": "int null (niveau id to according number)",
                            "value": "int null (grading value)",
                            "sum": "int null (number of gradings)"
                        },
                        "..."
                    ],
                    "student": [
                        {
                            "sum": "int null (number of gradings)"
                        },
                        "..."
                    ]
                }
            },
            "..."
        ],
        "childrengradings": {
            "teacher": [
                {
                    "evalniveauid": "int null (niveau id to according number)",
                    "value": "int null (grading value)",
                    "sum": "int null (number of gradings)"
                },
                "..."
            ],
            "student": [
                {
                    "sum": "int null (number of gradings)"
                },
                "..."
            ]
        },
        "examples": [
            {
                "exampleid": "int null (id of example)",
                "exampletitle": "text null (title of example)",
                "examplestate": "int null (state of example, always 0 if for all students)",
                "visible": "int null (visibility of example in current context)",
                "used": "int null (used in current context)",
                "teacherevaluation": "int null (example evaluation of teacher)",
                "studentevaluation": "int null (example evaluation of student)",
                "evalniveauid": "int null (evaluation niveau id)",
                "timestampteacher": "int null (timestamp of teacher evaluation)",
                "timestampstudent": "int null (timestamp of student evaluation)",
                "solution_visible": "bool null (visibility for example solution in current context)",
                "exampletaxonomies": "text null (taxonomies seperated by comma)",
                "exampletaxids": "text null (taxids seperated by comma)",
                "examplecreatorid": "int null (id of the creator of this example)",
                "additionalinfo": "float null (additional grading)",
                "resubmission": "bool null (resubmission is allowed\/not allowed)",
                "is_teacherexample": "bool null (is a teacher example?)"
            },
            "..."
        ],
        "examplestotal": "int null (total number of material)",
        "examplesvisible": "int null (visible number of material)",
        "examplesinwork": "int null (number of material in work)",
        "examplesedited": "int null (number of edited material)",
        "examplegradings": {
            "teacher": [
                {
                    "evalniveauid": "int null (niveau id to according number)",
                    "value": "int null (grading value)",
                    "sum": "int null (number of gradings)"
                },
                "..."
            ],
            "student": [
                {
                    "sum": "int null (number of gradings)"
                },
                "..."
            ]
        },
        "visible": "int null (visibility of example in current context)",
        "used": "int null (used in current context)"
    },
    "..."
]

dakora_get_descriptor_details

get descriptor details incl. grading and children
type: read
Params:
courseid int null required courseid
descriptorid int null required descriptorid
userid int null required userid
forall bool null required forall
crosssubjid int null required crosssubjid
Returns:
{
    "reviewerid": "int null (id of reviewer)",
    "reviewername": "text null (name of reviewer)",
    "descriptorid": "int null (id of descriptor)",
    "parentid": "int null (id of parent of descriptor)",
    "descriptortitle": "text null (title of descriptor)",
    "teacherevaluation": "int null (teacher evaluation of descriptor)",
    "studentevaluation": "int null (student evaluation of descriptor)",
    "additionalinfo": "float null (additional grading for descriptor)",
    "timestampteacher": "int null (timestamp for teacher evaluation)",
    "timestampstudent": "int null (timestamp for student evaluation)",
    "evalniveauid": "int null (evaluation niveau id)",
    "numbering": "text null (numbering)",
    "categories": "text null (descriptor categories seperated by comma)",
    "niveauid": "int null (id of niveau)",
    "niveautitle": "text null (title of niveau)",
    "gradingisold": "bool null (true when there are newer gradings in the childcompetences)",
    "hasmaterial": "bool null (true or false if descriptor has material)",
    "children": [
        {
            "reviewerid": "int null (id of reviewer)",
            "reviewername": "text null (name of reviewer)",
            "descriptorid": "int null (id of descriptor)",
            "parentid": "int null (id of parent of descriptor)",
            "descriptortitle": "text null (title of descriptor)",
            "teacherevaluation": "int null (teacher evaluation of descriptor)",
            "additionalinfo": "float null (additional grading for descriptor)",
            "evalniveauid": "int null (evaluation niveau id)",
            "timestampteacher": "int null (timestamp of teacher evaluation)",
            "studentevaluation": "int null (student evaluation of descriptor)",
            "timestampstudent": "int null (timestamp of student evaluation)",
            "numbering": "text null (numbering)",
            "hasmaterial": "bool null (true or false if descriptor has material)",
            "globalgradings": "raw null (Globalgradings as text)",
            "gradinghistory": "raw null (Gradinghistory as text)",
            "examples": [
                {
                    "exampleid": "int null (id of example)",
                    "exampletitle": "raw null (title of example)",
                    "examplestate": "int null (state of example, always 0 if for all students)",
                    "visible": "int null (visibility of example in current context)",
                    "used": "int null (used in current context)",
                    "teacherevaluation": "int null (example evaluation of teacher)",
                    "studentevaluation": "int null (example evaluation of student)",
                    "timestampteacher": "int null (timestamp of teacher evaluation)",
                    "timestampstudent": "int null (timestamp of student evaluation)",
                    "evalniveauid": "int null (evaluation niveau id)",
                    "solution_visible": "bool null (visibility for example solution in current context)",
                    "exampletaxonomies": "text null (taxonomies seperated by comma)",
                    "exampletaxids": "text null (taxids seperated by comma)",
                    "examplecreatorid": "int null (id of the creator of this example)",
                    "additionalinfo": "float null (additional grading)",
                    "resubmission": "bool null (resubmission is allowed\/not allowed)",
                    "is_teacherexample": "bool null (is a teacher example?)"
                },
                "..."
            ],
            "examplestotal": "int null (total number of material)",
            "examplesvisible": "int null (visible number of material)",
            "examplesinwork": "int null (number of material in work)",
            "visible": "int null (visibility of children in current context)",
            "used": "int null (used in current context)",
            "examplesedited": "int null (number of edited material)",
            "examplegradings": {
                "teacher": [
                    {
                        "evalniveauid": "int null (niveau id to according number)",
                        "value": "int null (grading value)",
                        "sum": "int null (number of gradings)"
                    },
                    "..."
                ],
                "student": [
                    {
                        "sum": "int null (number of gradings)"
                    },
                    "..."
                ]
            }
        },
        "..."
    ],
    "childrengradings": {
        "teacher": [
            {
                "evalniveauid": "int null (niveau id to according number)",
                "value": "int null (grading value)",
                "sum": "int null (number of gradings)"
            },
            "..."
        ],
        "student": [
            {
                "sum": "int null (number of gradings)"
            },
            "..."
        ]
    },
    "examples": [
        {
            "exampleid": "int null (id of example)",
            "exampletitle": "raw null (title of example)",
            "examplestate": "int null (state of example, always 0 if for all students)",
            "visible": "int null (visibility of example in current context)",
            "used": "int null (used in current context)",
            "teacherevaluation": "int null (example evaluation of teacher)",
            "studentevaluation": "int null (example evaluation of student)",
            "evalniveauid": "int null (evaluation niveau id)",
            "timestampteacher": "int null (timestamp of teacher evaluation)",
            "timestampstudent": "int null (timestamp of student evaluation)",
            "solution_visible": "bool null (visibility for example solution in current context)",
            "exampletaxonomies": "text null (taxonomies seperated by comma)",
            "exampletaxids": "text null (taxids seperated by comma)",
            "examplecreatorid": "int null (id of the creator of this example)",
            "additionalinfo": "float null (additional grading)",
            "resubmission": "bool null (resubmission is allowed\/not allowed)",
            "is_teacherexample": "bool null (is a teacher example?)"
        },
        "..."
    ],
    "examplestotal": "int null (total number of material)",
    "examplesvisible": "int null (visible number of material)",
    "examplesinwork": "int null (number of material in work)",
    "examplesedited": "int null (number of edited material)",
    "examplegradings": {
        "teacher": [
            {
                "evalniveauid": "int null (niveau id to according number)",
                "value": "int null (grading value)",
                "sum": "int null (number of gradings)"
            },
            "..."
        ],
        "student": [
            {
                "sum": "int null (number of gradings)"
            },
            "..."
        ]
    },
    "visible": "int null (visibility of example in current context)",
    "used": "int null (used in current context)",
    "globalgradings": "raw null (Globalgradings as text)",
    "gradinghistory": "raw null (Gradinghistory as text)"
}

dakora_get_example_information

get information and submission for example get example with all submission details and gradings
type: read
Params:
courseid int null required id of course
userid int null required id of user
exampleid int null required id of example
Returns:
{
    "itemid": "int null (id of item)",
    "status": "int null (status of the submission (-1 == no submission; 0 == not graded; 1 == graded)",
    "name": "text null (title of item)",
    "type": "text null (type of item (note,file,link))",
    "url": "text null (url)",
    "teachervalue": "int null (teacher grading)",
    "teacherevaluation": "int null (teacher grading (double of teachervalue?))",
    "studentvalue": "int null (student grading)",
    "evalniveauid": "int null (evaluation niveau id)",
    "timestampteacher": "int null (timestamp for teacher evaluation)",
    "timestampstudent": "int null (timestamp for student evaluation)",
    "teachercomment": "text null (teacher comment)",
    "teacherfile": {
        "filename": "text null (title of item)",
        "file": "url null (file url)",
        "mimetype": "text null (mime type for file)",
        "fileindex": "text null (mime type for file)"
    },
    "studentcomment": "text null (student comment)",
    "teacheritemvalue": "int null (item teacher grading)",
    "resubmission": "bool null (resubmission is allowed\/not allowed)",
    "additionalinfo": "float null (additional grading)",
    "studentfiles": [
        {
            "filename": "text null (title of item)",
            "file": "url null (file url)",
            "mimetype": "text null (mime type for file)",
            "fileindex": "text null (mime type for file)"
        },
        "..."
    ],
    "activityid": "int null (activityid)",
    "activitytitle": "text null (activity title)",
    "activitytype": "text null (activity type - key for activity icons in Dakora)"
}

dakora_get_user_information

get information about current user get example with all submission details and gradings
type: read
Params:
Returns:
{
    "id": "int null (ID of the user)",
    "username": "raw null (The username)",
    "firstname": "notags null (The first name(s) of the user)",
    "lastname": "notags null (The family name of the user)",
    "fullname": "notags null (The fullname of the user)",
    "email": "text null (An email address - allow email as root@localhost)",
    "firstaccess": "int null (first access to the site (0 if never))",
    "lastaccess": "int null (last access to the site (0 if never))",
    "auth": "plugin null (Auth plugins include manual, ldap, imap, etc)",
    "confirmed": "int null (Active user: 1 if confirmed, 0 otherwise)",
    "lang": "safedir null (Language code such as \"en\", must exist on server)",
    "url": "url null (URL of the user)",
    "profileimageurlsmall": "url null (User image profile URL - small version)",
    "profileimageurl": "url null (User image profile URL - big version)",
    "exarole": "int null (1=trainer, 2=student)"
}

dakora_get_lang_information

Returns lang information from exacomp
type: read
Params:
lang text null required language
Returns:
[
    {
        "stringid": "text null (key for the lang string)",
        "master": "text null (lang string in the chosen language)"
    },
    "..."
]

dakora_create_blocking_event

create a blocking event Create a new blocking event
type: write
Params:
courseid int null required id of course
title text null required title of new blocking event
description text null required description of new blocking event
timeframe text null required timeframe
externalurl url null required external url
userid int null required id of user
preplanningstorage bool null required in pre planning storage or for specific student
Returns:
{
    "success": "bool null (status)"
}

dakora_get_examples_by_descriptor_and_grading

returns examples for given descriptor and grading Create a new blocking event
type: read
Params:
courseid int null required id of course
userid int null required id of user
descriptorid text null required id of descriptor
grading int null required grading value
Returns:
[
    {
        "exampleid": "int null (id of topic)",
        "exampletitle": "text null (title of topic)"
    },
    "..."
]

dakora_allow_example_resubmission

allow student to resubmit example Create a new blocking event
type: read
Params:
courseid int null required id of course
userid int null required id of user
exampleid int null required id of example
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_get_competence_grid_for_profile

get grid for profile Get competence grid for profile
type: read
Params:
courseid int null required id of course
userid int null required id of user
subjectid int null optional default: int(-1) id of subject
crosssubjid int null optional default: int(-1) id of crosssubject
Returns:
{
    "teacher": {
        "crosssubjgrading": {
            "value": "float null (evaluation)",
            "additionalinfo": "float null (evaluation)",
            "evalniveauid": "float null (evaluation)"
        },
        "gridgradings": [
            {
                "title": "text null (title of table)",
                "rows": [
                    {
                        "columns": [
                            {
                                "text": "text null (cell text)",
                                "evaluation": "float null (evaluation)",
                                "evaluation_text": "text null (evaluation text)",
                                "evaluation_mapped": "int null (mapped evaluation)",
                                "evalniveauid": "int null (evaluation niveau id)",
                                "show": "bool null (show cell)",
                                "visible": "bool null (cell visibility)",
                                "topicid": "int null (topic id)",
                                "span": "int null (colspan)",
                                "timestamp": "int null (evaluation timestamp, 0 if not set)",
                                "gradingisold": "bool null (true when there are childdescriptors with newer gradings than the parentdescriptor)"
                            },
                            "..."
                        ]
                    },
                    "..."
                ]
            },
            "..."
        ]
    },
    "student": {
        "crosssubjgrading": {
            "value": "float null (evaluation)",
            "additionalinfo": "float null (evaluation)",
            "evalniveauid": "float null (evaluation)"
        },
        "gridgradings": [
            {
                "title": "text null (title of table)",
                "rows": [
                    {
                        "columns": [
                            {
                                "text": "text null (cell text)",
                                "evaluation": "float null (evaluation)",
                                "evaluation_text": "text null (evaluation text)",
                                "evaluation_mapped": "int null (mapped evaluation)",
                                "evalniveauid": "int null (evaluation niveau id)",
                                "show": "bool null (show cell)",
                                "visible": "bool null (cell visibility)",
                                "topicid": "int null (topic id)",
                                "span": "int null (colspan)",
                                "timestamp": "int null (evaluation timestamp, 0 if not set)",
                                "gradingisold": "bool null (true when there are childdescriptors with newer gradings than the parentdescriptor)"
                            },
                            "..."
                        ]
                    },
                    "..."
                ]
            },
            "..."
        ]
    },
    "globalcompetences": [
        {
            "title": "text null (title of table)",
            "rows": [
                {
                    "columns": [
                        {
                            "text": "text null (cell text)",
                            "evaluation": "float null (evaluation)",
                            "evaluation_text": "text null (evaluation text)",
                            "evaluation_mapped": "int null (mapped evaluation)",
                            "evalniveauid": "int null (evaluation niveau id)",
                            "show": "bool null (show cell)",
                            "visible": "bool null (cell visibility)",
                            "topicid": "int null (topic id)",
                            "span": "int null (colspan)",
                            "timestamp": "int null (evaluation timestamp, 0 if not set)",
                            "gradingisold": "bool null (true when there are childdescriptors with newer gradings than the parentdescriptor)"
                        },
                        "..."
                    ]
                },
                "..."
            ]
        },
        "..."
    ]
}

dakora_get_competence_profile_statistic

get statistic in user and subject context Get competence statistic for profile
type: read
Params:
courseid int null required id of course
userid int null required id of user
subjectid int null required id of subject
start_timestamp int null required start timestamp for evaluation range
end_timestamp int null required end timestamp for evaluation range
Returns:
{
    "descriptor_evaluations": {
        "niveaus": [
            {
                "id": "int null (evalniveauid)",
                "evaluations": [
                    {
                        "value": "int null (value of evaluation)",
                        "sum": "int null (sum of evaluations of current gradings)"
                    },
                    "..."
                ]
            },
            "..."
        ],
        "descriptorsToGain": "int null (maximum number of descripotrs\/competencies one can gain)"
    }
}

dakora_get_competence_profile_comparison

get list for student and teacher comparison Get competence comparison for profile
type: read
Params:
courseid int null required id of course
userid int null required id of user
topicid int null required id of subject
Returns:
{
    "descriptors": [
        {
            "descriptorid": "int null (descriptorid)",
            "title": "text null (title of descriptor)",
            "numbering": "text null (descriptor numbering)",
            "teacherevaluation": "int null (teacher evaluation)",
            "additionalinfo": "float null (additional grading of descriptor)",
            "evalniveauid": "int null (teacher evaluation niveau id)",
            "niveauid": "int null (niveau id (ger: lfs))",
            "timestampteacher": "int null (timestamp for teacher descriptor evaluation)",
            "studentevaluation": "int null (student evaluation)",
            "timestampstudent": "int null (timestamp for student descriptor evaluation)",
            "examples": [
                {
                    "example": "bool null (indicates if sub is example or grouping statement)",
                    "exampleid": "int null (id of example)",
                    "title": "text null (title of sub)",
                    "teacherevaluation": "int null (teacher evaluation)",
                    "evalniveauid": "int null (teacher evaluation niveau id)",
                    "timestampteacher": "int null (timestamp for teacher example evaluation)",
                    "studentevaluation": "int null (student evaluation)",
                    "timestampstudent": "int null (timestamp for student example evaluation)"
                },
                "..."
            ]
        },
        "..."
    ]
}

dakora_get_competence_profile_topic_statistic

get data for 3D graph Get competence statistic for topic in profile for 3D graph
type: read
Params:
courseid int null required id of course
userid int null required id of user
topicid int null required id of subject
start_timestamp int null required start timestamp for evaluation range
end_timestamp int null required end timestamp for evaluation range
Returns:
{
    "descriptor_evaluation": {
        "niveaus": [
            {
                "title": "text null (evalniveauid)",
                "teacherevaluation": "int null (evaluation value of current lfs)",
                "evalniveauid": "int null (evaluation niveau id)",
                "studentevaluation": "int null (student evaluation)"
            },
            "..."
        ]
    }
}

block_exacomp_is_elove_student_self_assessment_enabled

check the corresponding config setting
type: read
Params:
Returns:
{
    "enabled": "bool null ()"
}

dakora_get_site_policies

type: read
Params:
Returns:
[
    {
        "name": "text null (name)",
        "summary": "text null (summary)",
        "content": "text null (content)"
    },
    "..."
]

block_exacomp_diggr_create_cohort

Create one or more cohorts
type: write
Params:
name raw null required cohort name
skz raw null required school number
Returns:
{
    "cohortcode": "raw null (cohortcode)"
}

block_exacomp_diggr_get_students_of_cohort

Create one or more cohorts
type: read
Params:
cohortid raw null required cohort id
Returns:
{
    "cohortid": "int null (id of cohort)",
    "cohortcode": "text null (code of cohort)",
    "students": [
        {
            "userid": "int null (id of student)",
            "name": "text null (name of student)"
        },
        "..."
    ]
}

block_exacomp_diggr_get_cohorts_of_trainer

Create one or more cohorts
type: read
Params:
Returns:
{
    "cohorts": [
        {
            "cohortid": "int null (id of cohort)",
            "name": "text null (name of user)",
            "cohortcode": "text null (code of cohort)"
        },
        "..."
    ]
}

dakora_get_evaluation_config

get evaluation configuration get admin evaluation configurations
type: read
Params:
Returns:
{
    "use_evalniveau": "bool null (use evaluation niveaus)",
    "evalniveaus": {
        "1": "text null (evaluation title for id = 1)",
        "2": "text null (evaluation title for id = 2)",
        "3": "text null (evaluation title for id = 3)"
    },
    "values": [
        "text null (value title for id = 0)",
        "text null (value title for id = 1)",
        "text null (value title for id = 2)",
        "text null (value title for id = 3)"
    ]
}

dakora_get_config

type: read
Params:
Returns:
{
    "points_limit": "int null (points_limit)",
    "grade_limit": "int null (grade_limit)",
    "points_negative_threshold": "int null (points_negative_threshold. Values below this value are negative)",
    "grade_negative_threshold": "int null (grade_negative_threshold. Values below this value are negative)",
    "verbal_negative_threshold": "int null (grade_negative_threshold. Values below this value are negative)",
    "example_scheme": "int null (example_scheme)",
    "example_diffLevel": "bool null (example_diffLevel)",
    "example_SelfEval": "bool null (example_SelfEval)",
    "childcomp_scheme": "int null (childcomp_scheme)",
    "childcomp_diffLevel": "bool null (childcomp_diffLevel)",
    "childcomp_SelfEval": "bool null (childcomp_SelfEval)",
    "comp_scheme": "int null (comp_scheme)",
    "comp_diffLevel": "bool null (comp_diffLevel)",
    "comp_SelfEval": "bool null (comp_SelfEval)",
    "topic_scheme": "int null (topic_scheme)",
    "topic_diffLevel": "bool null (topic_diffLevel)",
    "topic_SelfEval": "bool null (topic_SelfEval)",
    "subject_scheme": "int null (subject_scheme)",
    "subject_diffLevel": "bool null (subject_diffLevel)",
    "subject_SelfEval": "bool null (subject_SelfEval)",
    "theme_scheme": "int null (theme_scheme)",
    "theme_diffLevel": "bool null (theme_diffLevel)",
    "theme_SelfEval": "bool null (theme_SelfEval)",
    "use_evalniveau": "bool null (use evaluation niveaus)",
    "evalniveaus": [
        {
            "id": "int null (id)",
            "name": "text null (name)"
        },
        "..."
    ],
    "teacherevalitems": [
        {
            "id": "int null (id)",
            "name": "text null (name)"
        },
        "..."
    ],
    "teacherevalitems_short": [
        {
            "id": "int null (id)",
            "name": "text null (name)"
        },
        "..."
    ],
    "studentevalitems": [
        {
            "id": "int null (id)",
            "name": "text null (name)"
        },
        "..."
    ],
    "studentevalitems_short": [
        {
            "id": "int null (id)",
            "name": "text null (name)"
        },
        "..."
    ],
    "studentevalitems_examples": [
        {
            "id": "int null (id)",
            "name": "text null (name)"
        },
        "..."
    ],
    "studentevalitems_examples_short": [
        {
            "id": "int null (id)",
            "name": "text null (name)"
        },
        "..."
    ],
    "gradingperiods": [
        {
            "id": "int null (id)",
            "description": "text null (name)",
            "starttime": "int null (active from)",
            "endtime": "int null (active to)"
        },
        "... grading periods from exastud ..."
    ],
    "taxonomies": [
        {
            "id": "int null (id)",
            "title": "text null (name)",
            "source": "text null (source)"
        },
        "... values ..."
    ],
    "version": "float null (exacomp version number in YYYYMMDDXX format)",
    "moodleversion": "float null (moodle version number in YYYYMMDDXX format)",
    "release": "text null (plugin release x.x.x format)",
    "exaportactive": "bool null (flag if exaportfolio should be active)",
    "customlanguagefile": "text null (customlanguagefiel)",
    "timeout": "int null (a timeout timer)",
    "show_overview": "bool null (flag if \"show overview\" is active)",
    "show_eportfolio": "bool null (flag if \"show ePortfolio\" is active)",
    "categories": [
        {
            "id": "int null (id)",
            "title": "text null (name)",
            "source": "text null (source)"
        },
        "... values ..."
    ]
}

block_exacomp_login

webservice called through token.php
type: read
Params:
app int null required app accessing this service (eg. dakora)
app_version int null required version of the app (eg. 4.6.0)
services int null optional default: string(33) "moodle_mobile_app,exacompservices" wanted webservice tokens (eg. exacomp,exaport)
Returns:
{
    "user": {
        "id": "int null (ID of the user)",
        "username": "raw null (The username)",
        "firstname": "notags null (The first name(s) of the user)",
        "lastname": "notags null (The family name of the user)",
        "fullname": "notags null (The fullname of the user)",
        "email": "text null (An email address - allow email as root@localhost)",
        "firstaccess": "int null (first access to the site (0 if never))",
        "lastaccess": "int null (last access to the site (0 if never))",
        "auth": "plugin null (Auth plugins include manual, ldap, imap, etc)",
        "confirmed": "int null (Active user: 1 if confirmed, 0 otherwise)",
        "lang": "safedir null (Language code such as \"en\", must exist on server)",
        "url": "url null (URL of the user)",
        "profileimageurlsmall": "url null (User image profile URL - small version)",
        "profileimageurl": "url null (User image profile URL - big version)",
        "exarole": "int null (1=trainer, 2=student)"
    },
    "exacompcourses": [
        {
            "courseid": "int null (id of course)",
            "fullname": "text null (fullname of course)",
            "shortname": "raw null (shortname of course)",
            "exarole": "int null (1=trainer, 2=student)",
            "teachercanedit": "bool null ()"
        },
        "..."
    ],
    "config": {
        "points_limit": "int null (points_limit)",
        "grade_limit": "int null (grade_limit)",
        "points_negative_threshold": "int null (points_negative_threshold. Values below this value are negative)",
        "grade_negative_threshold": "int null (grade_negative_threshold. Values below this value are negative)",
        "verbal_negative_threshold": "int null (grade_negative_threshold. Values below this value are negative)",
        "example_scheme": "int null (example_scheme)",
        "example_diffLevel": "bool null (example_diffLevel)",
        "example_SelfEval": "bool null (example_SelfEval)",
        "childcomp_scheme": "int null (childcomp_scheme)",
        "childcomp_diffLevel": "bool null (childcomp_diffLevel)",
        "childcomp_SelfEval": "bool null (childcomp_SelfEval)",
        "comp_scheme": "int null (comp_scheme)",
        "comp_diffLevel": "bool null (comp_diffLevel)",
        "comp_SelfEval": "bool null (comp_SelfEval)",
        "topic_scheme": "int null (topic_scheme)",
        "topic_diffLevel": "bool null (topic_diffLevel)",
        "topic_SelfEval": "bool null (topic_SelfEval)",
        "subject_scheme": "int null (subject_scheme)",
        "subject_diffLevel": "bool null (subject_diffLevel)",
        "subject_SelfEval": "bool null (subject_SelfEval)",
        "theme_scheme": "int null (theme_scheme)",
        "theme_diffLevel": "bool null (theme_diffLevel)",
        "theme_SelfEval": "bool null (theme_SelfEval)",
        "use_evalniveau": "bool null (use evaluation niveaus)",
        "evalniveaus": [
            {
                "id": "int null (id)",
                "name": "text null (name)"
            },
            "..."
        ],
        "teacherevalitems": [
            {
                "id": "int null (id)",
                "name": "text null (name)"
            },
            "..."
        ],
        "teacherevalitems_short": [
            {
                "id": "int null (id)",
                "name": "text null (name)"
            },
            "..."
        ],
        "studentevalitems": [
            {
                "id": "int null (id)",
                "name": "text null (name)"
            },
            "..."
        ],
        "studentevalitems_short": [
            {
                "id": "int null (id)",
                "name": "text null (name)"
            },
            "..."
        ],
        "studentevalitems_examples": [
            {
                "id": "int null (id)",
                "name": "text null (name)"
            },
            "..."
        ],
        "studentevalitems_examples_short": [
            {
                "id": "int null (id)",
                "name": "text null (name)"
            },
            "..."
        ],
        "gradingperiods": [
            {
                "id": "int null (id)",
                "description": "text null (name)",
                "starttime": "int null (active from)",
                "endtime": "int null (active to)"
            },
            "... grading periods from exastud ..."
        ],
        "taxonomies": [
            {
                "id": "int null (id)",
                "title": "text null (name)",
                "source": "text null (source)"
            },
            "... values ..."
        ],
        "version": "float null (exacomp version number in YYYYMMDDXX format)",
        "moodleversion": "float null (moodle version number in YYYYMMDDXX format)",
        "release": "text null (plugin release x.x.x format)",
        "exaportactive": "bool null (flag if exaportfolio should be active)",
        "customlanguagefile": "text null (customlanguagefiel)",
        "timeout": "int null (a timeout timer)",
        "show_overview": "bool null (flag if \"show overview\" is active)",
        "show_eportfolio": "bool null (flag if \"show ePortfolio\" is active)",
        "categories": [
            {
                "id": "int null (id)",
                "title": "text null (name)",
                "source": "text null (source)"
            },
            "... values ..."
        ]
    },
    "tokens": [
        {
            "service": "text null (name of service)",
            "token": "text null (token of the service)"
        },
        "... requested tokens ..."
    ]
}

dakora_set_descriptor_visibility

set visibility for descriptor
type: write
Params:
courseid int null required id of course
descriptorid int null required id of descriptor
userid int null required id of user, 0 for current user
forall bool null required for all users = true, for one user = false
visible bool null required visibility for descriptor in current context
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_set_example_visibility

set visibility for example
type: write
Params:
courseid int null required id of course
exampleid int null required id of example
userid int null required id of user, 0 for current user
forall bool null required for all users = true, for one user = false
visible bool null required visibility for example in current context
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_set_topic_visibility

set visibility for topic
type: write
Params:
courseid int null required id of course
topicid int null required id of topic
userid int null required id of user, 0 for current user
forall bool null required for all users = true, for one user = false
visible bool null required visibility for topic in current context
groupid int null optional default: int(-1) id of group
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_set_niveau_visibility

set visibility for topic
type: write
Params:
courseid int null required id of course
topicid int null required id of topic
userid int null required id of user, 0 for current user
forall bool null required for all users = true, for one user = false
visible bool null required visibility for topic in current context
groupid int null optional default: int(-1) id of group
niveauid int null required id of the descriptorniveau
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_set_example_solution_visibility

set visibility for example solutions
type: write
Params:
courseid int null required id of course
exampleid int null required id of example
userid int null required id of user, 0 for current user
forall bool null required for all users = true, for one user = false
visible bool null required visibility for example in current context
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

diggrplus_set_descriptor_visibility

set visibility for descriptor
type: write
Params:
courseid int null required id of course
id int null required id of descriptor
userid int null required id of user, 0 for current user
forall bool null required for all users = true, for one user = false
visible bool null required visibility for descriptor in current context
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

diggrplus_set_example_visibility

set visibility for example
type: write
Params:
courseid int null required id of course
id int null required id of example
userid int null required id of user, 0 for current user
forall bool null required for all users = true, for one user = false
visible bool null required visibility for example in current context
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

diggrplus_set_topic_visibility

set visibility for topic
type: write
Params:
courseid int null required id of course
id int null required id of topic
userid int null required id of user, 0 for current user
forall bool null required for all users = true, for one user = false
visible bool null required visibility for topic in current context
groupid int null optional default: int(-1) id of group
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_create_cross_subject

create new crosssubject
type: write
Params:
courseid int null required id of course
title text null required title of crosssubject
description text null required description of crosssubject
subjectid int null required id of subject crosssubject is assigned to
draftid int null optional default: int(0) id of draft
groupcategory text null optional default: string(0) "" name of groupcategory
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_delete_cross_subject

delete cross subject
type: write
Params:
courseid int null required id of course
crosssubjid int null required id of crosssubject
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_edit_cross_subject

edit existing crosssubject
type: write
Params:
courseid int null required id of course
crosssubjid int null required id of crosssubject
title text null required title of crosssubject
description text null required description of crosssubject
subjectid int null required id of subject crosssubject is assigned to
groupcategory text null optional default: string(0) "" name of groupcategory
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_get_cross_subject_drafts

get available drafts
type: read
Params:
courseid int null required id of course
Returns:
[
    {
        "id": "int null (id of crosssubjet draft)",
        "title": "text null (title of draft)",
        "description": "text null (description of draft)"
    },
    "..."
]

dakora_get_subjects

get subjects
type: read
Params:
courseid int null required id of course
Returns:
[
    {
        "id": "int null (id of subject)",
        "title": "text null (title of subject)"
    },
    "..."
]

dakora_get_students_for_cross_subject

get_students_for_crosssubject
type: read
Params:
courseid int null required id of course
crosssubjid int null required id of crossssubj
Returns:
{
    "students": [
        {
            "id": "int null (id of student)",
            "firstname": "text null (firstname of student)",
            "lastname": "text null (lastname of student)",
            "visible": "int null (visibility of crosssubject to student)"
        },
        "..."
    ],
    "visible_forall": "int null (visibility of crosssubject to all students)"
}

dakora_set_cross_subject_student

set visibility for crosssubject and student
type: write
Params:
courseid int null required id of course
crosssubjid int null required id of crosssubject
userid text null required title of crosssubject
forall int null required 0 or 1
value int null required value 0 or 1
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_set_cross_subject_descriptor

set descriptor crosssubject association
type: write
Params:
courseid int null required id of course
crosssubjid int null required id of crosssubject
descriptorid text null required title of crosssubject
value int null required value 0 or 1
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_dismiss_oldgrading_warning

set descriptor crosssubject association
type: write
Params:
courseid int null required id of course
descriptorid int null required id of descriptor
studentid int null required id of student
Returns:
{
    "success": "bool null (status of success, either true (1) or false (0))"
}

dakora_send_message

send message
type: write
Params:
messagetext text null required text of message
userfrom int null required id of user that sends the message
userto int null required id of user message is sent to
Returns:
{
    "success": "bool null (status)"
}

block_exacomp_update_descriptor_category

update an descriptor category
type: write
Params:
descriptorid int null required id of descriptor
categories text null optional default: string(0) "" list of categories
newcategory raw null optional default: string(0) "" new category title
courseid int null optional default: int(0) courseid
Returns:
{
    "success": "bool null (true if successful)",
    "newCategory": {
        "id": "int null (id of new category)",
        "title": "text null (title of new category)",
        "source": "int null (cource of new category)"
    }
}

block_exacomp_get_url_preview

gets title description and image of website
type: read
Params:
url text null required url to fetch preview
Returns:
{
    "title": "text null (true if successful)",
    "description": "text null (true if successful)",
    "imageurl": "text null (true if successful)"
}

dakora_competencegrid_overview

view competence overview
type: read
Params:
courseid int null required id of course
userid int null required id of user, if 0 current user
subjectid int null required subject id
forall int null optional default: int(0) for all?
Returns:
{
    "overview": "raw null (result html)"
}

dakora_delete_custom_example

delete example
type: write
Params:
exampleid int null required id of example
Returns:
{
    "success": "bool null (true if successful)"
}

diggrplus_delete_custom_example

delete example
type: write
Params:
exampleid int null required id of example
Returns:
{
    "success": "bool null (true if successful)"
}