(Quick Reference)

65 Surveys - Reference Documentation

Version: 2.1

65 Surveys

65.1 List

Service: list of surveys

Description: This web service returns a json list of surveys.

URL:

https://BASE_URL/api/VERSION/surveys

Method: GET

Parameters:

Pagination parameters:

NameDescriptionTypeRequiredPossible values
maxLimits the number of resources requested to return.Integerno 
offsetTells where to start returning records from the entire set of results.Integerno 
orderOrders ascending or descending.Integernoasc,desc
sortOrders the results by the specified field.Stringno 

The max parameter is set to 100 by default.

Filters parameters:

NameDescriptionTypeRequiredExample values
dateCreated_gtFilters by the resource's creation date time and operator greater thanDateno2016-08-15T14:52:48Z
dateCreated_gteFilters by the resource's creation date time and operator greater than or equalDateno 
dateCreated_ltFilters by the resource's creation date time and operator less thanDateno 
dateCreated_lteFilters by the resource's creation date time and operator less than or equalDateno 
lastUpdated_gtFilters by the resource's last-modified date time and operator greater thanDateno 
lastUpdated_gteFilters by the resource's last-modified date time and operator greater than or equalDateno 
lastUpdated_ltFilters by the resource's last-modified date time and operator less thanDateno 
lastUpdated_lteFilters by the resource's last-modified date time and operator less than or equalDateno 
nameWildcard search by the resource's nameStringno 

Dates should be formatted as the ISO-8601 format (YYYY-MM-DDTHH:MM:SSZ)

Success case: response.status=200

