URL for test server: https://on-test.diaper.cf:5001

URL for prod server: https://on-prod.diaper.cf:5001

User Creation APIs

 

URL/api/users
DescriptionCreate a new user
MethodPUT
Url Param---
Request Body Data
{
email: xxx,
firstName: xxx,
lastName: xxx,
surveyData: xxx
}
Response
Response BodyCode

{

message: "Password set email has been sent."

}

200

{

message: "Malformatted JSON"

}

400

{

message: "There was a problem sending the password set email. Please try again later."

}

500

{

message: "User already exists!"

}

500
Cookie---

 

User Authentication APIs

URL/api/version
DescriptionShow API Version
MethodGET
Url Param--
Request Body Data

--

Response

{version: "xxx"} - 200

Cookie

--

 

 

URL/api/auth
DescriptionUser login
MethodPOST
Url Param--
Request Body Data
{
email: xxx,
password: xxx,
firstName: xxx,
lastName: xxx
}
Response
Response BodyCode

{

loginResponseType: “loginResponseTypeSuccess”,

message: "User successfully authenticated.",

accessToken: xxx,

email: xxx,

firstName: xxx,

lastName: xxx

}

201

{

loginResponseType: "loginResponseTypeInvalidPassword",

message: "Failed login",

displayMessage: "Incorrect email or password."

}

401

{

message: "There was a problem sending the password set email. Please try again later"

}

500

{

loginResponseType: "loginResponseTypePasswordNotSet",

message: "User password has not been set.",

displayMessage: "Please check your email for a link to set your account password."

}

 
Cookie

---

 

 

URL/api/users/<email>/resetpassword
DescriptionReset password with given new password
MethodPOST
Url Paramemail: email for the user to reset password
Request Body Data
{
password: xxx
}

Note: password field takes the new password to be reset, not the old password.
Response
Response BodyCode

{

message: "Successfully updated password"

}

200

{

message: "Invalid email address provided"

}

400

{

message: "Unauthorized: you do not have access to reset this user's password"

}

401
Cookie---

 

 

URL/api/users/<email>/requestpasswordreset
DescriptionSend password reset email
MethodPOST
Url Paramemail: email for the user to reset password
Request Body Data---
Response
Response BodyCode

{

message: "Password reset email has been sent."

}

200

{

message: "Invalid email address provided"

}

400

{

message: "There was a problem sending the password reset email. Please try again later"

}

500
Cookie---

 

 

URL/api/logout
DescriptionLog out user by deleting the user's access token
MethodDELETE
Url Param---
Request Body Data---
Response
Response BodyCode

{

message: "Successfully logged out"

}

200
Cookie---


Sample APIs

URL/api/samples/
DescriptionFetching multiple Samples at the same time or Inserting a Sample.     [Poop Sample Response]
HeaderAPI_KEY, Authorization
MethodPUT | GET
Url Param

--

Request Body Data

PUT
{ sampleData: xxx, image: xxx}

Note: SampleData should send as form-data text, and the image should be form-data file.

Response

PUT

  • { message: “Sample data recorded!” } - 200: Success
  • { message: "Bad request: no image or sample data" } - 400
  • { message: "Bad request: no sample data"} - 401
  • { message: "Bad request: no barcode ID"} - 402
  • { message: "Bad request: no survey data"} - 403

    GET
    { sampleList: [ { id: xxx, dateTime: xxx, hasPict: xxx, hasSurvey: xxx, hasContainer: xxx },
                              { id: xxx, dateTime: xxx, hasPict: xxx, hasSurvey: xxx, hasContainer: xxx },
                              {}…..{} ] }
    200: Success
    Note[Limit]: Up to 15 samples can be retrieved at max.

 

 

URL/api/samples/
DescriptionFetching multiple Samples at the same time or Inserting a Sample.     [Poop Sample Response]
HeaderAPI_KEY, Authorization
MethodPUT | GET
Url Param

--

Request Body Data

PUT
{ sampleData: xxx, image: xxx}

Note: SampleData should send as form-data text, and the image should be form-data file.

Response

PUT

  • { message: “Sample data recorded!” } - 200: Success
  • { message: "Bad request: no image or sample data" } - 400
  • { message: "Bad request: no sample data"} - 401
  • { message: "Bad request: no barcode ID"} - 402
  • { message: "Bad request: no survey data"} - 403

GET
{ sampleList: [ { id: xxx, dateTime: xxx, hasPict: xxx, hasSurvey: xxx, hasContainer: xxx },
                          { id: xxx, dateTime: xxx, hasPict: xxx, hasSurvey: xxx, hasContainer: xxx },
                          {}…..{} ] }
200: Success
Note[Limit]: Up to 15 samples can be retrieved at max.

 

 

