{"action":"created","comment":{"url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/pulls/comments/61362067","id":61362067,"diff_hunk":"@@ -0,0 +1,206 @@\n+This is the system documentation for our POS System. It will cover all the files in our system and go one by one and describing what they do.\n+\n+In the root directory you will find these files that contribute to our project.\n+\n+Database.py -\n+Overview: This is the Database class that we use throughout the project that connects our code to the database, we are using heroku's database tools\n+to connect this class to the DB\n+\n+Use Cases:\n+We have our Get queries. These queries get information from the database, and don't write any information from the database. They are\n+named exactly what they are supposed to do.\n+\n+We have our User queries, these queries interact with user data and can write and read information from the database.\n+\n+We have our Insert queries, these queries insert information into the database, it will write transaction, and put new information into\n+the database.\n+\n+We have our Update queries, these queries don't insert any new rows into the database, but they will update existing rows in the\n+database.\n+\n+DatabaseUrlGenerator.py -\n+Overview: This file will get the database url for local development and for production development so we don't have that in our codebase\n+\n+Use Cases:\n+getLines(): This will get database info from a text file on production.\n+\n+getDatabaseUrl(): This will grab the database url from the text file and actually use it in the DbConnection.py file\n+\n+DbConnection.py -\n+Overview: This is the code that handles the returning and connecting to the URL of the database. This is a pretty simple interaction.\n+This class is only used in the Database.py class, it allows for that class to connect to the database on Heroku.\n+\n+Use Cases:\n+There are only 2 use cases for this class:\n+\n+readQuery, this function is used for the get queries in Database.py, it gives us information back from the database in python List form.\n+\n+writeQuery, this function doesn't return anything because it is used for insert and update queries in Database.py.\n+\n+These are only supposed to be used in Database.py class.\n+\n+\n+DatabaseUtils.py -\n+Overview: This is a file that holds a lot of logic and utilities away from the queries and the main file.\n+\n+Use Cases:\n+\n+getTotalPrice, this will get the total price for the items in the users cart it is used in the main.py file.\n+\n+newCustomer, this will write a name and an email to the database.\n+\n+newTransaction, this will write a new transaction to the database with a random transaction id associated with it.\n+\n+listToString, this function will take the list of items from the cart and make them a list for transactions inserting.\n+\n+createSale, this function will create a sale from the manager page and do the appropriate things in the database.\n+\n+moneyMadeFromProduct, this function will calculate the money made from each product in your inventory. Available from the manager page.\n+\n+generateReport, this will create a report of all the items in the database with the moneyMadeFromProduct on them.\n+\n+purchasedItems, this function will subtract purchased items from the inventory_log when someone buys something from the inventory.\n+\n+addToSearchQuery, this adds things to the cashiers search query.\n+\n+addToManagerSearchQuery, this will do the same thing as above but for the manager only.\n+\n+main.py -\n+Overview: This is the brain of our program. It handles all the internet requests, and handles all of the routes for the system.\n+Most of the program connects to the main.\n+\n+Use Cases: Its hard to gauge use cases for this function since none of its functions can really be called but we will still go over what they do.\n+We will be covering what the routes do.\n+\n+@app.route(\"/managerPage\")\n+This route will take us to the manager page and will render that page and pass all necessary inputs in.\n+\n+@app.route(\"/searchInventoryById\", methods=[\"POST\"])\n+This route will ask the database class for its method getById and grabs a product id passed and gives back the row of information\n+containing that product id.\n+\n+@app.route(\"/searchInventoryByName\", methods=[\"POST\"])\n+This route will ask the database class for its method getByName and grabs a name passed and gives back the row(s) of information\n+containing that product name.\n+\n+@app.route(\"/searchEmailsByName\", methods=[\"POST\"])\n+This route will ask the database class for its method getUser and grabs an email passed and gives back the row of information\n+containing that user.\n+\n+@app.route(\"/login\", methods=[\"GET\",\"POST\"])\n+Uses the user login package to log a user in and create the session objects for that user.\n+\n+@app.route(\"/logout\")\n+This route will log the user out and clear their session objects\n+\n+@app.route(\"/pos\")\n+This route will render the pos.html template and gets passed all necessary inputs.\n+\n+@app.route(\"/cart\", methods=[\"POST\"])\n+This method is a little more complicated, This method takes in input from the cashier, which is the product id. Looks that product up in the\n+database, then adds it to the screen where the user and cashier can see their total amount. This also keeps track of what is in the\n+users cart.\n+\n+\n+@app.route(\"/checkout\")\n+This method leads the cashier from the cart to the checkout page. This route renders the checkout page\n+\n+@app.route(\"/methodOfPayment\")\n+Here we have the last method for the cashier to hit, this method will accept a form of payment for the items on the checkout page. After\n+the cashier has entered payment it will clear the cart and the total for the current person.\n+\n+@app.route(\"/search\")\n+This method will take input from the user and search the database for what the user is looking by\n+Possible search queries are:\n+price\n+product_id\n+product name\n+supplier\n+It will return what the database finds in the table on the POS page\n+\n+\n+@app.route(\"/profitReport\")\n+This method does pretty much what it says. It gives back a profit report of all the items in the inventory.\n+\n+@app.route(\"/managerSearch\")\n+This does the same thing as before, but it searches the database for the manager.\n+\n+@app.route(\"/createSale\")\n+This will create sales and lower or give price decreases on products in the database. Only the manager can access this functionality.\n+\n+\n+UserLoginPackage.py -\n+Overview: This code allows us to make users and create session objects for those users and allow them to log in and use the system.\n+\n+The login html is used to when requireLogin is called\n+\n+loginErrorHtml is thrown when someone enters bad credentials\n+\n+Use Cases/Functions:\n+requireLogin: This function can be called to make someone log in before accessing parts of the system, keeping it secure so not just anyone can access it\n+\n+requireManagerLogin: This function can be called where a manager is supposed to log in and it makes sure a manager is logging in not just a cashier.\n+\n+logout: This function logs both managers and cashiers out, it clears all session objects associated with them as well.\n+\n+login: This function is used to log a user in and it will check the username and the password to make sure they are both correct and in the db, it will then\n+create new session object associated with that user so we can have multiple users going at the same time not just one person using it.\n+\n+\n+\n+script.py -\n+Overview: This code allows us to run tests before deploying our production environment. It makes sure there are no errors in anything we have coded before giving it to the\n+customer.\n+\n+Use Cases:\n+\n+getCreds, this function will get the credentials from a file to run the tests with.","path":"SystemDocumentation/SystemDocs.txt","position":157,"original_position":157,"commit_id":"8596c713b8e7f83f0b29fcc628d1a2e35e91b7ca","original_commit_id":"8596c713b8e7f83f0b29fcc628d1a2e35e91b7ca","user":{"login":"ethanphunter","id":10714947,"avatar_url":"https://avatars.githubusercontent.com/u/10714947?v=3","gravatar_id":"","url":"https://api.github.com/users/ethanphunter","html_url":"https://github.com/ethanphunter","followers_url":"https://api.github.com/users/ethanphunter/followers","following_url":"https://api.github.com/users/ethanphunter/following{/other_user}","gists_url":"https://api.github.com/users/ethanphunter/gists{/gist_id}","starred_url":"https://api.github.com/users/ethanphunter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ethanphunter/subscriptions","organizations_url":"https://api.github.com/users/ethanphunter/orgs","repos_url":"https://api.github.com/users/ethanphunter/repos","events_url":"https://api.github.com/users/ethanphunter/events{/privacy}","received_events_url":"https://api.github.com/users/ethanphunter/received_events","type":"User","site_admin":false},"body":"file for local testing, environment variable in the pipeline","created_at":"2016-04-28T01:12:15Z","updated_at":"2016-04-28T01:12:15Z","html_url":"https://github.com/ethanphunter/PointOfSaleProject/pull/71#discussion_r61362067","pull_request_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/pulls/71","_links":{"self":{"href":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/pulls/comments/61362067"},"html":{"href":"https://github.com/ethanphunter/PointOfSaleProject/pull/71#discussion_r61362067"},"pull_request":{"href":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/pulls/71"}}},"pull_request":{"url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/pulls/71","id":67642644,"html_url":"https://github.com/ethanphunter/PointOfSaleProject/pull/71","diff_url":"https://github.com/ethanphunter/PointOfSaleProject/pull/71.diff","patch_url":"https://github.com/ethanphunter/PointOfSaleProject/pull/71.patch","issue_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/issues/71","number":71,"state":"open","locked":false,"title":"[WIP]Added a system documentation foler","user":{"login":"calvinbrown085","id":7631143,"avatar_url":"https://avatars.githubusercontent.com/u/7631143?v=3","gravatar_id":"","url":"https://api.github.com/users/calvinbrown085","html_url":"https://github.com/calvinbrown085","followers_url":"https://api.github.com/users/calvinbrown085/followers","following_url":"https://api.github.com/users/calvinbrown085/following{/other_user}","gists_url":"https://api.github.com/users/calvinbrown085/gists{/gist_id}","starred_url":"https://api.github.com/users/calvinbrown085/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calvinbrown085/subscriptions","organizations_url":"https://api.github.com/users/calvinbrown085/orgs","repos_url":"https://api.github.com/users/calvinbrown085/repos","events_url":"https://api.github.com/users/calvinbrown085/events{/privacy}","received_events_url":"https://api.github.com/users/calvinbrown085/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-04-24T16:47:21Z","updated_at":"2016-04-28T01:12:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7d9a94232ad8f8302fdcb5639d10bfd9832d1679","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/pulls/71/commits","review_comments_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/pulls/71/comments","review_comment_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/issues/71/comments","statuses_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/statuses/8596c713b8e7f83f0b29fcc628d1a2e35e91b7ca","head":{"label":"ethanphunter:SystemDocumentation","ref":"SystemDocumentation","sha":"8596c713b8e7f83f0b29fcc628d1a2e35e91b7ca","user":{"login":"ethanphunter","id":10714947,"avatar_url":"https://avatars.githubusercontent.com/u/10714947?v=3","gravatar_id":"","url":"https://api.github.com/users/ethanphunter","html_url":"https://github.com/ethanphunter","followers_url":"https://api.github.com/users/ethanphunter/followers","following_url":"https://api.github.com/users/ethanphunter/following{/other_user}","gists_url":"https://api.github.com/users/ethanphunter/gists{/gist_id}","starred_url":"https://api.github.com/users/ethanphunter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ethanphunter/subscriptions","organizations_url":"https://api.github.com/users/ethanphunter/orgs","repos_url":"https://api.github.com/users/ethanphunter/repos","events_url":"https://api.github.com/users/ethanphunter/events{/privacy}","received_events_url":"https://api.github.com/users/ethanphunter/received_events","type":"User","site_admin":false},"repo":{"id":51096443,"name":"PointOfSaleProject","full_name":"ethanphunter/PointOfSaleProject","owner":{"login":"ethanphunter","id":10714947,"avatar_url":"https://avatars.githubusercontent.com/u/10714947?v=3","gravatar_id":"","url":"https://api.github.com/users/ethanphunter","html_url":"https://github.com/ethanphunter","followers_url":"https://api.github.com/users/ethanphunter/followers","following_url":"https://api.github.com/users/ethanphunter/following{/other_user}","gists_url":"https://api.github.com/users/ethanphunter/gists{/gist_id}","starred_url":"https://api.github.com/users/ethanphunter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ethanphunter/subscriptions","organizations_url":"https://api.github.com/users/ethanphunter/orgs","repos_url":"https://api.github.com/users/ethanphunter/repos","events_url":"https://api.github.com/users/ethanphunter/events{/privacy}","received_events_url":"https://api.github.com/users/ethanphunter/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ethanphunter/PointOfSaleProject","description":"","fork":false,"url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject","forks_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/forks","keys_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/teams","hooks_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/hooks","issue_events_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/issues/events{/number}","events_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/events","assignees_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/assignees{/user}","branches_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/branches{/branch}","tags_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/tags","blobs_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/git/refs{/sha}","trees_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/statuses/{sha}","languages_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/languages","stargazers_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/stargazers","contributors_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/contributors","subscribers_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/subscribers","subscription_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/subscription","commits_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/commits{/sha}","git_commits_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/git/commits{/sha}","comments_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/comments{/number}","issue_comment_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/issues/comments{/number}","contents_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/contents/{+path}","compare_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/merges","archive_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/downloads","issues_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/issues{/number}","pulls_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/pulls{/number}","milestones_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/milestones{/number}","notifications_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/labels{/name}","releases_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/releases{/id}","deployments_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/deployments","created_at":"2016-02-04T18:34:47Z","updated_at":"2016-03-11T01:46:25Z","pushed_at":"2016-04-28T00:29:13Z","git_url":"git://github.com/ethanphunter/PointOfSaleProject.git","ssh_url":"git@github.com:ethanphunter/PointOfSaleProject.git","clone_url":"https://github.com/ethanphunter/PointOfSaleProject.git","svn_url":"https://github.com/ethanphunter/PointOfSaleProject","homepage":"https://cryptic-crag-17136.herokuapp.com","size":1787,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":13,"forks":0,"open_issues":13,"watchers":0,"default_branch":"master"}},"base":{"label":"ethanphunter:master","ref":"master","sha":"aef0e51f751c86cb57ccb994993f27184eacfd3f","user":{"login":"ethanphunter","id":10714947,"avatar_url":"https://avatars.githubusercontent.com/u/10714947?v=3","gravatar_id":"","url":"https://api.github.com/users/ethanphunter","html_url":"https://github.com/ethanphunter","followers_url":"https://api.github.com/users/ethanphunter/followers","following_url":"https://api.github.com/users/ethanphunter/following{/other_user}","gists_url":"https://api.github.com/users/ethanphunter/gists{/gist_id}","starred_url":"https://api.github.com/users/ethanphunter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ethanphunter/subscriptions","organizations_url":"https://api.github.com/users/ethanphunter/orgs","repos_url":"https://api.github.com/users/ethanphunter/repos","events_url":"https://api.github.com/users/ethanphunter/events{/privacy}","received_events_url":"https://api.github.com/users/ethanphunter/received_events","type":"User","site_admin":false},"repo":{"id":51096443,"name":"PointOfSaleProject","full_name":"ethanphunter/PointOfSaleProject","owner":{"login":"ethanphunter","id":10714947,"avatar_url":"https://avatars.githubusercontent.com/u/10714947?v=3","gravatar_id":"","url":"https://api.github.com/users/ethanphunter","html_url":"https://github.com/ethanphunter","followers_url":"https://api.github.com/users/ethanphunter/followers","following_url":"https://api.github.com/users/ethanphunter/following{/other_user}","gists_url":"https://api.github.com/users/ethanphunter/gists{/gist_id}","starred_url":"https://api.github.com/users/ethanphunter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ethanphunter/subscriptions","organizations_url":"https://api.github.com/users/ethanphunter/orgs","repos_url":"https://api.github.com/users/ethanphunter/repos","events_url":"https://api.github.com/users/ethanphunter/events{/privacy}","received_events_url":"https://api.github.com/users/ethanphunter/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ethanphunter/PointOfSaleProject","description":"","fork":false,"url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject","forks_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/forks","keys_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/teams","hooks_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/hooks","issue_events_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/issues/events{/number}","events_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/events","assignees_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/assignees{/user}","branches_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/branches{/branch}","tags_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/tags","blobs_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/git/refs{/sha}","trees_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/statuses/{sha}","languages_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/languages","stargazers_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/stargazers","contributors_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/contributors","subscribers_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/subscribers","subscription_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/subscription","commits_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/commits{/sha}","git_commits_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/git/commits{/sha}","comments_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/comments{/number}","issue_comment_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/issues/comments{/number}","contents_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/contents/{+path}","compare_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/merges","archive_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/downloads","issues_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/issues{/number}","pulls_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/pulls{/number}","milestones_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/milestones{/number}","notifications_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/labels{/name}","releases_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/releases{/id}","deployments_url":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/deployments","created_at":"2016-02-04T18:34:47Z","updated_at":"2016-03-11T01:46:25Z","pushed_at":"2016-04-28T00:29:13Z","git_url":"git://github.com/ethanphunter/PointOfSaleProject.git","ssh_url":"git@github.com:ethanphunter/PointOfSaleProject.git","clone_url":"https://github.com/ethanphunter/PointOfSaleProject.git","svn_url":"https://github.com/ethanphunter/PointOfSaleProject","homepage":"https://cryptic-crag-17136.herokuapp.com","size":1787,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":13,"forks":0,"open_issues":13,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/pulls/71"},"html":{"href":"https://github.com/ethanphunter/PointOfSaleProject/pull/71"},"issue":{"href":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/issues/71"},"comments":{"href":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/issues/71/comments"},"review_comments":{"href":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/pulls/71/comments"},"review_comment":{"href":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/pulls/71/commits"},"statuses":{"href":"https://api.github.com/repos/ethanphunter/PointOfSaleProject/statuses/8596c713b8e7f83f0b29fcc628d1a2e35e91b7ca"}}}}