random.dog
random.dog copied to clipboard
woof
random.dog
The nodejs code behind random.dog
Prerequisites
node@^10.1.0yarn@^1.6.0
Setup
git cloneyarnyarn start- http://localhost:8080/
Tests
yarn testyarn tdd
Security Setup
/reviewrequires a cookie namedbone- The value should be some base64 encoded text that, when hashed with bcrypt, matches the hash stored in a file named
secret.jsonlocated in the project root folder - The json in
secret.jsonshould be like this:{"secret": "<put hash here>"}
- Use bcrypt-cli to hash the password to store in the
secret.json - Example cookie header:
Cookie: bone=cGFzc3dvcmQ=
- The value should be some base64 encoded text that, when hashed with bcrypt, matches the hash stored in a file named
API
On the GET /woof, GET /woof.json, and GET /doggos endpoints, you may add a query parameter called filter which should have 1 or more file extensions, separated by commas. When hitting any of the above 3 endpoints with the filter param, that endpoint will only return dogs that do not have one of the filtered extensions. There is also an include query param that does the opposite of filter.
Example: GET random.dog/woof?filter=mp4,webm will only return dogs that do not have an extension of mp4 or webm.
Example: GET random.dog/woof?include=mp4,webm will only return dogs that do have an extension of mp4 or webm.