URL/api/samples/
DescriptionFetching multiple Samples at the same time or Inserting a Sample.     [Poop Sample Response]
HeaderAPI_KEY, Authorization
MethodPUT | GET
Url Param

--

Request Body Data

PUT
{ sampleData: xxx, image: xxx}

Note: SampleData should send as form-data text, and the image should be form-data file.

Response

PUT

  • { message: “Sample data recorded!” } - 200: Success
  • { message: "Bad request: no image or sample data" } - 404
  • { message: "Bad request: no sample data"} - 404
  • { message: "Bad request: no barcode ID"} - 404
  • { message: "Bad request: no survey data"} - 404

GET
{ sampleList: [ { id: xxx, dateTime: xxx, hasPict: xxx, hasSurvey: xxx, hasContainer: xxx },
                          { id: xxx, dateTime: xxx, hasPict: xxx, hasSurvey: xxx, hasContainer: xxx },
                          {}…..{} ] }
200: Success
Note[Limit]: Up to 15 samples can be retrieved at max.

 

 

URL/api/sample/<sample_id>
DescriptionFetching the image of a Specific Sample Response
HeaderAPI_KEY, Authorization
MethodGET
Url Param

sample_id=[string]

Request Body Data

PUT
{ sampleData: xxx, image: xxx}

Note: SampleData should send as form-data text, and the image should be form-data file.

Response

{ sample: { id: xxx, dateTime: xxx, hasPict: xxx, hasSurvey: xxx, hasContainer: xxx } }
200: Success

{ message: ”This user does not have access to this sample data” }
403: Unauthorized

{ message: ”No such sample exists” }
404: Resource Not Found

{ message: ”This user does not have access to this sample data” }
403: Unauthorized

{ message: ”No such sample exists” }
404: Resource Not Found

 

 

 

URL/api/sample/<barcode_id>
DescriptionFetching a Specific Sample Response
HeaderAPI_KEY, Authorization
MethodGET
Url Param

barcode_id=[string]

Request Body Data

--

Response

{ sample: { id: xxx, dateTime: xxx, hasPict: xxx, hasSurvey: xxx, hasContainer: xxx } }
200: Success

{ message: ”This user does not have access to this sample data” }
403: Unauthorized

{ message: ”No such sample exists” }
404: Resource Not Found

 

 

URL/api/sample/<barcode_id>/image
DescriptionFetching the image of a Specific Sample Response
HeaderAPI_KEY, Authorization
MethodGET
Url Param

barcode_id=[string]

Request Body Data

--

Response

{ message: ”This user does not have access to this sample data” }
403: Unauthorized

{ message: ”No such sample exists” }
404: Resource Not Found

 

 

 

URL/api/sample/count_this_week
DescriptionReturn the total number the user uploaded this week
HeaderAPI_KEY, Authorization
MethodGET
Url Param 
Request Body Data

--

Response

{ "sampleCount": int } - 200

 

 

 

 

URL/api/sample/count_total
DescriptionReturn the total number the user uploaded
HeaderAPI_KEY, Authorization
MethodGET
Url Param--
Request Body Data

--

Response

{ "sampleCount": int } - 200

 

Survey APIs

URL/api/survey/questions
DescriptionReturns the sample survey when 'main_survey' is passed in as survey_name
HeaderAPI_KEY, Authorization
MethodGET
Url Paramsurvey_name
Request Body Data

--

Response
{questionsList: [{
        "questionId": "questionDiet",
        "questionText": "Whatwasyourbaby'sdiettoday?",
        "questionType": "questionTypeSingleSelect",
        "responses": [
            {
                "responseId": "responsesDiet_exclusiveBreastFeeding",
                "responseText": "ExclusiveBreastFeeding"
            },
...
...
...
]}


 


 

URL/api/survey
DescriptionPlace a survey into the database in order to be retrieved by the application in the future
HeaderAPI_KEY, Authorization
MethodPUT
Url Paramsurvey_name
Request Body Data

Survey to placed in the database

Response
{
"message": "Incorrect API key provided."
}
{
"message": "Survey stored!"
}, 200
If survey name not passed in,
{
"message"="Please pass in survey name to create a survey"
}, 400
Note

To add a new survey, in postman Body: use "form-data" and

add KEY as questions,

add VALUE as (remove questionList)

[{
"questionId": "questionDiet",
 ...
}]

 

 

URL/api/survey/question/<question_id>/responses
DescriptionReturn the responses to a question given the question id and survey name are passed in
HeaderAPI_KEY, Authorization
MethodGET
Url Paramsurvey_name
Request Body Data

--

Response
{responseList: []}, 200

 

When an incorrect question ID is passed in:

{
"message": "Question ID is not found!"
}, 400