{
    "paging": {
        "total": 3,
        "max": 100,
        "offset": 0,
        "previous": null,
        "next": null
    },
    "data": [
        {
            "id": 1,
            "name": "Survey1",
            "description": "Description Survey1",
            "isPublic": false,
            "status": false,
            "organization": "entity1",
            "dateCreated": "2016-08-23T09:39:11Z",
            "lastUpdated": "2016-08-23T09:42:12Z",
            "answerOnce": true,
            "showAllAtOnce": false,
            "users": []
            "questions": [
                {
                    "id": 1,
                    "href": "/api/v1.0/questions/1"
                }
            ]
        },
        {
            "id": 2,
            "name": "Survey2",
            "description": "Description Survey2",
            "isPublic": true,
            "status": true,
            "organization": "entity1",
            "dateCreated": "2016-08-29T09:39:11Z",
            "lastUpdated": "2016-08-29T09:39:11Z",
            "answerOnce": false,
            "showAllAtOnce": false,
            "users": []
        },
        {
            "id": 67,
            "name": "Survey3",
            "description": "the best decision to choose",
            "isPublic": false,
            "status": true,
            "organization": "entity1",
            "dateCreated": "2016-08-31T10:45:34Z",
            "lastUpdated": "2016-08-31T10:45:34Z",
            "answerOnce": true,
            "showAllAtOnce": false,
            "users": [
                {
                    "id": 2,
                    "reference": "R001",
                    "firstName": "SADOK",
                    "lastName": "CHEBIL",
                    "href": "/api/v1.0/users/2"
                },
                {
                    "id": 3,
                    "reference": "R002",
                    "firstName": "LUFY",
                    "lastName": "MONKEYD",
                    "href": "/api/v1.0/users/3"
                }
            ]
            "questions": []
        }

Failure Output

Failure case:response.status = 400
{
   "error": "invalid_param",
   "error_description": "The parameters [dateCreated_gta] you provided are not valid for this request."
}
{
    "error": "invalid_datetime_format",
    "error_description": "Invalid datetime filter (not ISO-8601 formatted): [2016-08-1Z]"
}

Failure case:response.status = 500
{
   "error": "server_error",
   "error_description": "Oops! Something went wrong..."
}

65.2 Show

Service: Show a survey

Description: Returns the requested survey in json format when successful.

URL:

https://BASE_URL/api/VERSION/surveys/{id}

Method: GET

Parameters:

NameDescriptionTypeRequiredExample values
idThe unique numerical ID of the desired surveyLongyes123

Success Output

Success case: response.status=200

{
    "id": 69,
    "name": "Survey of salary",
    "description": "describe you point of vue",
    "isPublic": false,
    "status": true,
    "organization": "entity1",
    "dateCreated": "2016-08-31T10:47:29Z",
    "lastUpdated": "2016-08-31T10:47:29Z",
    "answerOnce": true,
    "showAllAtOnce": false,
    "users": [
        {
            "id": 3,
            "reference": "R002",
            "firstName": "LUFY",
            "lastName": "MONKEYD",
            "href": "/api/v1.0/users/3"
        }
    ]
    "questions": []
}

Failure Output

Failure case:response.status = 400

{
    "error": "invalid_param_type",
    "error_description": "The type of parameter id you provided is not valid for this request."
}

Failure case:response.status = 404

{
    "error": "not_found",
    "error_description": "The survey with the id 35 doesn't exist."
}

65.3 Create

Service: Create a survey

Description: this web service is used in order to create a survey and added into the data base and finally returns the created instance in JSON format.

URL:

https://BASE_URL/api/VERSION/surveys

Method: POST

Request content type: application/json

Parameters:

NameDescriptionTypeRequiredPossible values
namethe name of the surveyStringyes 
descriptionit contains the description of the surveyStringno 
enabledIt indicates the status of the surveyBooleannotrue, false
isPublicit indicate if the survey is destined to a specified users or notBooleannotrue, false
usersthe list of users for private surveyList-[18,19]
answerOnceIt indicated if the survey can be answered just one time or not set to true by defaultBooleannotrue, false
showAllAtOnceIt indicated if the survey questions will be showed all at once or not set to false by defaultBooleannotrue, false
useExternalIdBy default, it is set to false. set it to true if you want to use external ids.Booleannotrue , false

the default value of enabled and isPublic is set to false

Success Output

Success case: response.status = 201

{
    "id": 71,
    "name": "Survey of quality",
    "description": "this survey contains some questions about the quality of our product",
    "isPublic": false,
    "status": true,
    "organization": "entity1",
    "dateCreated": "2016-08-31T16:10:21Z",
    "lastUpdated": "2016-08-31T16:10:21Z",
    "answerOnce": true,
    "showAllAtOnce": false,
    "users": [
        {
            "id": 3,
            "reference": "R002",
            "firstName": "LUFY",
            "lastName": "MONKEYD",
            "href": "/api/v1.0/users/3"
        },
        {
            "id": 2,
            "reference": "R001",
            "firstName": "SADOK",
            "lastName": "CHEBIL",
            "href": "/api/v1.0/users/2"
        }
    ]
    "questions": []
}

Failure Output

Failure case:response.status = 400

{
    "error": "missing_param",
    "error_description": "name parameter is missing"
}
{
  "error": "invalid_param_type",
  "error_description": "An invalid value was specified for parameter: answerOnce (must be Boolean)"
}
{
    "error": "invalid_param_type",
    "error_description": "The type of parameter users you provided is not valid for this request."
}
{
	"error": "save_failed",
 	"error_description": "Failed to save instance"
}

Failure case:response.status = 404

{
    "error": "not_found",
    "error_description": "The user with the id 999 doesn't exist."
}

Failure case:response.status = 500
{
{
    "error": "server_error",
    "error_description": "Oops! Something went wrong..."
}
}

65.4 Update

Service: Update a survey

Description: this web service is used in order to update an existing survey to the data base and finally returns the updated instance in JSON format.

URL:

https://BASE_URL/api/VERSION/surveys/{id}

Method: PUT

Request content type: application/json

Parameters:

NameDescriptionTypeRequiredPossible values
idid of the desired record to updateLongYes777
namethe name of the surveyStringyes 
descriptionit contains the description of the surveyStringno 
enabledIt indicates the status of the surveyBooleannotrue, false
isPublicit indicate if the survey is destined to a specified users or notBooleannotrue, false
answerOnceIt indicated if the survey can be answered just one time or not set to true by defaultBooleannotrue, false
showAllAtOnceIt indicated if the survey questions will be showed all at once or not set to false by defaultBooleannotrue, false
usersthe list of users for private surveyList-[18,19]
useExternalIdBy default, it is set to false. set it to true if you want to use external ids.Booleannotrue , false

A survey can only be update if the is no answers to the questions related to it

Success Output

Success case: response.status = 200

{
    "id": 71,
    "name": "Survey of productivity",
    "description": "this survey contains some questions about the productivity of our product",
    "isPublic": false,
    "status": true,
    "organization": "entity1",
    "dateCreated": "2016-08-31T16:10:21Z",
    "lastUpdated": "2016-08-31T16:10:21Z",
    "answerOnce": true,
    "showAllAtOnce": false,
    "users": [
        {
            "id": 3,
            "reference": "R002",
            "firstName": "LUFY",
            "lastName": "MONKEYD",
            "href": "/api/v1.0/users/3"
        },
        {
            "id": 2,
            "reference": "R001",
            "firstName": "SADOK",
            "lastName": "CHEBIL",
            "href": "/api/v1.0/users/2"
        }
    ]
    "questions": []
}

Failure Output

Failure case:response.status = 400

{
    "error": "missing_param",
    "error_description": "name parameter is missing"
}
{
    "error": "invalid_param_type",
    "error_description": "The type of parameter users you provided is not valid for this request."
}
{
  "error": "invalid_param_type",
  "error_description": "An invalid value was specified for parameter: answerOnce (must be Boolean)"
}
{
	"error": "save_failed",
 	"error_description": "Failed to save instance"
}
{
    "error": "update_not_authorized",
    "error_description": "Survey with answers could not be updated"
}

Failure case:response.status = 404

{
    "error": "not_found",
    "error_description": "The user with the id 999 doesn't exist."
}

Failure case:response.status = 500
{
{
    "error": "server_error",
    "error_description": "Oops! Something went wrong..."
}
}

65.5 Delete

Service: Delete a survey

Description: This web service is used in order to delete an existing survey instance.

URL:

https://BASE_URL/api/VERSION/surveys/{id}

Method: DELETE

Parameters:

NameDescriptionTypeRequiredExamples values
idThe numerical ID of the desired surveyLongYes123

Success Output

Success case: response.status=200
{
    "success": "true",
    "success_description": "Instance deleted successfully"
}

Failure Output

Failure case:response.status = 400
{
    "error": "invalid_param_type",
    "error_description": "The type of parameter id you provided is not valid for this request."
}
{
    "error": "delete_failed",
    "error_description": "Failed to delete instance"
}
{
    "error": "delete_not_authorized",
    "error_description": "Survey with answers can not be deleted"
}

Failure case:response.status = 404
{
    "error": "not_found",
    "error_description": "The survey with the id 123 doesn't exist."
}

Failure case:response.status = 500
{
    "error": "server_error",
    "error_description": "Oops! Something went wrong..."
}