text: define({ "api": [
    {
      "type": "get",
      "url": "/auth/removeall",
      "title": "Empty Redis",
      "version": "2.0.0",
      "name": "EmptyRedis",
      "group": "Admin",
      "description": "<p>Remove all users from Redis. Flush all information from redis.</p>",
      "permission": [
        {
          "name": "Admin"
        }
      ],
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "HTML",
              "optional": false,
              "field": "SuccessFlash",
              "description": "<p>Returns Success page</p>"
            }
          ]
        }
      },
      "error": {
        "fields": {
          "Error 4xx": [
            {
              "group": "Error 4xx",
              "type": "HTML",
              "optional": false,
              "field": "ErrorFlash",
              "description": "<p>Returns Error Message.</p>"
            }
          ]
        }
      },
      "filename": "src/server/routes/auth.js",
      "groupTitle": "Admin"
    },
    {
      "type": "get",
      "url": "/auth/removeall",
      "title": "Empty Redis",
      "version": "1.0.0",
      "name": "EmptyRedis",
      "group": "Admin",
      "description": "<p>Remove all users from Redis. Flush all information from redis.</p>",
      "permission": [
        {
          "name": "Admin"
        }
      ],
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "HTML",
              "optional": false,
              "field": "SuccessFlash",
              "description": "<p>Returns Success page</p>"
            }
          ]
        }
      },
      "error": {
        "fields": {
          "Error 4xx": [
            {
              "group": "Error 4xx",
              "type": "HTML",
              "optional": false,
              "field": "ErrorFlash",
              "description": "<p>Returns Error Message.</p>"
            }
          ]
        }
      },
      "filename": "src/_apidoc.js",
      "groupTitle": "Admin"
    },
    {
      "type": "get",
      "url": "/auth/scanner/removeall",
      "title": "Remove all Scanners",
      "version": "2.0.0",
      "name": "EmptyScanners",
      "group": "Admin",
      "description": "<p>Remove all scanner objects from MongoDB. Cancels all active api keys and requires scanners to get new ones.</p>",
      "permission": [
        {
          "name": "Admin"
        }
      ],
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "HTML",
              "optional": false,
              "field": "SuccessFlash",
              "description": "<p>Returns Success page</p>"
            }
          ]
        }
      },
      "error": {
        "fields": {
          "Error 4xx": [
            {
              "group": "Error 4xx",
              "type": "HTML",
              "optional": false,
              "field": "ErrorFlash",
              "description": "<p>Returns Error Message.</p>"
            }
          ]
        }
      },
      "filename": "src/server/routes/auth.js",
      "groupTitle": "Admin"
    },
    {
      "type": "get",
      "url": "/auth/scanner/removeall",
      "title": "Remove all Scanners",
      "version": "1.0.0",
      "name": "EmptyScanners",
      "group": "Admin",
      "description": "<p>Remove all scanner objects from MongoDB. Cancels all active api keys and requires scanners to get new ones.</p>",
      "permission": [
        {
          "name": "Admin"
        }
      ],
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "HTML",
              "optional": false,
              "field": "SuccessFlash",
              "description": "<p>Returns Success page</p>"
            }
          ]
        }
      },
      "error": {
        "fields": {
          "Error 4xx": [
            {
              "group": "Error 4xx",
              "type": "HTML",
              "optional": false,
              "field": "ErrorFlash",
              "description": "<p>Returns Error Message.</p>"
            }
          ]
        }
      },
      "filename": "src/_apidoc.js",
      "groupTitle": "Admin"
    },
    {
      "type": "post",
      "url": "/auth/scanner/register",
      "title": "Register Scanner",
      "version": "2.0.1",
      "name": "RegisterScanner",
      "group": "Admin",
      "description": "<p>Authenticate and register scanner on Redis-Server. This will provide an API Key in return which the scanner will use for any and all requests to redis.</p>",
      "permission": [
        {
          "name": "Admin"
        }
      ],
      "parameter": {
        "fields": {
          "Parameter": [
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "pin",
              "description": "<p>Pin to use to prove that valid scanner is connecting to Redis. (Set valid pin in .env file)</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Request Body Example",
            "content": "{\n  \"pin\": 1234\n}",
            "type": "json"
          }
        ]
      },
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Object",
              "optional": false,
              "field": "data",
              "description": "<p>User tab information.</p>"
            },
            {
              "group": "Success 200",
              "type": "Boolean",
              "optional": false,
              "field": "data.isAssigned",
              "description": "<p>Boolean saying if apikey has been assigned to a scanner.</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.name",
              "description": "<p>Auto-Generated Name for Scanner</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data._id",
              "description": "<p>Scanner's universal ID</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.createdAt",
              "description": "<p>Date and Time that the Key was generated</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.expireAt",
              "description": "<p>Date and Time that the Key will expire</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.apikey",
              "description": "<p>The API key that the scanner can now use</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.pin",
              "description": "<p>The pin that the scanner needs to use to get API key</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response Message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success-Response:",
            "content": "HTTP/1.1 200 OK\n{\n  status: \"success\",\n  data: {\n    isAssigned: true,\n    name: \"2019-02-08T20:57:55.047Z\",\n    _id: \"5bb170f354fd0f590ddf4103\",\n    createdAt: \"2019-02-12T06:22:17.233Z\",\n    expireAt: \"2019-02-15T06:23:25.971Z\",\n    apikey: \"0f865521-2c05-467d-ad43-a9bac2108db9\",\n    pin: 3971\n  },\n  message: \"Scanner Added. API Key Generated.\"\n}",
            "type": "json"
          }
        ]
      },
      "error": {
        "examples": [
          {
            "title": "401 Response",
            "content": "HTTP/1.1 401 Unauthorized\n{\n   \"status\": \"error\",\n   \"message\": \"Invalid or expired pin passed.\",\n   \"error\": {\n       \"status\": 401\n   }\n}",
            "type": "json"
          },
          {
            "title": "500 Response",
            "content": "HTTP/1.1 500 Server Error\n{\n  status: \"error\",\n  data: {err},\n  message: \"There was an error.\"\n}",
            "type": "json"
          }
        ]
      },
      "filename": "src/server/routes/auth.js",
      "groupTitle": "Admin"
    },
    {
      "type": "post",
      "url": "/auth/scanner/register",
      "title": "Register Scanner",
      "version": "2.0.0",
      "name": "RegisterScanner",
      "group": "Admin",
      "description": "<p>Authenticate and register scanner on Redis-Server. This will provide an API Key in return which the scanner will use for any and all requests to redis.</p>",
      "permission": [
        {
          "name": "Admin"
        }
      ],
      "parameter": {
        "fields": {
          "Parameter": [
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "pin",
              "description": "<p>Pin to use to prove that valid scanner is connecting to Redis. (Set valid pin in .env file)</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Request Body Example",
            "content": "{\n  pin: \"MASTER_KEY\"\n}",
            "type": "json"
          }
        ]
      },
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Object",
              "optional": false,
              "field": "data",
              "description": "<p>User tab information.</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.name",
              "description": "<p>Auto-Generated Name for Scanner</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data._id",
              "description": "<p>Scanner's universal ID</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.apikey",
              "description": "<p>The API key that the scanner can now use</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response Message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success-Response:",
            "content": "HTTP/1.1 200 OK\n{\n  status: \"success\",\n  data: {\n    name: \"2018-10-01T00:57:23.370Z\",\n    _id: \"5bb170f354fd0f590ddf4103\",\n    apikey: \"0f865521-2c05-467d-ad43-a9bac2108db9\"\n  },\n  message: \"Scanner Added. API Key Generated.\"\n}",
            "type": "json"
          }
        ]
      },
      "error": {
        "examples": [
          {
            "title": "401 Response",
            "content": "HTTP/1.1 401 Unauthorized\n\"Invalid pin passed\"",
            "type": "json"
          },
          {
            "title": "500 Response",
            "content": "HTTP/1.1 500 Server Error\n{\n  status: \"error\",\n  data: {err},\n  message: \"There was an error.\"\n}",
            "type": "json"
          }
        ]
      },
      "filename": "src/_apidoc.js",
      "groupTitle": "Admin"
    },
    {
      "type": "post",
      "url": "/auth/scanner/register",
      "title": "Register Scanner",
      "version": "1.0.0",
      "name": "RegisterScanner",
      "group": "Admin",
      "description": "<p>Authenticate and register scanner on Redis-Server. This will provide an API Key in return which the scanner will use for any and all requests to redis.</p>",
      "permission": [
        {
          "name": "Admin"
        }
      ],
      "parameter": {
        "fields": {
          "Parameter": [
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "pin",
              "description": "<p>Pin to use to prove that valid scanner is connecting to Redis. (Set valid pin in .env file)</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Request Body Example",
            "content": "{\n  pin: \"MASTER_KEY\"\n}",
            "type": "json"
          }
        ]
      },
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Object",
              "optional": false,
              "field": "data",
              "description": "<p>User tab information.</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.name",
              "description": "<p>Auto-Generated Name for Scanner</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data._id",
              "description": "<p>Scanner's universal ID</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.apikey",
              "description": "<p>The API key that the scanner can now use</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response Message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success-Response:",
            "content": "HTTP/1.1 200 OK\n{\n  status: \"success\",\n  data: {\n    name: \"2018-10-01T00:57:23.370Z\",\n    _id: \"5bb170f354fd0f590ddf4103\",\n    apikey: \"0f865521-2c05-467d-ad43-a9bac2108db9\"\n  },\n  message: \"Scanner Added. API Key Generated.\"\n}",
            "type": "json"
          }
        ]
      },
      "error": {
        "examples": [
          {
            "title": "401 Response",
            "content": "HTTP/1.1 401 Unauthorized\n\"Invalid pin passed\"",
            "type": "json"
          },
          {
            "title": "500 Response",
            "content": "HTTP/1.1 500 Server Error\n{\n  status: \"error\",\n  data: {err},\n  message: \"There was an error.\"\n}",
            "type": "json"
          }
        ]
      },
      "filename": "src/_apidoc.js",
      "groupTitle": "Admin"
    },
    {
      "type": "post",
      "url": "/auth/scanner/register",
      "title": "Register Scanner",
      "version": "1.0.0",
      "name": "RegisterScanner",
      "group": "Admin",
      "description": "<p>Authenticate and register scanner on Redis-Server. This will provide an API Key in return which the scanner will use for any and all requests to redis.</p>",
      "permission": [
        {
          "name": "Admin"
        }
      ],
      "parameter": {
        "fields": {
          "Parameter": [
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "pin",
              "description": "<p>Pin to use to prove that valid scanner is connecting to Redis. (Set valid pin in .env file)</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Request Body Example",
            "content": "{\n  pin: \"MASTER_KEY\"\n}",
            "type": "json"
          }
        ]
      },
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Object",
              "optional": false,
              "field": "data",
              "description": "<p>User tab information.</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.name",
              "description": "<p>Auto-Generated Name for Scanner</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data._id",
              "description": "<p>Scanner's universal ID</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.apikey",
              "description": "<p>The API key that the scanner can now use</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response Message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success-Response:",
            "content": "HTTP/1.1 200 OK\n{\n  status: \"success\",\n  data: {\n    name: \"2018-10-01T00:57:23.370Z\",\n    _id: \"5bb170f354fd0f590ddf4103\",\n    apikey: \"0f865521-2c05-467d-ad43-a9bac2108db9\"\n  },\n  message: \"Scanner Added. API Key Generated.\"\n}",
            "type": "json"
          }
        ]
      },
      "error": {
        "examples": [
          {
            "title": "401 Response",
            "content": "HTTP/1.1 401 Unauthorized\n\"Invalid pin passed\"",
            "type": "json"
          },
          {
            "title": "500 Response",
            "content": "HTTP/1.1 500 Server Error\n{\n  status: \"error\",\n  data: {err},\n  message: \"There was an error.\"\n}",
            "type": "json"
          }
        ]
      },
      "filename": "src/_apidoc.js",
      "groupTitle": "Admin"
    },
    {
      "type": "get",
      "url": "/auth/resetcounter",
      "title": "Reset Counter",
      "version": "2.0.0",
      "name": "ResetCounter",
      "group": "Admin",
      "description": "<p>Used to reset the food counter when needed for next food event.</p>",
      "permission": [
        {
          "name": "Admin"
        }
      ],
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "HTML",
              "optional": false,
              "field": "SuccessFlash",
              "description": "<p>Returns Success page</p>"
            }
          ]
        }
      },
      "error": {
        "fields": {
          "Error 4xx": [
            {
              "group": "Error 4xx",
              "type": "HTML",
              "optional": false,
              "field": "ErrorFlash",
              "description": "<p>Returns Error Message.</p>"
            }
          ]
        }
      },
      "filename": "src/server/routes/auth.js",
      "groupTitle": "Admin"
    },
    {
      "type": "get",
      "url": "/auth/resetcounter",
      "title": "Reset Counter",
      "version": "1.0.0",
      "name": "ResetCounter",
      "group": "Admin",
      "description": "<p>Used to reset the food counter when needed for next food event.</p>",
      "permission": [
        {
          "name": "Admin"
        }
      ],
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "HTML",
              "optional": false,
              "field": "SuccessFlash",
              "description": "<p>Returns Success page</p>"
            }
          ]
        }
      },
      "error": {
        "fields": {
          "Error 4xx": [
            {
              "group": "Error 4xx",
              "type": "HTML",
              "optional": false,
              "field": "ErrorFlash",
              "description": "<p>Returns Error Message.</p>"
            }
          ]
        }
      },
      "filename": "src/_apidoc.js",
      "groupTitle": "Admin"
    },
    {
      "type": "get",
      "url": "/auth/updatedb",
      "title": "Update Redis DB",
      "version": "2.0.0",
      "name": "UpdateRedis",
      "group": "Admin",
      "description": "<p>Update Redis Database with user information. All information will be stored with their pin as the key. Users that have been assigned RFID tags will not be changed by this update.</p>",
      "permission": [
        {
          "name": "Admin"
        }
      ],
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "HTML",
              "optional": false,
              "field": "Returns",
              "description": "<p>Success page</p>"
            }
          ]
        }
      },
      "error": {
        "examples": [
          {
            "title": "401 Response",
            "content": "HTTP/1.1 401 Unauthorized\n\"Invalid pin passed\"",
            "type": "json"
          }
        ]
      },
      "filename": "src/server/routes/auth.js",
      "groupTitle": "Admin"
    },
    {
      "type": "get",
      "url": "/auth/reloaddb",
      "title": "Reload Redis DB",
      "version": "2.0.0",
      "name": "UpdateRedis",
      "group": "Admin",
      "description": "<p>Update Redis Database with user information. Unless user has been assigned an RFID tag, all information will be stored with their pin as the key. Users that have been assigned RFID tags will lose their scan data on redis.</p>",
      "permission": [
        {
          "name": "Admin"
        }
      ],
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "HTML",
              "optional": false,
              "field": "Returns",
              "description": "<p>Success page</p>"
            }
          ]
        }
      },
      "error": {
        "examples": [
          {
            "title": "401 Response",
            "content": "HTTP/1.1 401 Unauthorized\n\"Invalid pin passed\"",
            "type": "json"
          }
        ]
      },
      "filename": "src/server/routes/auth.js",
      "groupTitle": "Admin"
    },
    {
      "type": "get",
      "url": "/auth/updatedb",
      "title": "Update Redis DB",
      "version": "1.0.0",
      "name": "UpdateRedis",
      "group": "Admin",
      "description": "<p>Update Redis Database with user information. All information will be stored with their pin as the key. Users that have been assigned RFID tags will not be changed by this update.</p>",
      "permission": [
        {
          "name": "Admin"
        }
      ],
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "HTML",
              "optional": false,
              "field": "Returns",
              "description": "<p>Success page</p>"
            }
          ]
        }
      },
      "error": {
        "examples": [
          {
            "title": "401 Response",
            "content": "HTTP/1.1 401 Unauthorized\n\"Invalid pin passed\"",
            "type": "json"
          }
        ]
      },
      "filename": "src/_apidoc.js",
      "groupTitle": "Admin"
    },
    {
      "type": "post",
      "url": "/auth/scanner/verify",
      "title": "Verify Scanner",
      "version": "2.3.0",
      "name": "VerifyScanner",
      "group": "Admin",
      "description": "<p>Verify if the api key passed in is valid or not. If it isn't valid, it will return isValid=false, if it is, it will be true. If apikey is close to expiring (within 2 hours), it will extend its lifespan for 3 more days.</p>",
      "parameter": {
        "fields": {
          "Parameter": [
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "apikey",
              "description": "<p>API key that we want to validate is valid.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Request Body Example",
            "content": "{\n  \"apikey\": \"c82532d1-e221-4977-9901-d6ac5eb91e4e\"\n}",
            "type": "json"
          }
        ]
      },
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Object",
              "optional": false,
              "field": "data",
              "description": "<p>User tab information.</p>"
            },
            {
              "group": "Success 200",
              "type": "Boolean",
              "optional": false,
              "field": "data.isValid",
              "description": "<p>Boolean saying if apikey is valid or not</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.time",
              "description": "<p>Current epoch time in milliseconds</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response Message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success-Response Valid Key:",
            "content": "HTTP/1.1 200 OK\n{\n  status: \"success\",\n  data: {\n    isValid: true,\n    time: 1554400174029\n  },\n  message: \"API Key data.\"\n}",
            "type": "json"
          },
          {
            "title": "Success-Response Invalid Key:",
            "content": "HTTP/1.1 200 OK\n{\n  status: \"success\",\n  data: {\n    isValid: false,\n    time: 1554400175029\n  },\n  message: \"API Key data.\"\n}",
            "type": "json"
          }
        ]
      },
      "error": {
        "examples": [
          {
            "title": "401 Response",
            "content": "HTTP/1.1 401 Unauthorized\n{\n   \"status\": \"error\",\n   \"message\": \"No api key passed.\",\n   \"error\": {\n       \"status\": 401\n   }\n}",
            "type": "json"
          },
          {
            "title": "500 Response",
            "content": "HTTP/1.1 500 Server Error\n{\n  status: \"error\",\n  data: {err},\n  message: \"There was an error.\"\n}",
            "type": "json"
          }
        ]
      },
      "filename": "src/server/routes/auth.js",
      "groupTitle": "Admin"
    },
    {
      "type": "post",
      "url": "/scanner/checkout",
      "title": "Checkout item for User",
      "version": "2.3.0",
      "name": "CheckoutItem",
      "group": "Scanner",
      "permission": [
        {
          "name": "Scanner"
        }
      ],
      "description": "<p>Checkout an item for a user which they will have to return later. Used to keep running total of who checked out what.</p>",
      "parameter": {
        "fields": {
          "Parameter": [
            {
              "group": "Parameter",
              "type": "Number",
              "optional": false,
              "field": "itemId",
              "description": "<p>ID of item user is checking out.</p>"
            },
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "wid",
              "description": "<p>User's Wristband ID to identify who they are.</p>"
            },
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "apikey",
              "description": "<p>API key for scanner to authenticate.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Request Body Example",
            "content": "{\n  wid: \"1695694065\",\n  itemId: 1\n  apikey: \"0f865521-2c05-467d-ad43-a9bac2108db9\"\n}",
            "type": "json"
          }
        ]
      },
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success Response:",
            "content": "HTTP/1.1 200 OK\n{\n    \"status\": \"success\",\n    \"message\": \"Allowed to checkout.\"\n  }",
            "type": "json"
          }
        ]
      },
      "filename": "src/server/routes/api/rfid.js",
      "groupTitle": "Scanner"
    },
    {
      "type": "post",
      "url": "/rfid/checkout",
      "title": "Checkout item for User",
      "version": "2.2.0",
      "name": "CheckoutItem",
      "group": "Scanner",
      "permission": [
        {
          "name": "Scanner"
        }
      ],
      "description": "<p>Checkout an item for a user which they will have to return later. Used to keep running total of who checked out what.</p>",
      "parameter": {
        "fields": {
          "Parameter": [
            {
              "group": "Parameter",
              "type": "Number",
              "optional": false,
              "field": "itemId",
              "description": "<p>ID of item user is checking out.</p>"
            },
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "wid",
              "description": "<p>User's Wristband ID to identify who they are.</p>"
            },
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "apikey",
              "description": "<p>API key for scanner to authenticate.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Request Body Example",
            "content": "{\n  wid: \"1695694065\",\n  itemId: 1\n  apikey: \"0f865521-2c05-467d-ad43-a9bac2108db9\"\n}",
            "type": "json"
          }
        ]
      },
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success Response:",
            "content": "HTTP/1.1 200 OK\n{\n    \"status\": \"success\",\n    \"message\": \"Allowed to checkout.\"\n  }",
            "type": "json"
          }
        ]
      },
      "filename": "src/_apidoc.js",
      "groupTitle": "Scanner"
    },
    {
      "type": "get",
      "url": "/scanner/events",
      "title": "Get all Active Events",
      "version": "2.3.0",
      "name": "GetActiveLocations",
      "group": "Scanner",
      "permission": [
        {
          "name": "Scanner"
        }
      ],
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "length",
              "description": "<p>Length of active locations returned</p>"
            },
            {
              "group": "Success 200",
              "type": "Array",
              "optional": false,
              "field": "locations",
              "description": "<p>Array of currently active locations</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success Response:",
            "content": "HTTP/1.1 200 OK\n{\n    \"api_response\": \"Success\",\n    \"status\": 200,\n    \"body\": {\n        \"data\": [\n            {\n              \"uid\": \"00f4f6f0b02747fe86a0f239ed7ea08e\",\n              \"event_location\": 1,\n              \"event_start_time\": 1550969885214,\n              \"event_end_time\": 1550969885214,\n              \"event_title\": \"abcde\",\n              \"event_description\": \"abcd\",\n              \"event_type\": \"workshop\",\n              \"hackathon\": \"84ed52ff52f84591aabe151666fae240\",\n              \"location_name\": \"124 Business Building\"\n            },\n            {...}\n        ],\n        \"result\": \"Success\"\n    }\n  }",
            "type": "json"
          }
        ]
      },
      "filename": "src/server/routes/api/rfid.js",
      "groupTitle": "Scanner"
    },
    {
      "type": "get",
      "url": "/rfid/events",
      "title": "Get all Active Events",
      "version": "2.1.0",
      "name": "GetActiveLocations",
      "group": "Scanner",
      "permission": [
        {
          "name": "Scanner"
        }
      ],
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "length",
              "description": "<p>Length of active locations returned</p>"
            },
            {
              "group": "Success 200",
              "type": "Array",
              "optional": false,
              "field": "locations",
              "description": "<p>Array of currently active locations</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success Response:",
            "content": "HTTP/1.1 200 OK\n{\n    \"api_response\": \"Success\",\n    \"status\": 200,\n    \"body\": {\n        \"data\": [\n            {\n              \"uid\": \"00f4f6f0b02747fe86a0f239ed7ea08e\",\n              \"event_location\": 1,\n              \"event_start_time\": 1550969885214,\n              \"event_end_time\": 1550969885214,\n              \"event_title\": \"abcde\",\n              \"event_description\": \"abcd\",\n              \"event_type\": \"workshop\",\n              \"hackathon\": \"84ed52ff52f84591aabe151666fae240\",\n              \"location_name\": \"124 Business Building\"\n            },\n            {...}\n        ],\n        \"result\": \"Success\"\n    }\n  }",
            "type": "json"
          }
        ]
      },
      "filename": "src/_apidoc.js",
      "groupTitle": "Scanner"
    },
    {
      "type": "get",
      "url": "/rfid/active-locations",
      "title": "Get all Active Locations",
      "version": "2.0.0",
      "name": "GetActiveLocations",
      "group": "Scanner",
      "permission": [
        {
          "name": "Scanner"
        }
      ],
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "length",
              "description": "<p>Length of active locations returned</p>"
            },
            {
              "group": "Success 200",
              "type": "Array",
              "optional": false,
              "field": "locations",
              "description": "<p>Array of currently active locations</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success Response:",
            "content": "HTTP/1.1 200 OK\n{\n  status: 'success',\n  length: 5,\n  locations: [\n     {\n       \"location_name\": \"Cybertorium\",\n       \"uid\": 2\n     },\n     {\n       \"location_name\": \"Atrium\",\n       \"uid\": 5\n     },\n     {\n       \"location_name\": \"Business Building Room 120\",\n       \"uid\": 6\n     },\n     {\n       \"location_name\": \"Atrium Staircase\",\n       \"uid\": 11\n     },\n     {\n       \"location_name\": \"Game room\",\n       \"uid\": 15\n     }\n   ],\n   message: 'Found active locations.'\n  }",
            "type": "json"
          }
        ]
      },
      "filename": "src/_apidoc.js",
      "groupTitle": "Scanner"
    },
    {
      "type": "get",
      "url": "/tabs/active-locations",
      "title": "Get all Active Locations",
      "version": "1.0.0",
      "name": "GetActiveLocations",
      "group": "Scanner",
      "permission": [
        {
          "name": "Scanner"
        }
      ],
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "length",
              "description": "<p>Length of active locations returned</p>"
            },
            {
              "group": "Success 200",
              "type": "Array",
              "optional": false,
              "field": "locations",
              "description": "<p>Array of currently active locations</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success Response:",
            "content": "HTTP/1.1 200 OK\n{\n  status: 'success',\n  length: 5,\n  locations: [\n     {\n       \"location_name\": \"Cybertorium\",\n       \"uid\": 2\n     },\n     {\n       \"location_name\": \"Atrium\",\n       \"uid\": 5\n     },\n     {\n       \"location_name\": \"Business Building Room 120\",\n       \"uid\": 6\n     },\n     {\n       \"location_name\": \"Atrium Staircase\",\n       \"uid\": 11\n     },\n     {\n       \"location_name\": \"Game room\",\n       \"uid\": 15\n     }\n   ],\n   message: 'Found active locations.'\n  }",
            "type": "json"
          }
        ]
      },
      "filename": "src/_apidoc.js",
      "groupTitle": "Scanner"
    },
    {
      "type": "get",
      "url": "/scanner/items",
      "title": "Get all Available Items",
      "version": "2.3.0",
      "name": "GetItems",
      "group": "Scanner",
      "permission": [
        {
          "name": "Scanner"
        }
      ],
      "parameter": {
        "fields": {
          "Parameter": [
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "apikey",
              "description": "<p>API key for scanner to authenticate.</p>"
            }
          ]
        }
      },
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "length",
              "description": "<p>Length of available returned</p>"
            },
            {
              "group": "Success 200",
              "type": "Array",
              "optional": false,
              "field": "items",
              "description": "<p>Array of currently available items</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success Response:",
            "content": "  HTTP/1.1 200 OK\n{\n    \"status\": \"Success\",\n    \"items\": [\n      {\n        \"uid\": 1,\n        \"name\": \"Mattresses\",\n        \"quantity\": 50,\n      },\n        {...}\n    ],\n    \"length\": 2,\n    \"message\": \"Found active locations.\"\n}",
            "type": "json"
          }
        ]
      },
      "filename": "src/server/routes/api/rfid.js",
      "groupTitle": "Scanner"
    },
    {
      "type": "get",
      "url": "/rfid/items",
      "title": "Get all Available Items",
      "version": "2.2.0",
      "name": "GetItems",
      "group": "Scanner",
      "permission": [
        {
          "name": "Scanner"
        }
      ],
      "parameter": {
        "fields": {
          "Parameter": [
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "apikey",
              "description": "<p>API key for scanner to authenticate.</p>"
            }
          ]
        }
      },
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "length",
              "description": "<p>Length of available returned</p>"
            },
            {
              "group": "Success 200",
              "type": "Array",
              "optional": false,
              "field": "items",
              "description": "<p>Array of currently available items</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success Response:",
            "content": "  HTTP/1.1 200 OK\n{\n    \"status\": \"Success\",\n    \"items\": [\n      {\n        \"uid\": 1,\n        \"name\": \"Mattresses\",\n        \"quantity\": 50,\n      },\n        {...}\n    ],\n    \"length\": 2,\n    \"message\": \"Found active locations.\"\n}",
            "type": "json"
          }
        ]
      },
      "filename": "src/_apidoc.js",
      "groupTitle": "Scanner"
    },
    {
      "type": "post",
      "url": "/scanner/getpin",
      "title": "Get User Info with Pin",
      "version": "2.3.0",
      "name": "GetPin",
      "group": "Scanner",
      "description": "<p>Get all user information from redis that hasn't been assigned an WID tag. Pin is used to currently index user in redis if WID hasn't been set.</p>",
      "permission": [
        {
          "name": "Scanner"
        }
      ],
      "parameter": {
        "fields": {
          "Parameter": [
            {
              "group": "Parameter",
              "type": "Number",
              "optional": false,
              "field": "pin",
              "description": "<p>Pin of user.</p>"
            },
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "apikey",
              "description": "<p>API key for scanner to authenticate.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Request Body Example",
            "content": "{\n  pin: 94,\n  apikey: \"0f865521-2c05-467d-ad43-a9bac2108db9\"\n}",
            "type": "json"
          }
        ]
      },
      "error": {
        "examples": [
          {
            "title": "401 Response",
            "content": "HTTP/1.1 401 Unauthorized\n\"Invalid values passed for pin\"",
            "type": "json"
          },
          {
            "title": "404 Response",
            "content": "HTTP/1.1 404 Not Found\n{\n  status: \"error\",\n  data: {},\n  message: \"Did not find anything\"\n}",
            "type": "json"
          }
        ]
      },
      "filename": "src/server/routes/api/rfid.js",
      "groupTitle": "Scanner",
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Object",
              "optional": false,
              "field": "data",
              "description": "<p>User tab information.</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.uid",
              "description": "<p>User's universal ID in remote db</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.pin",
              "description": "<p>User's pin used to check-in</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.name",
              "description": "<p>User's full name</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.shirtSize",
              "description": "<p>User's shirt size</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.diet",
              "description": "<p>User's dietary restrictions</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "data.counter",
              "description": "<p>Food counter for user.</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "data.numScans",
              "description": "<p>Number of scans taken for user (excluding food).</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response Message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success-Response:",
            "content": "HTTP/1.1 200 OK\n{\n  \"status\": \"success\",\n  \"data\": {\n    \"uid\": \"nXNR0z8CrgT4TduIM6y0DpN6wRj1\",\n    \"pin\": \"96\",\n    \"name\": \"Dat Boi\",\n    \"shirtSize\": \"M\",\n    \"diet\": \"Vegetarian\",\n    \"counter\": 0,\n    \"numScans\": 0\n  },\n  \"message\": \"Successfully completed task.\"\n}",
            "type": "json"
          }
        ]
      }
    },
    {
      "type": "post",
      "url": "/rfid/getpin",
      "title": "Get User Info with Pin",
      "version": "2.0.0",
      "name": "GetPin",
      "group": "Scanner",
      "description": "<p>Get all user information from redis that hasn't been assigned an WID tag. Pin is used to currently index user in redis if WID hasn't been set.</p>",
      "permission": [
        {
          "name": "Scanner"
        }
      ],
      "parameter": {
        "fields": {
          "Parameter": [
            {
              "group": "Parameter",
              "type": "Number",
              "optional": false,
              "field": "pin",
              "description": "<p>Pin of user.</p>"
            },
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "apikey",
              "description": "<p>API key for scanner to authenticate.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Request Body Example",
            "content": "{\n  pin: 94,\n  apikey: \"0f865521-2c05-467d-ad43-a9bac2108db9\"\n}",
            "type": "json"
          }
        ]
      },
      "error": {
        "examples": [
          {
            "title": "401 Response",
            "content": "HTTP/1.1 401 Unauthorized\n\"Invalid values passed for pin\"",
            "type": "json"
          },
          {
            "title": "404 Response",
            "content": "HTTP/1.1 404 Not Found\n{\n  status: \"error\",\n  data: {},\n  message: \"Did not find anything\"\n}",
            "type": "json"
          }
        ]
      },
      "filename": "src/_apidoc.js",
      "groupTitle": "Scanner",
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Object",
              "optional": false,
              "field": "data",
              "description": "<p>User tab information.</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.uid",
              "description": "<p>User's universal ID in remote db</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.pin",
              "description": "<p>User's pin used to check-in</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.name",
              "description": "<p>User's full name</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.shirtSize",
              "description": "<p>User's shirt size</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.diet",
              "description": "<p>User's dietary restrictions</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "data.counter",
              "description": "<p>Food counter for user.</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "data.numScans",
              "description": "<p>Number of scans taken for user (excluding food).</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response Message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success-Response:",
            "content": "HTTP/1.1 200 OK\n{\n  \"status\": \"success\",\n  \"data\": {\n    \"uid\": \"nXNR0z8CrgT4TduIM6y0DpN6wRj1\",\n    \"pin\": \"96\",\n    \"name\": \"Dat Boi\",\n    \"shirtSize\": \"M\",\n    \"diet\": \"Vegetarian\",\n    \"counter\": 0,\n    \"numScans\": 0\n  },\n  \"message\": \"Successfully completed task.\"\n}",
            "type": "json"
          }
        ]
      }
    },
    {
      "type": "post",
      "url": "/tabs/getpin",
      "title": "Get User with Pin",
      "version": "1.0.0",
      "name": "GetPin",
      "group": "Scanner",
      "description": "<p>Get all user information from redis that hasn't been assigned an rfid tag. Pin is used to currently index user in redis if rfid hasn't been set.</p>",
      "permission": [
        {
          "name": "Scanner"
        }
      ],
      "parameter": {
        "fields": {
          "Parameter": [
            {
              "group": "Parameter",
              "type": "Number",
              "optional": false,
              "field": "pin",
              "description": "<p>Pin of user.</p>"
            },
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "apikey",
              "description": "<p>API key for scanner to authenticate.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Request Body Example",
            "content": "{\n  pin: 94,\n  apikey: \"0f865521-2c05-467d-ad43-a9bac2108db9\"\n}",
            "type": "json"
          }
        ]
      },
      "error": {
        "examples": [
          {
            "title": "401 Response",
            "content": "HTTP/1.1 401 Unauthorized\n\"Invalid values passed for pin\"",
            "type": "json"
          },
          {
            "title": "404 Response",
            "content": "HTTP/1.1 404 Not Found\n{\n  status: \"error\",\n  data: {},\n  message: \"Did not find anything\"\n}",
            "type": "json"
          }
        ]
      },
      "filename": "src/_apidoc.js",
      "groupTitle": "Scanner",
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Object",
              "optional": false,
              "field": "data",
              "description": "<p>User tab information.</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.uid",
              "description": "<p>User's universal ID in remote db</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.pin",
              "description": "<p>User's pin used to check-in</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.name",
              "description": "<p>User's full name</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.shirtSize",
              "description": "<p>User's shirt size</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.diet",
              "description": "<p>User's dietary restrictions</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "data.counter",
              "description": "<p>Food counter for user.</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "data.numScans",
              "description": "<p>Number of scans taken for user (excluding food).</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response Message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success-Response:",
            "content": "HTTP/1.1 200 OK\n{\n  \"status\": \"success\",\n  \"data\": {\n    \"uid\": \"nXNR0z8CrgT4TduIM6y0DpN6wRj1\",\n    \"pin\": \"96\",\n    \"name\": \"Dat Boi\",\n    \"shirtSize\": \"M\",\n    \"diet\": \"Vegetarian\",\n    \"counter\": 0,\n    \"numScans\": 0\n  },\n  \"message\": \"Successfully completed task.\"\n}",
            "type": "json"
          }
        ]
      }
    },
    {
      "type": "post",
      "url": "/scanner/user-info",
      "title": "Get User Info with Wristband tag",
      "version": "2.3.0",
      "name": "Get_User",
      "group": "Scanner",
      "description": "<p>Get all user information from redis for an WID tag if it has been assigned. WID is used to index user in redis after user has been setup.</p>",
      "permission": [
        {
          "name": "Scanner"
        }
      ],
      "parameter": {
        "fields": {
          "Parameter": [
            {
              "group": "Parameter",
              "type": "Number",
              "optional": false,
              "field": "wid",
              "description": "<p>Wristband ID of user.</p>"
            },
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "apikey",
              "description": "<p>API key for scanner to authenticate.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Request Body Example",
            "content": "{\n  wid: 1695694065,\n  apikey: \"0f865521-2c05-467d-ad43-a9bac2108db9\"\n}",
            "type": "json"
          }
        ]
      },
      "error": {
        "examples": [
          {
            "title": "401 Response",
            "content": "HTTP/1.1 401 Unauthorized\n\"Invalid values passed for wristband id.\"",
            "type": "json"
          },
          {
            "title": "404 Response",
            "content": "HTTP/1.1 404 Not Found\n{\n  status: \"error\",\n  data: {},\n  message: \"Did not find anything\"\n}",
            "type": "json"
          },
          {
            "title": "500 Response",
            "content": "HTTP/1.1 500 Server Error\n{\n  status: \"error\",\n  message: \"Redis database is down\"\n}",
            "type": "json"
          }
        ]
      },
      "filename": "src/server/routes/api/rfid.js",
      "groupTitle": "Scanner",
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Object",
              "optional": false,
              "field": "data",
              "description": "<p>User tab information.</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.uid",
              "description": "<p>User's universal ID in remote db</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.pin",
              "description": "<p>User's pin used to check-in</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.name",
              "description": "<p>User's full name</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.shirtSize",
              "description": "<p>User's shirt size</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.diet",
              "description": "<p>User's dietary restrictions</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "data.counter",
              "description": "<p>Food counter for user.</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "data.numScans",
              "description": "<p>Number of scans taken for user (excluding food).</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response Message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success-Response:",
            "content": "HTTP/1.1 200 OK\n{\n  \"status\": \"success\",\n  \"data\": {\n    \"uid\": \"nXNR0z8CrgT4TduIM6y0DpN6wRj1\",\n    \"pin\": \"96\",\n    \"name\": \"Dat Boi\",\n    \"shirtSize\": \"M\",\n    \"diet\": \"Vegetarian\",\n    \"counter\": 0,\n    \"numScans\": 0\n  },\n  \"message\": \"Successfully completed task.\"\n}",
            "type": "json"
          }
        ]
      }
    },
    {
      "type": "post",
      "url": "/rfid/user-info",
      "title": "Get User Info with Wristband tag",
      "version": "2.0.0",
      "name": "Get_User",
      "group": "Scanner",
      "description": "<p>Get all user information from redis for an WID tag if it has been assigned. WID is used to index user in redis after user has been setup.</p>",
      "permission": [
        {
          "name": "Scanner"
        }
      ],
      "parameter": {
        "fields": {
          "Parameter": [
            {
              "group": "Parameter",
              "type": "Number",
              "optional": false,
              "field": "wid",
              "description": "<p>Wristband ID of user.</p>"
            },
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "apikey",
              "description": "<p>API key for scanner to authenticate.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Request Body Example",
            "content": "{\n  wid: 1695694065,\n  apikey: \"0f865521-2c05-467d-ad43-a9bac2108db9\"\n}",
            "type": "json"
          }
        ]
      },
      "error": {
        "examples": [
          {
            "title": "401 Response",
            "content": "HTTP/1.1 401 Unauthorized\n\"Invalid values passed for wristband id.\"",
            "type": "json"
          },
          {
            "title": "404 Response",
            "content": "HTTP/1.1 404 Not Found\n{\n  status: \"error\",\n  data: {},\n  message: \"Did not find anything\"\n}",
            "type": "json"
          },
          {
            "title": "500 Response",
            "content": "HTTP/1.1 500 Server Error\n{\n  status: \"error\",\n  message: \"Redis database is down\"\n}",
            "type": "json"
          }
        ]
      },
      "filename": "src/_apidoc.js",
      "groupTitle": "Scanner",
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Object",
              "optional": false,
              "field": "data",
              "description": "<p>User tab information.</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.uid",
              "description": "<p>User's universal ID in remote db</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.pin",
              "description": "<p>User's pin used to check-in</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.name",
              "description": "<p>User's full name</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.shirtSize",
              "description": "<p>User's shirt size</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.diet",
              "description": "<p>User's dietary restrictions</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "data.counter",
              "description": "<p>Food counter for user.</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "data.numScans",
              "description": "<p>Number of scans taken for user (excluding food).</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response Message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success-Response:",
            "content": "HTTP/1.1 200 OK\n{\n  \"status\": \"success\",\n  \"data\": {\n    \"uid\": \"nXNR0z8CrgT4TduIM6y0DpN6wRj1\",\n    \"pin\": \"96\",\n    \"name\": \"Dat Boi\",\n    \"shirtSize\": \"M\",\n    \"diet\": \"Vegetarian\",\n    \"counter\": 0,\n    \"numScans\": 0\n  },\n  \"message\": \"Successfully completed task.\"\n}",
            "type": "json"
          }
        ]
      }
    },
    {
      "type": "post",
      "url": "/tabs/user-info",
      "title": "Get User with RFID tag",
      "version": "1.0.0",
      "name": "Get_User",
      "group": "Scanner",
      "description": "<p>Get all user information from redis for an RFID tag if it has been assigned. RFID is used to index user in redis after user has been setup.</p>",
      "permission": [
        {
          "name": "Scanner"
        }
      ],
      "parameter": {
        "fields": {
          "Parameter": [
            {
              "group": "Parameter",
              "type": "Number",
              "optional": false,
              "field": "id",
              "description": "<p>RFID code of user.</p>"
            },
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "apikey",
              "description": "<p>API key for scanner to authenticate.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Request Body Example",
            "content": "{\n  id: 1695694065,\n  apikey: \"0f865521-2c05-467d-ad43-a9bac2108db9\"\n}",
            "type": "json"
          }
        ]
      },
      "error": {
        "examples": [
          {
            "title": "401 Response",
            "content": "HTTP/1.1 401 Unauthorized\n\"Invalid values passed for rfid\"",
            "type": "json"
          },
          {
            "title": "404 Response",
            "content": "HTTP/1.1 404 Not Found\n{\n  status: \"error\",\n  data: {},\n  message: \"Did not find anything\"\n}",
            "type": "json"
          },
          {
            "title": "500 Response",
            "content": "HTTP/1.1 500 Server Error\n{\n  status: \"error\",\n  message: \"Redis database is down\"\n}",
            "type": "json"
          }
        ]
      },
      "filename": "src/_apidoc.js",
      "groupTitle": "Scanner",
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Object",
              "optional": false,
              "field": "data",
              "description": "<p>User tab information.</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.uid",
              "description": "<p>User's universal ID in remote db</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.pin",
              "description": "<p>User's pin used to check-in</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.name",
              "description": "<p>User's full name</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.shirtSize",
              "description": "<p>User's shirt size</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.diet",
              "description": "<p>User's dietary restrictions</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "data.counter",
              "description": "<p>Food counter for user.</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "data.numScans",
              "description": "<p>Number of scans taken for user (excluding food).</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response Message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success-Response:",
            "content": "HTTP/1.1 200 OK\n{\n  \"status\": \"success\",\n  \"data\": {\n    \"uid\": \"nXNR0z8CrgT4TduIM6y0DpN6wRj1\",\n    \"pin\": \"96\",\n    \"name\": \"Dat Boi\",\n    \"shirtSize\": \"M\",\n    \"diet\": \"Vegetarian\",\n    \"counter\": 0,\n    \"numScans\": 0\n  },\n  \"message\": \"Successfully completed task.\"\n}",
            "type": "json"
          }
        ]
      }
    },
    {
      "type": "post",
      "url": "/scanner/assign",
      "title": "Register Wristband ID to User",
      "version": "2.3.0",
      "name": "Register_Wristband",
      "group": "Scanner",
      "description": "<p>Register Wristband to User. Sends assignment to main server, while locally replacing user key to WID code.</p>",
      "permission": [
        {
          "name": "Scanner"
        }
      ],
      "parameter": {
        "fields": {
          "Parameter": [
            {
              "group": "Parameter",
              "type": "Number",
              "optional": false,
              "field": "wid",
              "description": "<p>Wristband ID to set to user.</p>"
            },
            {
              "group": "Parameter",
              "type": "Number",
              "optional": false,
              "field": "pin",
              "description": "<p>Pin of user to add wid code to.</p>"
            },
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "apikey",
              "description": "<p>API key for scanner to authenticate.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Request Body Example",
            "content": "{\n   assignments: {\n     wid: \"RFID1\",\n     pin: 94,\n     apikey: \"0f865521-2c05-467d-ad43-a9bac2108db9\"\n   }\n}",
            "type": "json"
          }
        ]
      },
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Object",
              "optional": false,
              "field": "data",
              "description": "<p>Response from Redis.</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success Response:",
            "content": "HTTP/1.1 200 OK\n{\n  status: \"success\",\n  data: \"OK\",\n  message: \"Created tab.\"\n}",
            "type": "json"
          }
        ]
      },
      "error": {
        "examples": [
          {
            "title": "401 Response",
            "content": "HTTP/1.1 401 Unauthorized\n\"Invalid values passed for wristband id or pin\"",
            "type": "json"
          },
          {
            "title": "404 Response",
            "content": "HTTP/1.1 404 Not Found\n{\n  status: \"error\",\n  data: {'err...'},\n  message: \"Invalid pin\"\n}",
            "type": "json"
          },
          {
            "title": "409 Response",
            "content": "HTTP/1.1 409 Not Found\n{\n  status: 'error',\n  data: {'Existing User data...'},\n  message: 'Wristband Tag already opened.'\n}",
            "type": "json"
          }
        ]
      },
      "filename": "src/server/routes/api/rfid.js",
      "groupTitle": "Scanner"
    },
    {
      "type": "post",
      "url": "/rfid/assign",
      "title": "Register Wristband ID to User",
      "version": "2.2.0",
      "name": "Register_Wristband",
      "group": "Scanner",
      "description": "<p>Register Wristband to User. Sends assignment to main server, while locally replacing user key to WID code.</p>",
      "permission": [
        {
          "name": "Scanner"
        }
      ],
      "parameter": {
        "fields": {
          "Parameter": [
            {
              "group": "Parameter",
              "type": "Number",
              "optional": false,
              "field": "wid",
              "description": "<p>Wristband ID to set to user.</p>"
            },
            {
              "group": "Parameter",
              "type": "Number",
              "optional": false,
              "field": "pin",
              "description": "<p>Pin of user to add wid code to.</p>"
            },
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "apikey",
              "description": "<p>API key for scanner to authenticate.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Request Body Example",
            "content": "{\n   assignments: {\n     wid: \"RFID1\",\n     pin: 94,\n     apikey: \"0f865521-2c05-467d-ad43-a9bac2108db9\"\n   }\n}",
            "type": "json"
          }
        ]
      },
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Object",
              "optional": false,
              "field": "data",
              "description": "<p>Response from Redis.</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success Response:",
            "content": "HTTP/1.1 200 OK\n{\n  status: \"success\",\n  data: \"OK\",\n  message: \"Created tab.\"\n}",
            "type": "json"
          }
        ]
      },
      "error": {
        "examples": [
          {
            "title": "401 Response",
            "content": "HTTP/1.1 401 Unauthorized\n\"Invalid values passed for wristband id or pin\"",
            "type": "json"
          },
          {
            "title": "404 Response",
            "content": "HTTP/1.1 404 Not Found\n{\n  status: \"error\",\n  data: {'err...'},\n  message: \"Invalid pin\"\n}",
            "type": "json"
          },
          {
            "title": "409 Response",
            "content": "HTTP/1.1 409 Not Found\n{\n  status: 'error',\n  data: {'Existing User data...'},\n  message: 'Wristband Tag already opened.'\n}",
            "type": "json"
          }
        ]
      },
      "filename": "src/_apidoc.js",
      "groupTitle": "Scanner"
    },
    {
      "type": "post",
      "url": "/rfid/assignment",
      "title": "Register Wristband ID to User",
      "version": "2.0.0",
      "name": "Register_Wristband",
      "group": "Scanner",
      "description": "<p>Register Wristband to User. Sends assignment to main server, while locally replacing user key to WID code.</p>",
      "permission": [
        {
          "name": "Scanner"
        }
      ],
      "parameter": {
        "fields": {
          "Parameter": [
            {
              "group": "Parameter",
              "type": "Number",
              "optional": false,
              "field": "wid",
              "description": "<p>Wristband ID to set to user.</p>"
            },
            {
              "group": "Parameter",
              "type": "Number",
              "optional": false,
              "field": "pin",
              "description": "<p>Pin of user to add wid code to.</p>"
            },
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "apikey",
              "description": "<p>API key for scanner to authenticate.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Request Body Example",
            "content": "{\n    wid: \"RFID1\",\n    pin: 94,\n    apikey: \"0f865521-2c05-467d-ad43-a9bac2108db9\"\n}",
            "type": "json"
          }
        ]
      },
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Object",
              "optional": false,
              "field": "data",
              "description": "<p>Response from Redis.</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success Response:",
            "content": "HTTP/1.1 200 OK\n{\n  status: \"success\",\n  data: \"OK\",\n  message: \"Created tab.\"\n}",
            "type": "json"
          }
        ]
      },
      "error": {
        "examples": [
          {
            "title": "401 Response",
            "content": "HTTP/1.1 401 Unauthorized\n\"Invalid values passed for wristband id or pin\"",
            "type": "json"
          },
          {
            "title": "404 Response",
            "content": "HTTP/1.1 404 Not Found\n{\n  status: \"error\",\n  data: {'err...'},\n  message: \"Invalid pin\"\n}",
            "type": "json"
          },
          {
            "title": "409 Response",
            "content": "HTTP/1.1 409 Not Found\n{\n  status: 'error',\n  data: {'Existing User data...'},\n  message: 'Wristband Tag already opened.'\n}",
            "type": "json"
          }
        ]
      },
      "filename": "src/_apidoc.js",
      "groupTitle": "Scanner"
    },
    {
      "type": "post",
      "url": "/tabs/setup",
      "title": "Register RFID Band to User",
      "version": "1.0.0",
      "name": "Register_Wristband",
      "group": "Scanner",
      "description": "<p>Register RFID Band to User. Sends assignment to main server, while locally replacing user key to RFID code.</p>",
      "permission": [
        {
          "name": "Scanner"
        }
      ],
      "parameter": {
        "fields": {
          "Parameter": [
            {
              "group": "Parameter",
              "type": "Number",
              "optional": false,
              "field": "id",
              "description": "<p>RFID code to set to user.</p>"
            },
            {
              "group": "Parameter",
              "type": "Number",
              "optional": false,
              "field": "pin",
              "description": "<p>Pin of user to add rfid code to.</p>"
            },
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "apikey",
              "description": "<p>API key for scanner to authenticate.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Request Body Example",
            "content": "{\n  id: \"RFID1\",\n  pin: 94,\n  apikey: \"0f865521-2c05-467d-ad43-a9bac2108db9\"\n}",
            "type": "json"
          }
        ]
      },
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Object",
              "optional": false,
              "field": "data",
              "description": "<p>Response from Redis.</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success Response:",
            "content": "HTTP/1.1 200 OK\n{\n  status: \"success\",\n  data: \"OK\",\n  message: \"Created tab.\"\n}",
            "type": "json"
          }
        ]
      },
      "error": {
        "examples": [
          {
            "title": "401 Response",
            "content": "HTTP/1.1 401 Unauthorized\n\"Invalid values passed for rfid or pin\"",
            "type": "json"
          },
          {
            "title": "404 Response",
            "content": "HTTP/1.1 404 Not Found\n{\n  status: \"error\",\n  data: {'err...'},\n  message: \"Invalid pin\"\n}",
            "type": "json"
          },
          {
            "title": "409 Response",
            "content": "HTTP/1.1 409 Not Found\n{\n  status: 'error',\n  data: {'Existing User data...'},\n  message: 'RFID Tag already opened.'\n}",
            "type": "json"
          }
        ]
      },
      "filename": "src/_apidoc.js",
      "groupTitle": "Scanner"
    },
    {
      "type": "post",
      "url": "/scanner/scan",
      "title": "Add User Scan",
      "version": "2.3.0",
      "name": "ScanData",
      "group": "Scanner",
      "description": "<p>Store and log scan location, wid tag and timestamp. Verify if user is allowed to enter, and send response back. Redis will also send the scan data to the main server asynchronously. Scanners will not find out if those requests will succeed or fail.</p>",
      "permission": [
        {
          "name": "Scanner"
        }
      ],
      "parameter": {
        "fields": {
          "Parameter": [
            {
              "group": "Parameter",
              "type": "Number",
              "optional": false,
              "field": "wid",
              "description": "<p>Wristband ID of user.</p>"
            },
            {
              "group": "Parameter",
              "type": "Number",
              "optional": false,
              "field": "location",
              "description": "<p>Location id that scan occurred at. (Set id's in admin app)</p>"
            },
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "apikey",
              "description": "<p>API key for scanner to authenticate.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Request Body Example",
            "content": "{\n  wid: 1695694065,\n  location: 3,\n  apikey: \"0f865521-2c05-467d-ad43-a9bac2108db9\"\n}",
            "type": "json"
          }
        ]
      },
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Object",
              "optional": false,
              "field": "data",
              "description": "<p>User tab information.</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.uid",
              "description": "<p>User's universal ID in remote db</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.pin",
              "description": "<p>User's pin used to check-in</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.name",
              "description": "<p>User's full name</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.shirtSize",
              "description": "<p>User's shirt size</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.diet",
              "description": "<p>User's dietary restrictions</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "data.counter",
              "description": "<p>Food counter for user.</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "data.numScans",
              "description": "<p>Number of scans taken for user (excluding food).</p>"
            },
            {
              "group": "Success 200",
              "type": "Boolean",
              "optional": false,
              "field": "data.isRepeat",
              "description": "<p>Whether user is a repeat scan or not (essentially allow/deny).</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response Message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success-Response:",
            "content": "HTTP/1.1 200 OK\n{\n  \"status\": \"success\",\n  \"data\": {\n    \"uid\": \"nXNR0z8CrgT4TduIM6y0DpN6wRj1\",\n    \"pin\": \"96\",\n    \"name\": \"Dat Boi\",\n    \"shirtSize\": \"M\",\n    \"diet\": \"Vegetarian\",\n    \"counter\": 0,\n    \"numScans\": 0,\n    \"isRepeat\": false\n  },\n  \"message\": \"Successfully completed task.\"\n}",
            "type": "json"
          }
        ]
      },
      "error": {
        "examples": [
          {
            "title": "401 Response",
            "content": "HTTP/1.1 401 Unauthorized\n\"Invalid values passed for pin\"",
            "type": "json"
          },
          {
            "title": "404 Response",
            "content": "HTTP/1.1 404 Not Found\n{\n  status: \"error\",\n  data: 0,\n  message: \"Does not exist.\"\n}",
            "type": "json"
          },
          {
            "title": "417 Response",
            "content": "HTTP/1.1 417 Expectation Failed\n{\n  status: 'error',\n  data: {...},\n  message: 'Couldn\\'t find wid'\n}",
            "type": "json"
          }
        ]
      },
      "filename": "src/server/routes/api/rfid.js",
      "groupTitle": "Scanner"
    },
    {
      "type": "post",
      "url": "/rfid/scan",
      "title": "Add User Scan",
      "version": "2.0.0",
      "name": "ScanData",
      "group": "Scanner",
      "description": "<p>Store and log scan location, wid tag and timestamp. Verify if user is allowed to enter, and send response back. Redis will also send the scan data to the main server asynchronously. Scanners will not find out if those requests will succeed or fail.</p>",
      "permission": [
        {
          "name": "Scanner"
        }
      ],
      "parameter": {
        "fields": {
          "Parameter": [
            {
              "group": "Parameter",
              "type": "Number",
              "optional": false,
              "field": "wid",
              "description": "<p>Wristband ID of user.</p>"
            },
            {
              "group": "Parameter",
              "type": "Number",
              "optional": false,
              "field": "location",
              "description": "<p>Location id that scan occurred at. (Set id's in admin app)</p>"
            },
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "apikey",
              "description": "<p>API key for scanner to authenticate.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Request Body Example",
            "content": "{\n  wid: 1695694065,\n  location: 3,\n  apikey: \"0f865521-2c05-467d-ad43-a9bac2108db9\"\n}",
            "type": "json"
          }
        ]
      },
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Object",
              "optional": false,
              "field": "data",
              "description": "<p>User tab information.</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.uid",
              "description": "<p>User's universal ID in remote db</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.pin",
              "description": "<p>User's pin used to check-in</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.name",
              "description": "<p>User's full name</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.shirtSize",
              "description": "<p>User's shirt size</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.diet",
              "description": "<p>User's dietary restrictions</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "data.counter",
              "description": "<p>Food counter for user.</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "data.numScans",
              "description": "<p>Number of scans taken for user (excluding food).</p>"
            },
            {
              "group": "Success 200",
              "type": "Boolean",
              "optional": false,
              "field": "data.isRepeat",
              "description": "<p>Whether user is a repeat scan or not (essentially allow/deny).</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response Message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success-Response:",
            "content": "HTTP/1.1 200 OK\n{\n  \"status\": \"success\",\n  \"data\": {\n    \"uid\": \"nXNR0z8CrgT4TduIM6y0DpN6wRj1\",\n    \"pin\": \"96\",\n    \"name\": \"Dat Boi\",\n    \"shirtSize\": \"M\",\n    \"diet\": \"Vegetarian\",\n    \"counter\": 0,\n    \"numScans\": 0,\n    \"isRepeat\": false\n  },\n  \"message\": \"Successfully completed task.\"\n}",
            "type": "json"
          }
        ]
      },
      "error": {
        "examples": [
          {
            "title": "401 Response",
            "content": "HTTP/1.1 401 Unauthorized\n\"Invalid values passed for pin\"",
            "type": "json"
          },
          {
            "title": "404 Response",
            "content": "HTTP/1.1 404 Not Found\n{\n  status: \"error\",\n  data: 0,\n  message: \"Does not exist.\"\n}",
            "type": "json"
          },
          {
            "title": "417 Response",
            "content": "HTTP/1.1 417 Expectation Failed\n{\n  status: 'error',\n  data: {...},\n  message: 'Couldn\\'t find wid'\n}",
            "type": "json"
          }
        ]
      },
      "filename": "src/_apidoc.js",
      "groupTitle": "Scanner"
    },
    {
      "type": "post",
      "url": "/tabs/add",
      "title": "Add User Scan",
      "version": "1.0.0",
      "name": "ScanData",
      "group": "Scanner",
      "description": "<p>Store and log scan location, rfid tag and timestamp. Verify if user is allowed to enter, and send response back. Redis will also send the scan data to the main server asynchronously. Scanners will not find out if those requests will succeed or fail.</p>",
      "permission": [
        {
          "name": "Scanner"
        }
      ],
      "parameter": {
        "fields": {
          "Parameter": [
            {
              "group": "Parameter",
              "type": "Number",
              "optional": false,
              "field": "id",
              "description": "<p>RFID code of user.</p>"
            },
            {
              "group": "Parameter",
              "type": "Number",
              "optional": false,
              "field": "location",
              "description": "<p>Location id that scan occurred at. (Set id's in admin app)</p>"
            },
            {
              "group": "Parameter",
              "type": "String",
              "optional": false,
              "field": "apikey",
              "description": "<p>API key for scanner to authenticate.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Request Body Example",
            "content": "{\n  id: 1695694065,\n  location: 3,\n  apikey: \"0f865521-2c05-467d-ad43-a9bac2108db9\"\n}",
            "type": "json"
          }
        ]
      },
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "status",
              "description": "<p>Status of response.</p>"
            },
            {
              "group": "Success 200",
              "type": "Object",
              "optional": false,
              "field": "data",
              "description": "<p>User tab information.</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.uid",
              "description": "<p>User's universal ID in remote db</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.pin",
              "description": "<p>User's pin used to check-in</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.name",
              "description": "<p>User's full name</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.shirtSize",
              "description": "<p>User's shirt size</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "data.diet",
              "description": "<p>User's dietary restrictions</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "data.counter",
              "description": "<p>Food counter for user.</p>"
            },
            {
              "group": "Success 200",
              "type": "Number",
              "optional": false,
              "field": "data.numScans",
              "description": "<p>Number of scans taken for user (excluding food).</p>"
            },
            {
              "group": "Success 200",
              "type": "Boolean",
              "optional": false,
              "field": "data.isRepeat",
              "description": "<p>Whether user is a repeat scan or not (essentially allow/deny).</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "message",
              "description": "<p>Response Message.</p>"
            }
          ]
        },
        "examples": [
          {
            "title": "Success-Response:",
            "content": "HTTP/1.1 200 OK\n{\n  \"status\": \"success\",\n  \"data\": {\n    \"uid\": \"nXNR0z8CrgT4TduIM6y0DpN6wRj1\",\n    \"pin\": \"96\",\n    \"name\": \"Dat Boi\",\n    \"shirtSize\": \"M\",\n    \"diet\": \"Vegetarian\",\n    \"counter\": 0,\n    \"numScans\": 0,\n    \"isRepeat\": false\n  },\n  \"message\": \"Successfully completed task.\"\n}",
            "type": "json"
          }
        ]
      },
      "error": {
        "examples": [
          {
            "title": "401 Response",
            "content": "HTTP/1.1 401 Unauthorized\n\"Invalid values passed for pin\"",
            "type": "json"
          },
          {
            "title": "404 Response",
            "content": "HTTP/1.1 404 Not Found\n{\n  status: \"error\",\n  data: 0,\n  message: \"Does not exist.\"\n}",
            "type": "json"
          },
          {
            "title": "417 Response",
            "content": "HTTP/1.1 417 Expectation Failed\n{\n  status: 'error',\n  data: {...},\n  message: 'Couldn\\'t find rfid'\n}",
            "type": "json"
          }
        ]
      },
      "filename": "src/_apidoc.js",
      "groupTitle": "Scanner"
    },
    {
      "success": {
        "fields": {
          "Success 200": [
            {
              "group": "Success 200",
              "optional": false,
              "field": "varname1",
              "description": "<p>No type.</p>"
            },
            {
              "group": "Success 200",
              "type": "String",
              "optional": false,
              "field": "varname2",
              "description": "<p>With type.</p>"
            }
          ]
        }
      },
      "type": "",
      "url": "",
      "version": "0.0.0",
      "filename": "src/client/doc/main.js",
      "group": "_Users_PranavJain_Documents_Penn_State_Extracuricullars_HackPSU_Redis_Server_src_client_doc_main_js",
      "groupTitle": "_Users_PranavJain_Documents_Penn_State_Extracuricullars_HackPSU_Redis_Server_src_client_doc_main_js",
      "name": ""
    }
  ] });
  