From 8acfdfdb4c5ee8157f95c8e0298be7c5e8fe90ca Mon Sep 17 00:00:00 2001 From: chad kidd Date: Tue, 7 Jan 2020 00:08:10 -0800 Subject: [PATCH 01/11] added whitenoise middleware to settings --- Pipfile | 3 + Pipfile.lock | 339 ++++++++++++++++++++++++++++++++++++++++ adv_project/settings.py | 10 ++ adventure/api.py | 33 +++- 4 files changed, 378 insertions(+), 7 deletions(-) create mode 100644 Pipfile.lock diff --git a/Pipfile b/Pipfile index 27dbdcf94..bcf3b796e 100644 --- a/Pipfile +++ b/Pipfile @@ -14,6 +14,9 @@ django-cors-headers = "*" gunicorn = "*" django-heroku = "*" django-rest-api = "*" +dj-database-url = "*" +whitenoise = "*" + [dev-packages] diff --git a/Pipfile.lock b/Pipfile.lock new file mode 100644 index 000000000..084899632 --- /dev/null +++ b/Pipfile.lock @@ -0,0 +1,339 @@ +{ + "_meta": { + "hash": { + "sha256": "17eec468e6a7c37ebaa90ee50ec1526436a31077100081d693f9e6ca24a8c031" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.7" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "asgiref": { + "hashes": [ + "sha256:7e06d934a7718bf3975acbf87780ba678957b87c7adc056f13b6215d610695a0", + "sha256:ea448f92fc35a0ef4b1508f53a04c4670255a3f33d22a81c8fc9c872036adbe5" + ], + "version": "==3.2.3" + }, + "certifi": { + "hashes": [ + "sha256:017c25db2a153ce562900032d5bc68e9f191e44e9a0f762f373977de9df1fbb3", + "sha256:25b64c7da4cd7479594d035c08c2d809eb4aab3a26e5a990ea98cc450c320f1f" + ], + "version": "==2019.11.28" + }, + "cffi": { + "hashes": [ + "sha256:0b49274afc941c626b605fb59b59c3485c17dc776dc3cc7cc14aca74cc19cc42", + "sha256:0e3ea92942cb1168e38c05c1d56b0527ce31f1a370f6117f1d490b8dcd6b3a04", + "sha256:135f69aecbf4517d5b3d6429207b2dff49c876be724ac0c8bf8e1ea99df3d7e5", + "sha256:19db0cdd6e516f13329cba4903368bff9bb5a9331d3410b1b448daaadc495e54", + "sha256:2781e9ad0e9d47173c0093321bb5435a9dfae0ed6a762aabafa13108f5f7b2ba", + "sha256:291f7c42e21d72144bb1c1b2e825ec60f46d0a7468f5346841860454c7aa8f57", + "sha256:2c5e309ec482556397cb21ede0350c5e82f0eb2621de04b2633588d118da4396", + "sha256:2e9c80a8c3344a92cb04661115898a9129c074f7ab82011ef4b612f645939f12", + "sha256:32a262e2b90ffcfdd97c7a5e24a6012a43c61f1f5a57789ad80af1d26c6acd97", + "sha256:3c9fff570f13480b201e9ab69453108f6d98244a7f495e91b6c654a47486ba43", + "sha256:415bdc7ca8c1c634a6d7163d43fb0ea885a07e9618a64bda407e04b04333b7db", + "sha256:42194f54c11abc8583417a7cf4eaff544ce0de8187abaf5d29029c91b1725ad3", + "sha256:4424e42199e86b21fc4db83bd76909a6fc2a2aefb352cb5414833c030f6ed71b", + "sha256:4a43c91840bda5f55249413037b7a9b79c90b1184ed504883b72c4df70778579", + "sha256:599a1e8ff057ac530c9ad1778293c665cb81a791421f46922d80a86473c13346", + "sha256:5c4fae4e9cdd18c82ba3a134be256e98dc0596af1e7285a3d2602c97dcfa5159", + "sha256:5ecfa867dea6fabe2a58f03ac9186ea64da1386af2159196da51c4904e11d652", + "sha256:62f2578358d3a92e4ab2d830cd1c2049c9c0d0e6d3c58322993cc341bdeac22e", + "sha256:6471a82d5abea994e38d2c2abc77164b4f7fbaaf80261cb98394d5793f11b12a", + "sha256:6d4f18483d040e18546108eb13b1dfa1000a089bcf8529e30346116ea6240506", + "sha256:71a608532ab3bd26223c8d841dde43f3516aa5d2bf37b50ac410bb5e99053e8f", + "sha256:74a1d8c85fb6ff0b30fbfa8ad0ac23cd601a138f7509dc617ebc65ef305bb98d", + "sha256:7b93a885bb13073afb0aa73ad82059a4c41f4b7d8eb8368980448b52d4c7dc2c", + "sha256:7d4751da932caaec419d514eaa4215eaf14b612cff66398dd51129ac22680b20", + "sha256:7f627141a26b551bdebbc4855c1157feeef18241b4b8366ed22a5c7d672ef858", + "sha256:8169cf44dd8f9071b2b9248c35fc35e8677451c52f795daa2bb4643f32a540bc", + "sha256:aa00d66c0fab27373ae44ae26a66a9e43ff2a678bf63a9c7c1a9a4d61172827a", + "sha256:ccb032fda0873254380aa2bfad2582aedc2959186cce61e3a17abc1a55ff89c3", + "sha256:d754f39e0d1603b5b24a7f8484b22d2904fa551fe865fd0d4c3332f078d20d4e", + "sha256:d75c461e20e29afc0aee7172a0950157c704ff0dd51613506bd7d82b718e7410", + "sha256:dcd65317dd15bc0451f3e01c80da2216a31916bdcffd6221ca1202d96584aa25", + "sha256:e570d3ab32e2c2861c4ebe6ffcad6a8abf9347432a37608fe1fbd157b3f0036b", + "sha256:fd43a88e045cf992ed09fa724b5315b790525f2676883a6ea64e3263bae6549d" + ], + "version": "==1.13.2" + }, + "chardet": { + "hashes": [ + "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae", + "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" + ], + "version": "==3.0.4" + }, + "cryptography": { + "hashes": [ + "sha256:02079a6addc7b5140ba0825f542c0869ff4df9a69c360e339ecead5baefa843c", + "sha256:1df22371fbf2004c6f64e927668734070a8953362cd8370ddd336774d6743595", + "sha256:369d2346db5934345787451504853ad9d342d7f721ae82d098083e1f49a582ad", + "sha256:3cda1f0ed8747339bbdf71b9f38ca74c7b592f24f65cdb3ab3765e4b02871651", + "sha256:44ff04138935882fef7c686878e1c8fd80a723161ad6a98da31e14b7553170c2", + "sha256:4b1030728872c59687badcca1e225a9103440e467c17d6d1730ab3d2d64bfeff", + "sha256:58363dbd966afb4f89b3b11dfb8ff200058fbc3b947507675c19ceb46104b48d", + "sha256:6ec280fb24d27e3d97aa731e16207d58bd8ae94ef6eab97249a2afe4ba643d42", + "sha256:7270a6c29199adc1297776937a05b59720e8a782531f1f122f2eb8467f9aab4d", + "sha256:73fd30c57fa2d0a1d7a49c561c40c2f79c7d6c374cc7750e9ac7c99176f6428e", + "sha256:7f09806ed4fbea8f51585231ba742b58cbcfbfe823ea197d8c89a5e433c7e912", + "sha256:90df0cc93e1f8d2fba8365fb59a858f51a11a394d64dbf3ef844f783844cc793", + "sha256:971221ed40f058f5662a604bd1ae6e4521d84e6cad0b7b170564cc34169c8f13", + "sha256:a518c153a2b5ed6b8cc03f7ae79d5ffad7315ad4569b2d5333a13c38d64bd8d7", + "sha256:b0de590a8b0979649ebeef8bb9f54394d3a41f66c5584fff4220901739b6b2f0", + "sha256:b43f53f29816ba1db8525f006fa6f49292e9b029554b3eb56a189a70f2a40879", + "sha256:d31402aad60ed889c7e57934a03477b572a03af7794fa8fb1780f21ea8f6551f", + "sha256:de96157ec73458a7f14e3d26f17f8128c959084931e8997b9e655a39c8fde9f9", + "sha256:df6b4dca2e11865e6cfbfb708e800efb18370f5a46fd601d3755bc7f85b3a8a2", + "sha256:ecadccc7ba52193963c0475ac9f6fa28ac01e01349a2ca48509667ef41ffd2cf", + "sha256:fb81c17e0ebe3358486cd8cc3ad78adbae58af12fc2bf2bc0bb84e8090fa5ce8" + ], + "version": "==2.8" + }, + "defusedxml": { + "hashes": [ + "sha256:6687150770438374ab581bb7a1b327a847dd9c5749e396102de3fad4e8a3ef93", + "sha256:f684034d135af4c6cbb949b8a4d2ed61634515257a67299e5f940fbaa34377f5" + ], + "version": "==0.6.0" + }, + "dj-database-url": { + "hashes": [ + "sha256:4aeaeb1f573c74835b0686a2b46b85990571159ffc21aa57ecd4d1e1cb334163", + "sha256:851785365761ebe4994a921b433062309eb882fedd318e1b0fcecc607ed02da9" + ], + "version": "==0.5.0" + }, + "django": { + "hashes": [ + "sha256:4f2c913303be4f874015993420bf0bd8fd2097a9c88e6b49c6a92f9bdd3fb13a", + "sha256:8c3575f81e11390893860d97e1e0154c47512f180ea55bd84ce8fa69ba8051ca" + ], + "index": "pypi", + "version": "==3.0.2" + }, + "django-allauth": { + "hashes": [ + "sha256:7ab91485b80d231da191d5c7999ba93170ef1bf14ab6487d886598a1ad03e1d8" + ], + "index": "pypi", + "version": "==0.41.0" + }, + "django-cors-headers": { + "hashes": [ + "sha256:a5960addecc04527ab26617e51b8ed42f0adab4594b24bb0f3c33e2bd3857c3f", + "sha256:a785b5f446f6635810776d9f5f5d23e6a2a2f728ea982648370afaf0dfdf2627" + ], + "index": "pypi", + "version": "==3.2.1" + }, + "django-heroku": { + "hashes": [ + "sha256:2bc690aab89eedbe01311752320a9a12e7548e3b0ed102681acc5736a41a4762", + "sha256:6af4bc3ae4a9b55eaad6dbe5164918982d2762661aebc9f83d9fa49f6009514e" + ], + "index": "pypi", + "version": "==0.3.1" + }, + "django-rest-api": { + "hashes": [ + "sha256:a5b2ad35e37fc9c26ae3a31a8d2851b905745e4ba3977e64235500d9e371a2e0", + "sha256:a8f1b33622a7c85f128a953e88679b2bb14ff8e9235eb408316ce104d559f8a3" + ], + "index": "pypi", + "version": "==0.1.5" + }, + "django-rest-auth": { + "hashes": [ + "sha256:f11e12175dafeed772f50d740d22caeab27e99a3caca24ec65e66a8d6de16571" + ], + "index": "pypi", + "version": "==0.9.5" + }, + "djangorestframework": { + "hashes": [ + "sha256:05809fc66e1c997fd9a32ea5730d9f4ba28b109b9da71fccfa5ff241201fd0a4", + "sha256:e782087823c47a26826ee5b6fa0c542968219263fb3976ec3c31edab23a4001f" + ], + "index": "pypi", + "version": "==3.11.0" + }, + "gunicorn": { + "hashes": [ + "sha256:1904bb2b8a43658807108d59c3f3d56c2b6121a701161de0ddf9ad140073c626", + "sha256:cd4a810dd51bf497552cf3f863b575dabd73d6ad6a91075b65936b151cbf4f9c" + ], + "index": "pypi", + "version": "==20.0.4" + }, + "idna": { + "hashes": [ + "sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407", + "sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c" + ], + "version": "==2.8" + }, + "ndg-httpsclient": { + "hashes": [ + "sha256:d2c7225f6a1c6cf698af4ebc962da70178a99bcde24ee6d1961c4f3338130d57", + "sha256:d72faed0376ab039736c2ba12e30695e2788c4aa569c9c3e3d72131de2592210", + "sha256:dd174c11d971b6244a891f7be2b32ca9853d3797a72edb34fa5d7b07d8fff7d4" + ], + "version": "==0.5.1" + }, + "oauthlib": { + "hashes": [ + "sha256:bee41cc35fcca6e988463cacc3bcb8a96224f470ca547e697b604cc697b2f889", + "sha256:df884cd6cbe20e32633f1db1072e9356f53638e4361bef4e8b03c9127c9328ea" + ], + "version": "==3.1.0" + }, + "psycopg2": { + "hashes": [ + "sha256:4212ca404c4445dc5746c0d68db27d2cbfb87b523fe233dc84ecd24062e35677", + "sha256:47fc642bf6f427805daf52d6e52619fe0637648fe27017062d898f3bf891419d", + "sha256:72772181d9bad1fa349792a1e7384dde56742c14af2b9986013eb94a240f005b", + "sha256:8396be6e5ff844282d4d49b81631772f80dabae5658d432202faf101f5283b7c", + "sha256:893c11064b347b24ecdd277a094413e1954f8a4e8cdaf7ffbe7ca3db87c103f0", + "sha256:92a07dfd4d7c325dd177548c4134052d4842222833576c8391aab6f74038fc3f", + "sha256:965c4c93e33e6984d8031f74e51227bd755376a9df6993774fd5b6fb3288b1f4", + "sha256:9ab75e0b2820880ae24b7136c4d230383e07db014456a476d096591172569c38", + "sha256:b0845e3bdd4aa18dc2f9b6fb78fbd3d9d371ad167fd6d1b7ad01c0a6cdad4fc6", + "sha256:dca2d7203f0dfce8ea4b3efd668f8ea65cd2b35112638e488a4c12594015f67b", + "sha256:ed686e5926929887e2c7ae0a700e32c6129abb798b4ad2b846e933de21508151", + "sha256:ef6df7e14698e79c59c7ee7cf94cd62e5b869db369ed4b1b8f7b729ea825712a", + "sha256:f898e5cc0a662a9e12bde6f931263a1bbd350cfb18e1d5336a12927851825bb6" + ], + "version": "==2.8.4" + }, + "pusher": { + "hashes": [ + "sha256:668df72fcf61f293313e29a29acd41cce233a45d445a97a9b21dd32ad09a2d17", + "sha256:dc71715e8a6183d3cd33025af59b240e402aee576208df0752460f299ae1678f" + ], + "index": "pypi", + "version": "==2.1.4" + }, + "pyasn1": { + "hashes": [ + "sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d", + "sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba" + ], + "version": "==0.4.8" + }, + "pycparser": { + "hashes": [ + "sha256:a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3" + ], + "version": "==2.19" + }, + "pynacl": { + "hashes": [ + "sha256:05c26f93964373fc0abe332676cb6735f0ecad27711035b9472751faa8521255", + "sha256:0c6100edd16fefd1557da078c7a31e7b7d7a52ce39fdca2bec29d4f7b6e7600c", + "sha256:0d0a8171a68edf51add1e73d2159c4bc19fc0718e79dec51166e940856c2f28e", + "sha256:1c780712b206317a746ace34c209b8c29dbfd841dfbc02aa27f2084dd3db77ae", + "sha256:2424c8b9f41aa65bbdbd7a64e73a7450ebb4aa9ddedc6a081e7afcc4c97f7621", + "sha256:2d23c04e8d709444220557ae48ed01f3f1086439f12dbf11976e849a4926db56", + "sha256:30f36a9c70450c7878053fa1344aca0145fd47d845270b43a7ee9192a051bf39", + "sha256:37aa336a317209f1bb099ad177fef0da45be36a2aa664507c5d72015f956c310", + "sha256:4943decfc5b905748f0756fdd99d4f9498d7064815c4cf3643820c9028b711d1", + "sha256:53126cd91356342dcae7e209f840212a58dcf1177ad52c1d938d428eebc9fee5", + "sha256:57ef38a65056e7800859e5ba9e6091053cd06e1038983016effaffe0efcd594a", + "sha256:5bd61e9b44c543016ce1f6aef48606280e45f892a928ca7068fba30021e9b786", + "sha256:6482d3017a0c0327a49dddc8bd1074cc730d45db2ccb09c3bac1f8f32d1eb61b", + "sha256:7d3ce02c0784b7cbcc771a2da6ea51f87e8716004512493a2b69016326301c3b", + "sha256:a14e499c0f5955dcc3991f785f3f8e2130ed504fa3a7f44009ff458ad6bdd17f", + "sha256:a39f54ccbcd2757d1d63b0ec00a00980c0b382c62865b61a505163943624ab20", + "sha256:aabb0c5232910a20eec8563503c153a8e78bbf5459490c49ab31f6adf3f3a415", + "sha256:bd4ecb473a96ad0f90c20acba4f0bf0df91a4e03a1f4dd6a4bdc9ca75aa3a715", + "sha256:bf459128feb543cfca16a95f8da31e2e65e4c5257d2f3dfa8c0c1031139c9c92", + "sha256:e2da3c13307eac601f3de04887624939aca8ee3c9488a0bb0eca4fb9401fc6b1", + "sha256:f67814c38162f4deb31f68d590771a29d5ae3b1bd64b75cf232308e5c74777e0" + ], + "version": "==1.3.0" + }, + "pyopenssl": { + "hashes": [ + "sha256:621880965a720b8ece2f1b2f54ea2071966ab00e2970ad2ce11d596102063504", + "sha256:9a24494b2602aaf402be5c9e30a0b82d4a5c67528fe8fb475e3f3bc00dd69507" + ], + "version": "==19.1.0" + }, + "python-decouple": { + "hashes": [ + "sha256:55c546b85b0c47a15a47a4312d451a437f7344a9be3e001660bccd93b637de95" + ], + "index": "pypi", + "version": "==3.3" + }, + "python3-openid": { + "hashes": [ + "sha256:0086da6b6ef3161cfe50fb1ee5cceaf2cda1700019fda03c2c5c440ca6abe4fa", + "sha256:628d365d687e12da12d02c6691170f4451db28d6d68d050007e4a40065868502" + ], + "version": "==3.1.0" + }, + "pytz": { + "hashes": [ + "sha256:1c557d7d0e871de1f5ccd5833f60fb2550652da6be2693c1e02300743d21500d", + "sha256:b02c06db6cf09c12dd25137e563b31700d3b80fcc4ad23abb7a315f2789819be" + ], + "version": "==2019.3" + }, + "requests": { + "hashes": [ + "sha256:11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4", + "sha256:9cf5292fcd0f598c671cfc1e0d7d1a7f13bb8085e9a590f48c010551dc6c4b31" + ], + "version": "==2.22.0" + }, + "requests-oauthlib": { + "hashes": [ + "sha256:7f71572defaecd16372f9006f33c2ec8c077c3cfa6f5911a9a90202beb513f3d", + "sha256:b4261601a71fd721a8bd6d7aa1cc1d6a8a93b4a9f5e96626f8e4d91e8beeaa6a" + ], + "version": "==1.3.0" + }, + "six": { + "hashes": [ + "sha256:1f1b7d42e254082a9db6279deae68afb421ceba6158efa6131de7b3003ee93fd", + "sha256:30f610279e8b2578cab6db20741130331735c781b56053c59c4076da27f06b66" + ], + "version": "==1.13.0" + }, + "sqlparse": { + "hashes": [ + "sha256:40afe6b8d4b1117e7dff5504d7a8ce07d9a1b15aeeade8a2d10f130a834f8177", + "sha256:7c3dca29c022744e95b547e867cee89f4fce4373f3549ccd8797d8eb52cdb873" + ], + "version": "==0.3.0" + }, + "urllib3": { + "hashes": [ + "sha256:a8a318824cc77d1fd4b2bec2ded92646630d7fe8619497b142c84a9e6f5a7293", + "sha256:f3c5fd51747d450d4dcf6f923c81f78f811aab8205fda64b0aba34a4e48b0745" + ], + "version": "==1.25.7" + }, + "whitenoise": { + "hashes": [ + "sha256:0f9137f74bd95fa54329ace88d8dc695fbe895369a632e35f7a136e003e41d73", + "sha256:62556265ec1011bd87113fb81b7516f52688887b7a010ee899ff1fd18fd22700" + ], + "version": "==5.0.1" + } + }, + "develop": {} +} diff --git a/adv_project/settings.py b/adv_project/settings.py index 054c2b1be..8a6724e69 100644 --- a/adv_project/settings.py +++ b/adv_project/settings.py @@ -55,6 +55,7 @@ MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', + 'whitenoise.middleware.WhiteNoiseMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', @@ -149,5 +150,14 @@ STATIC_URL = '/static/' +# compression and caching support +# source http://whitenoise.evans.io/en/stable/django.html +STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' + +# Make sure staticfiles is configured correctly +# source http://whitenoise.evans.io/en/stable/django.html +STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') + + import django_heroku django_heroku.settings(locals()) diff --git a/adventure/api.py b/adventure/api.py index b2b9caea1..c7653379b 100644 --- a/adventure/api.py +++ b/adventure/api.py @@ -20,13 +20,19 @@ def initialize(request): uuid = player.uuid room = player.room() players = room.playerNames(player_id) - return JsonResponse({'uuid': uuid, 'name':player.user.username, 'title':room.title, 'description':room.description, 'players':players}, safe=True) + return JsonResponse({ + 'uuid': uuid, + 'name':player.user.username, + 'title':room.title, + 'description':room.description, + 'players':players}, + safe = True) # @csrf_exempt @api_view(["POST"]) def move(request): - dirs={"n": "north", "s": "south", "e": "east", "w": "west"} + dirs = {"n": "north", "s": "south", "e": "east", "w": "west"} reverse_dirs = {"n": "south", "s": "north", "e": "west", "w": "east"} player = request.user.player player_id = player.id @@ -44,8 +50,8 @@ def move(request): elif direction == "w": nextRoomID = room.w_to if nextRoomID is not None and nextRoomID > 0: - nextRoom = Room.objects.get(id=nextRoomID) - player.currentRoom=nextRoomID + nextRoom = Room.objects.get(id = nextRoomID) + player.currentRoom = nextRoomID player.save() players = nextRoom.playerNames(player_id) currentPlayerUUIDs = room.playerUUIDs(player_id) @@ -54,14 +60,27 @@ def move(request): # pusher.trigger(f'p-channel-{p_uuid}', u'broadcast', {'message':f'{player.user.username} has walked {dirs[direction]}.'}) # for p_uuid in nextPlayerUUIDs: # pusher.trigger(f'p-channel-{p_uuid}', u'broadcast', {'message':f'{player.user.username} has entered from the {reverse_dirs[direction]}.'}) - return JsonResponse({'name':player.user.username, 'title':nextRoom.title, 'description':nextRoom.description, 'players':players, 'error_msg':""}, safe=True) + return JsonResponse({ + 'name':player.user.username, + 'title':nextRoom.title, + 'description':nextRoom.description, + 'players':players, + 'error_msg':""}, + safe = True) else: players = room.playerNames(player_id) - return JsonResponse({'name':player.user.username, 'title':room.title, 'description':room.description, 'players':players, 'error_msg':"You cannot move that way."}, safe=True) + return JsonResponse({ + 'name':player.user.username, + 'title':room.title, + 'description':room.description, + 'players':players, + 'error_msg':"You cannot move that way."}, + safe = True) +# STRETCH GOAL @csrf_exempt @api_view(["POST"]) def say(request): # IMPLEMENT - return JsonResponse({'error':"Not yet implemented"}, safe=True, status=500) + return JsonResponse({'error':"Not yet implemented"}, safe = True, status=500) From dca76d6ba0a46e6c354be74e51d88b39731ef1fe Mon Sep 17 00:00:00 2001 From: chad kidd Date: Tue, 7 Jan 2020 00:29:53 -0800 Subject: [PATCH 02/11] GET api for all rooms and rooms URL pattern --- adventure/api.py | 9 +++++++++ adventure/urls.py | 1 + 2 files changed, 10 insertions(+) diff --git a/adventure/api.py b/adventure/api.py index c7653379b..9e9c0fe66 100644 --- a/adventure/api.py +++ b/adventure/api.py @@ -28,6 +28,15 @@ def initialize(request): 'players':players}, safe = True) +# GET all rooms +@api_view(["GET"]) +def rooms(request): + rooms = Room.objects.all() + result = [] + for room in rooms.values(): + result.append(room) + return JsonResponse({ + 'rooms': result}, safe = True) # @csrf_exempt @api_view(["POST"]) diff --git a/adventure/urls.py b/adventure/urls.py index 4aaf2bab7..242b9a4e6 100644 --- a/adventure/urls.py +++ b/adventure/urls.py @@ -5,4 +5,5 @@ url('init', api.initialize), url('move', api.move), url('say', api.say), + url('rooms', api.rooms), ] \ No newline at end of file From f76c7577809f7e33c0e93d429fe39de2a0a930c8 Mon Sep 17 00:00:00 2001 From: Suparada Saitalae Date: Tue, 7 Jan 2020 12:28:14 -0600 Subject: [PATCH 03/11] requirements.txt --- .gitignore | 6 +++++- my_note.md | 12 +++++++++++- requirements.txt | 24 ++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 requirements.txt diff --git a/.gitignore b/.gitignore index 4ec0ea1a1..e3fd2dcb1 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,8 @@ __pycache__/ local_settings.py db.sqlite3 -tmp \ No newline at end of file +tmp + +node_modules/ +my_note.md +package-lock.json diff --git a/my_note.md b/my_note.md index a4bbffe11..aa0981d5d 100644 --- a/my_note.md +++ b/my_note.md @@ -4,4 +4,14 @@ - pip install django-heroku - pip install django-cors-headers - pip install django-rest-auth -- pip install django-allauth \ No newline at end of file +- pip install django-allauth + + +## Deploy on Heroko +Ann's path for Heroku +- `./node_modules/heroku/bin/run` +- run `pip freeze` and coppy everything +- create `reauirements.txt` and paste +- `git init` create gitignore +- + diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 000000000..2b17e3e86 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,24 @@ +asgiref==3.2.3 +astroid==2.3.3 +autopep8==1.4.4 +certifi==2019.11.28 +colorama==0.4.1 +decouple==0.0.7 +Django==3.0.1 +django-crispy-forms==1.8.1 +isort==4.3.21 +lazy-object-proxy==1.4.3 +mccabe==0.6.1 +Pillow==7.0.0 +pipenv==2018.11.26 +pycodestyle==2.5.0 +pylint==2.4.4 +pylint-django==2.0.13 +pylint-plugin-utils==0.6 +python-decouple==3.3 +pytz==2019.3 +six==1.13.0 +sqlparse==0.3.0 +virtualenv==16.7.8 +virtualenv-clone==0.5.3 +wrapt==1.11.2 \ No newline at end of file From a59f05f9f01764971aadc5c5dfadf8ce892bd513 Mon Sep 17 00:00:00 2001 From: Suparada Saitalae Date: Tue, 7 Jan 2020 12:51:27 -0600 Subject: [PATCH 04/11] sitting.py --- .vscode/settings.json | 3 +++ adv_project/settings.py | 5 +++++ 2 files changed, 8 insertions(+) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..c6aa00130 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "python.pythonPath": "C:\\Users\\User\\.virtualenvs\\CS-Build-Week-1-45dnoyNn\\Scripts\\python.exe" +} \ No newline at end of file diff --git a/adv_project/settings.py b/adv_project/settings.py index 054c2b1be..bd8fd659e 100644 --- a/adv_project/settings.py +++ b/adv_project/settings.py @@ -147,7 +147,12 @@ # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/2.1/howto/static-files/ +STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') STATIC_URL = '/static/' +STATICFILES_DIRS = ( + os.path.join(BASE_DIR, 'static'), +) + import django_heroku django_heroku.settings(locals()) From 57fe54eef26648e2c9a5d48cf66bfd134735f117 Mon Sep 17 00:00:00 2001 From: Suparada Saitalae Date: Tue, 7 Jan 2020 12:53:07 -0600 Subject: [PATCH 05/11] allowed hosts --- adv_project/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adv_project/settings.py b/adv_project/settings.py index bd8fd659e..a741d5551 100644 --- a/adv_project/settings.py +++ b/adv_project/settings.py @@ -26,7 +26,7 @@ # SECURITY WARNING: don't run with debug turned on in production! DEBUG = config('DEBUG', cast=bool) -ALLOWED_HOSTS = [] +ALLOWED_HOSTS = ['text-adv-game.herokuapp.com'] # Application definition From 26b99f3dba15293a0e2e85e14fcda6c3ce2dee89 Mon Sep 17 00:00:00 2001 From: Suparada Saitalae Date: Tue, 7 Jan 2020 12:59:55 -0600 Subject: [PATCH 06/11] whitenoise.middleware --- adv_project/settings.py | 1 + 1 file changed, 1 insertion(+) diff --git a/adv_project/settings.py b/adv_project/settings.py index a741d5551..70196eae7 100644 --- a/adv_project/settings.py +++ b/adv_project/settings.py @@ -63,6 +63,7 @@ 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', + 'whitenoise.middleware.WhiteNoiseMiddleware', ] ROOT_URLCONF = 'adv_project.urls' From 82940bd2e2d7c091e44a008679e2661c21af0166 Mon Sep 17 00:00:00 2001 From: Suparada Saitalae Date: Tue, 7 Jan 2020 13:03:38 -0600 Subject: [PATCH 07/11] whitenoise.middleware --- adv_project/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adv_project/settings.py b/adv_project/settings.py index 70196eae7..f7d5db50a 100644 --- a/adv_project/settings.py +++ b/adv_project/settings.py @@ -65,7 +65,7 @@ 'django.middleware.common.CommonMiddleware', 'whitenoise.middleware.WhiteNoiseMiddleware', ] - +STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' ROOT_URLCONF = 'adv_project.urls' TEMPLATES = [ From 30ef0cab11a25824ce090f62c838cb1945e71aa3 Mon Sep 17 00:00:00 2001 From: Suparada Saitalae Date: Tue, 7 Jan 2020 16:09:05 -0600 Subject: [PATCH 08/11] rooms urls --- adventure/api.py | 11 +++++++++++ adventure/models.py | 3 +++ adventure/urls.py | 1 + api/urls.py | 1 - my_note.md | 5 +++++ 5 files changed, 20 insertions(+), 1 deletion(-) diff --git a/adventure/api.py b/adventure/api.py index b2b9caea1..baf9e7a11 100644 --- a/adventure/api.py +++ b/adventure/api.py @@ -65,3 +65,14 @@ def move(request): def say(request): # IMPLEMENT return JsonResponse({'error':"Not yet implemented"}, safe=True, status=500) + + +@csrf_exempt +@api_view(["GET"]) +def rooms(request): + room = Room.objects.all().values() + return JsonResponse({'title': list(room) }, safe=True) + + +# queryset = YourModel.objects.filter(some__filter="some value").values() +# return JsonResponse({"models_to_return": list(queryset)}) \ No newline at end of file diff --git a/adventure/models.py b/adventure/models.py index f76f436df..acd090c64 100644 --- a/adventure/models.py +++ b/adventure/models.py @@ -36,6 +36,9 @@ def playerNames(self, currentPlayerID): def playerUUIDs(self, currentPlayerID): return [p.uuid for p in Player.objects.filter(currentRoom=self.id) if p.id != int(currentPlayerID)] + # def __str__(self): + # return self.title + class Player(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) diff --git a/adventure/urls.py b/adventure/urls.py index 4aaf2bab7..b9bdefded 100644 --- a/adventure/urls.py +++ b/adventure/urls.py @@ -5,4 +5,5 @@ url('init', api.initialize), url('move', api.move), url('say', api.say), + url('rooms', api.rooms) ] \ No newline at end of file diff --git a/api/urls.py b/api/urls.py index 37fb98d04..4b37c881c 100644 --- a/api/urls.py +++ b/api/urls.py @@ -4,6 +4,5 @@ urlpatterns = [ path('', include('rest_auth.urls')), - # path('', views.home, name='blog-home'), path('registration/', include('rest_auth.registration.urls')), ] diff --git a/my_note.md b/my_note.md index aa0981d5d..4cba97290 100644 --- a/my_note.md +++ b/my_note.md @@ -15,3 +15,8 @@ Ann's path for Heroku - `git init` create gitignore - +- `herohu addons` check if we have heroku database +- `heroku run python manage.py migrate` migrate to posgres +- `heroku run bash` +- `python manage.py createsuperuser` +- `python manage.py shell` do the magic From 1214f669e6ae285acb3005d3d8d1f95fe2803c0c Mon Sep 17 00:00:00 2001 From: Suparada Saitalae Date: Tue, 7 Jan 2020 16:44:42 -0600 Subject: [PATCH 09/11] edit json respone for /rooms --- adventure/api.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/adventure/api.py b/adventure/api.py index baf9e7a11..e0d4446a6 100644 --- a/adventure/api.py +++ b/adventure/api.py @@ -71,8 +71,4 @@ def say(request): @api_view(["GET"]) def rooms(request): room = Room.objects.all().values() - return JsonResponse({'title': list(room) }, safe=True) - - -# queryset = YourModel.objects.filter(some__filter="some value").values() -# return JsonResponse({"models_to_return": list(queryset)}) \ No newline at end of file + return JsonResponse({'rooms': list(room) }, safe=True) From b8377438443f94d43db8b8e3eb255e0f91cf9a0e Mon Sep 17 00:00:00 2001 From: Suparada Saitalae Date: Tue, 7 Jan 2020 17:16:53 -0600 Subject: [PATCH 10/11] generate more rooms --- util/sample_generator.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/util/sample_generator.py b/util/sample_generator.py index 627023f26..a37b88e83 100644 --- a/util/sample_generator.py +++ b/util/sample_generator.py @@ -152,9 +152,9 @@ def print_rooms(self): w = World() -num_rooms = 44 -width = 8 -height = 7 +num_rooms = 100 +width = 10 +height = 10 w.generate_rooms(width, height, num_rooms) w.print_rooms() From 2c7e7e0e7535a20062c8dfa763467a426985fc93 Mon Sep 17 00:00:00 2001 From: chad kidd Date: Tue, 7 Jan 2020 18:31:42 -0800 Subject: [PATCH 11/11] resolved conflicts --- adventure/.vscode/settings.json | 3 --- adventure/api.py | 4 ---- adventure/urls.py | 4 ---- 3 files changed, 11 deletions(-) diff --git a/adventure/.vscode/settings.json b/adventure/.vscode/settings.json index 650f1dde4..e69de29bb 100644 --- a/adventure/.vscode/settings.json +++ b/adventure/.vscode/settings.json @@ -1,3 +0,0 @@ -{ - "python.pythonPath": "/Users/ckidd/.local/share/virtualenvs/CS-Build-Week-1-DcYg5Qav/bin/python" -} \ No newline at end of file diff --git a/adventure/api.py b/adventure/api.py index 8c5452dd9..f6a69bb6d 100644 --- a/adventure/api.py +++ b/adventure/api.py @@ -92,9 +92,6 @@ def move(request): @api_view(["POST"]) def say(request): # IMPLEMENT -<<<<<<< HEAD - return JsonResponse({'error':"Not yet implemented"}, safe = True, status=500) -======= return JsonResponse({'error':"Not yet implemented"}, safe=True, status=500) @@ -103,4 +100,3 @@ def say(request): def rooms(request): room = Room.objects.all().values() return JsonResponse({'rooms': list(room) }, safe=True) ->>>>>>> b8377438443f94d43db8b8e3eb255e0f91cf9a0e diff --git a/adventure/urls.py b/adventure/urls.py index 686faf5ef..b9bdefded 100644 --- a/adventure/urls.py +++ b/adventure/urls.py @@ -5,9 +5,5 @@ url('init', api.initialize), url('move', api.move), url('say', api.say), -<<<<<<< HEAD - url('rooms', api.rooms), -======= url('rooms', api.rooms) ->>>>>>> b8377438443f94d43db8b8e3eb255e0f91cf9a0e ] \ No newline at end of file