For some reason, I cannot setup travis CI.  The profile page is not showing my forked repository even after refresh.  I will keep trying during this work but for now, I will carry on without it and run the tests locally without coverage.

Even though I know of the requirement to password protect the sales, I am going to start with the basics and get the creation, reading and deleting of the resource working.
The reason for this decision is that the mechanism for passing the password in both the creation and reading of the sales has not been specified, so in a real life scenario, I would propose the options to the relevant UI developer(s) and whilst waiting for a decision to be made, I can be focussing on this code without the password protection.
This commit is purely for the specification for the endpoints as I see  it at this point.  Under normal circumstances, I would not have committed at this point as the tests are not passing. An exception to this rule might be if I were working on a feature branch with other team members who want to share my code even though it is not stable.
The first thing that was failing in the integration test was the fact that the sale model was not defined, so I have defined that here and unit tested it to ensure that it persists to the database and the fields come back in the expected format.
The integration test still wont work as the URL is not routed yet.