diff --git a/Pipfile b/Pipfile index e394145..ed49d97 100644 --- a/Pipfile +++ b/Pipfile @@ -10,6 +10,7 @@ pylint = "*" djangorestframework = "*" django-cors-headers = "*" pylint-django = "*" +pillow = "*" [dev-packages] diff --git a/Pipfile.lock b/Pipfile.lock index d4a807c..7513a3a 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "5ffeeb7b09a0ef77a5e8873942a61515a35e2507f3555531b633af656efd183e" + "sha256": "43cca80f1ca29c7ea374523e670343b3d7818ab32e20b274199076e014596a6c" }, "pipfile-spec": 6, "requires": { @@ -69,7 +69,7 @@ "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7", "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951" ], - "markers": "python_full_version >= '3.6.1' and python_version < '4.0'", + "markers": "python_version < '4.0' and python_full_version >= '3.6.1'", "version": "==5.10.1" }, "lazy-object-proxy": { @@ -122,6 +122,47 @@ ], "version": "==0.6.1" }, + "pillow": { + "hashes": [ + "sha256:011233e0c42a4a7836498e98c1acf5e744c96a67dd5032a6f666cc1fb97eab97", + "sha256:0f29d831e2151e0b7b39981756d201f7108d3d215896212ffe2e992d06bfe049", + "sha256:12875d118f21cf35604176872447cdb57b07126750a33748bac15e77f90f1f9c", + "sha256:14d4b1341ac07ae07eb2cc682f459bec932a380c3b122f5540432d8977e64eae", + "sha256:1c3c33ac69cf059bbb9d1a71eeaba76781b450bc307e2291f8a4764d779a6b28", + "sha256:1d19397351f73a88904ad1aee421e800fe4bbcd1aeee6435fb62d0a05ccd1030", + "sha256:253e8a302a96df6927310a9d44e6103055e8fb96a6822f8b7f514bb7ef77de56", + "sha256:2632d0f846b7c7600edf53c48f8f9f1e13e62f66a6dbc15191029d950bfed976", + "sha256:335ace1a22325395c4ea88e00ba3dc89ca029bd66bd5a3c382d53e44f0ccd77e", + "sha256:413ce0bbf9fc6278b2d63309dfeefe452835e1c78398efb431bab0672fe9274e", + "sha256:5100b45a4638e3c00e4d2320d3193bdabb2d75e79793af7c3eb139e4f569f16f", + "sha256:514ceac913076feefbeaf89771fd6febde78b0c4c1b23aaeab082c41c694e81b", + "sha256:528a2a692c65dd5cafc130de286030af251d2ee0483a5bf50c9348aefe834e8a", + "sha256:6295f6763749b89c994fcb6d8a7f7ce03c3992e695f89f00b741b4580b199b7e", + "sha256:6c8bc8238a7dfdaf7a75f5ec5a663f4173f8c367e5a39f87e720495e1eed75fa", + "sha256:718856856ba31f14f13ba885ff13874be7fefc53984d2832458f12c38205f7f7", + "sha256:7f7609a718b177bf171ac93cea9fd2ddc0e03e84d8fa4e887bdfc39671d46b00", + "sha256:80ca33961ced9c63358056bd08403ff866512038883e74f3a4bf88ad3eb66838", + "sha256:80fe64a6deb6fcfdf7b8386f2cf216d329be6f2781f7d90304351811fb591360", + "sha256:81c4b81611e3a3cb30e59b0cf05b888c675f97e3adb2c8672c3154047980726b", + "sha256:855c583f268edde09474b081e3ddcd5cf3b20c12f26e0d434e1386cc5d318e7a", + "sha256:9bfdb82cdfeccec50aad441afc332faf8606dfa5e8efd18a6692b5d6e79f00fd", + "sha256:a5d24e1d674dd9d72c66ad3ea9131322819ff86250b30dc5821cbafcfa0b96b4", + "sha256:a9f44cd7e162ac6191491d7249cceb02b8116b0f7e847ee33f739d7cb1ea1f70", + "sha256:b5b3f092fe345c03bca1e0b687dfbb39364b21ebb8ba90e3fa707374b7915204", + "sha256:b9618823bd237c0d2575283f2939655f54d51b4527ec3972907a927acbcc5bfc", + "sha256:cef9c85ccbe9bee00909758936ea841ef12035296c748aaceee535969e27d31b", + "sha256:d21237d0cd37acded35154e29aec853e945950321dd2ffd1a7d86fe686814669", + "sha256:d3c5c79ab7dfce6d88f1ba639b77e77a17ea33a01b07b99840d6ed08031cb2a7", + "sha256:d9d7942b624b04b895cb95af03a23407f17646815495ce4547f0e60e0b06f58e", + "sha256:db6d9fac65bd08cea7f3540b899977c6dee9edad959fa4eaf305940d9cbd861c", + "sha256:ede5af4a2702444a832a800b8eb7f0a7a1c0eed55b644642e049c98d589e5092", + "sha256:effb7749713d5317478bb3acb3f81d9d7c7f86726d41c1facca068a04cf5bb4c", + "sha256:f154d173286a5d1863637a7dcd8c3437bb557520b01bddb0be0258dcb72696b5", + "sha256:f25ed6e28ddf50de7e7ea99d7a976d6a9c415f03adcaac9c41ff6ff41b6d86ac" + ], + "index": "pypi", + "version": "==9.0.1" + }, "platformdirs": { "hashes": [ "sha256:7535e70dfa32e84d4b34996ea99c5e432fa29a708d0f4e394bbcb2a8faa4f16d", @@ -164,18 +205,18 @@ }, "pytz": { "hashes": [ - "sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c", - "sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326" + "sha256:1e760e2fe6a8163bc0b3d9a19c4f84342afa0a2affebfaa84b01b978a02ecaa7", + "sha256:e68985985296d9a66a881eb3193b0906246245294a881e7c8afe623866ac6a5c" ], - "version": "==2021.3" + "version": "==2022.1" }, "setuptools": { "hashes": [ - "sha256:2347b2b432c891a863acadca2da9ac101eae6169b1d3dfee2ec605ecd50dbfe5", - "sha256:e4f30b9f84e5ab3decf945113119649fec09c1fc3507c6ebffec75646c56e62b" + "sha256:6599055eeb23bfef457d5605d33a4d68804266e6cb430b0fb12417c5efeae36c", + "sha256:782ef48d58982ddb49920c11a0c5c9c0b02e7d7d1c2ad0aa44e1a1e133051c96" ], "markers": "python_version >= '3.7'", - "version": "==60.9.3" + "version": "==60.10.0" }, "sqlparse": { "hashes": [ @@ -190,7 +231,7 @@ "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f" ], - "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'", + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==0.10.2" }, "typing-extensions": { diff --git a/media/smugimages/20140224-_JMR3402.jpg-911eccdc-8a7e-48b0-a1a3-1519633d1e83.jpeg b/media/smugimages/20140224-_JMR3402.jpg-911eccdc-8a7e-48b0-a1a3-1519633d1e83.jpeg new file mode 100644 index 0000000..50619a8 Binary files /dev/null and b/media/smugimages/20140224-_JMR3402.jpg-911eccdc-8a7e-48b0-a1a3-1519633d1e83.jpeg differ diff --git a/media/smugimages/20140224-_JMR3412.jpg-042b01a8-694e-4606-92a4-3002dd4a8ab9.jpeg b/media/smugimages/20140224-_JMR3412.jpg-042b01a8-694e-4606-92a4-3002dd4a8ab9.jpeg new file mode 100644 index 0000000..3a7d679 Binary files /dev/null and b/media/smugimages/20140224-_JMR3412.jpg-042b01a8-694e-4606-92a4-3002dd4a8ab9.jpeg differ diff --git a/media/smugimages/20140410-_JMR4555.jpg-7841d469-bc72-4a2d-9407-98ce436231e8.jpeg b/media/smugimages/20140410-_JMR4555.jpg-7841d469-bc72-4a2d-9407-98ce436231e8.jpeg new file mode 100644 index 0000000..2b37b2c Binary files /dev/null and b/media/smugimages/20140410-_JMR4555.jpg-7841d469-bc72-4a2d-9407-98ce436231e8.jpeg differ diff --git a/media/smugimages/20140410-_JMR4712.jpg-512ad565-c9ef-4340-ab6e-550b63db0147.jpeg b/media/smugimages/20140410-_JMR4712.jpg-512ad565-c9ef-4340-ab6e-550b63db0147.jpeg new file mode 100644 index 0000000..976ed03 Binary files /dev/null and b/media/smugimages/20140410-_JMR4712.jpg-512ad565-c9ef-4340-ab6e-550b63db0147.jpeg differ diff --git a/media/smugimages/20140427-_JMR5644.jpg-c9203c00-f178-4072-a465-51cc7a701a58.jpeg b/media/smugimages/20140427-_JMR5644.jpg-c9203c00-f178-4072-a465-51cc7a701a58.jpeg new file mode 100644 index 0000000..7102d58 Binary files /dev/null and b/media/smugimages/20140427-_JMR5644.jpg-c9203c00-f178-4072-a465-51cc7a701a58.jpeg differ diff --git a/media/smugimages/20140528-_JMR0053.jpg-f1e84927-227f-461c-a4c6-897d87e3085c.jpeg b/media/smugimages/20140528-_JMR0053.jpg-f1e84927-227f-461c-a4c6-897d87e3085c.jpeg new file mode 100644 index 0000000..5a3d04b Binary files /dev/null and b/media/smugimages/20140528-_JMR0053.jpg-f1e84927-227f-461c-a4c6-897d87e3085c.jpeg differ diff --git a/media/smugimages/20140528-_JMR0107.jpg-6fc0513e-9972-4f38-ac4e-86d31e5aab27.jpeg b/media/smugimages/20140528-_JMR0107.jpg-6fc0513e-9972-4f38-ac4e-86d31e5aab27.jpeg new file mode 100644 index 0000000..2feb7ec Binary files /dev/null and b/media/smugimages/20140528-_JMR0107.jpg-6fc0513e-9972-4f38-ac4e-86d31e5aab27.jpeg differ diff --git a/media/smugimages/20140528-_JMR0156.jpg-e75a99fd-2de3-48eb-be00-50665e935ccb.jpeg b/media/smugimages/20140528-_JMR0156.jpg-e75a99fd-2de3-48eb-be00-50665e935ccb.jpeg new file mode 100644 index 0000000..8aeae4c Binary files /dev/null and b/media/smugimages/20140528-_JMR0156.jpg-e75a99fd-2de3-48eb-be00-50665e935ccb.jpeg differ diff --git a/media/smugimages/20140529-_JMR0924.jpg-d27780f6-4be7-4e07-b09b-e0ca1bec15a2.jpeg b/media/smugimages/20140529-_JMR0924.jpg-d27780f6-4be7-4e07-b09b-e0ca1bec15a2.jpeg new file mode 100644 index 0000000..ed18fad Binary files /dev/null and b/media/smugimages/20140529-_JMR0924.jpg-d27780f6-4be7-4e07-b09b-e0ca1bec15a2.jpeg differ diff --git a/media/smugimages/20140609-_JMR1159.jpg-fbcfa699-9136-4cb0-8e0a-a36694554af7.jpeg b/media/smugimages/20140609-_JMR1159.jpg-fbcfa699-9136-4cb0-8e0a-a36694554af7.jpeg new file mode 100644 index 0000000..ff72f02 Binary files /dev/null and b/media/smugimages/20140609-_JMR1159.jpg-fbcfa699-9136-4cb0-8e0a-a36694554af7.jpeg differ diff --git a/media/smugimages/20140612-_JMR1361.jpg-5bbe21e5-19b0-4aae-b238-5c8791bc0b96.jpeg b/media/smugimages/20140612-_JMR1361.jpg-5bbe21e5-19b0-4aae-b238-5c8791bc0b96.jpeg new file mode 100644 index 0000000..d82bafd Binary files /dev/null and b/media/smugimages/20140612-_JMR1361.jpg-5bbe21e5-19b0-4aae-b238-5c8791bc0b96.jpeg differ diff --git a/media/smugimages/20140704-_JMR2114_B-bea81661-38f1-4ee0-b6dd-584c12fb6721.jpeg b/media/smugimages/20140704-_JMR2114_B-bea81661-38f1-4ee0-b6dd-584c12fb6721.jpeg new file mode 100644 index 0000000..838c5e8 Binary files /dev/null and b/media/smugimages/20140704-_JMR2114_B-bea81661-38f1-4ee0-b6dd-584c12fb6721.jpeg differ diff --git a/media/smugimages/20140709-_JMR2467.jpg-3704db77-5f93-428c-816d-cf497633359c.jpeg b/media/smugimages/20140709-_JMR2467.jpg-3704db77-5f93-428c-816d-cf497633359c.jpeg new file mode 100644 index 0000000..a7d92ff Binary files /dev/null and b/media/smugimages/20140709-_JMR2467.jpg-3704db77-5f93-428c-816d-cf497633359c.jpeg differ diff --git a/media/smugimages/20140727-_JMR2648.jpg-23c6f961-cd45-4e5d-b90e-60f8a68c2784.jpeg b/media/smugimages/20140727-_JMR2648.jpg-23c6f961-cd45-4e5d-b90e-60f8a68c2784.jpeg new file mode 100644 index 0000000..0362995 Binary files /dev/null and b/media/smugimages/20140727-_JMR2648.jpg-23c6f961-cd45-4e5d-b90e-60f8a68c2784.jpeg differ diff --git a/media/smugimages/20140913-20140913_Shadowed_Scenes_0031.jpg-57c9d894-1bef-4336-9f61-e78e7fd31ec4.jpeg b/media/smugimages/20140913-20140913_Shadowed_Scenes_0031.jpg-57c9d894-1bef-4336-9f61-e78e7fd31ec4.jpeg new file mode 100644 index 0000000..7abee2a Binary files /dev/null and b/media/smugimages/20140913-20140913_Shadowed_Scenes_0031.jpg-57c9d894-1bef-4336-9f61-e78e7fd31ec4.jpeg differ diff --git a/media/smugimages/20140913-20140913_Shadowed_Scenes_0031.jpg-693a25be-c963-4c7f-a9cf-531e43a7efbf.jpeg b/media/smugimages/20140913-20140913_Shadowed_Scenes_0031.jpg-693a25be-c963-4c7f-a9cf-531e43a7efbf.jpeg new file mode 100644 index 0000000..7abee2a Binary files /dev/null and b/media/smugimages/20140913-20140913_Shadowed_Scenes_0031.jpg-693a25be-c963-4c7f-a9cf-531e43a7efbf.jpeg differ diff --git a/media/smugimages/20140921-_JMR3208.jpg-c22c3ebf-3710-4fda-919e-98746f0bfa0a.jpeg b/media/smugimages/20140921-_JMR3208.jpg-c22c3ebf-3710-4fda-919e-98746f0bfa0a.jpeg new file mode 100644 index 0000000..a1a7f5b Binary files /dev/null and b/media/smugimages/20140921-_JMR3208.jpg-c22c3ebf-3710-4fda-919e-98746f0bfa0a.jpeg differ diff --git a/media/smugimages/20140921-_JMR3319.jpg-9545782c-054b-4307-acbe-5cb71f808a0a.jpeg b/media/smugimages/20140921-_JMR3319.jpg-9545782c-054b-4307-acbe-5cb71f808a0a.jpeg new file mode 100644 index 0000000..c057a19 Binary files /dev/null and b/media/smugimages/20140921-_JMR3319.jpg-9545782c-054b-4307-acbe-5cb71f808a0a.jpeg differ diff --git a/media/smugimages/20141224-_JMR5400.jpg-b7c8b0a6-33dc-4cd3-902b-a18538eb2283.jpeg b/media/smugimages/20141224-_JMR5400.jpg-b7c8b0a6-33dc-4cd3-902b-a18538eb2283.jpeg new file mode 100644 index 0000000..79a0df4 Binary files /dev/null and b/media/smugimages/20141224-_JMR5400.jpg-b7c8b0a6-33dc-4cd3-902b-a18538eb2283.jpeg differ diff --git a/media/smugimages/20220209-_JMR8864.jpg-ff16f1c3-9a2e-4823-8dd4-72e069e146e8.jpeg b/media/smugimages/20220209-_JMR8864.jpg-ff16f1c3-9a2e-4823-8dd4-72e069e146e8.jpeg new file mode 100644 index 0000000..9f64a62 Binary files /dev/null and b/media/smugimages/20220209-_JMR8864.jpg-ff16f1c3-9a2e-4823-8dd4-72e069e146e8.jpeg differ diff --git a/media/smugimages/20220209-_JMR8938.jpg-eb84edd1-dc00-49ef-a685-d12409ae9e5e.jpeg b/media/smugimages/20220209-_JMR8938.jpg-eb84edd1-dc00-49ef-a685-d12409ae9e5e.jpeg new file mode 100644 index 0000000..35bb4bc Binary files /dev/null and b/media/smugimages/20220209-_JMR8938.jpg-eb84edd1-dc00-49ef-a685-d12409ae9e5e.jpeg differ diff --git a/media/smugimages/20220209-_JMR8953.jpg-fa1dc195-ba49-4a74-ad2d-de4844ee6b28.jpeg b/media/smugimages/20220209-_JMR8953.jpg-fa1dc195-ba49-4a74-ad2d-de4844ee6b28.jpeg new file mode 100644 index 0000000..6666c48 Binary files /dev/null and b/media/smugimages/20220209-_JMR8953.jpg-fa1dc195-ba49-4a74-ad2d-de4844ee6b28.jpeg differ diff --git a/media/smugimages/20220214-_JMR8964-2.jpg-b2498832-2df8-4408-8452-10fd3b21fc05.jpeg b/media/smugimages/20220214-_JMR8964-2.jpg-b2498832-2df8-4408-8452-10fd3b21fc05.jpeg new file mode 100644 index 0000000..537badc Binary files /dev/null and b/media/smugimages/20220214-_JMR8964-2.jpg-b2498832-2df8-4408-8452-10fd3b21fc05.jpeg differ diff --git a/media/smugimages/20220214-_JMR8980.jpg-f1643038-3d43-4f32-abbe-8433c6f84f86.jpeg b/media/smugimages/20220214-_JMR8980.jpg-f1643038-3d43-4f32-abbe-8433c6f84f86.jpeg new file mode 100644 index 0000000..b9916ba Binary files /dev/null and b/media/smugimages/20220214-_JMR8980.jpg-f1643038-3d43-4f32-abbe-8433c6f84f86.jpeg differ diff --git a/media/smugimages/20220214-_JMR9015.jpg-50b0d525-9d39-4136-9544-597a80fdb8ad.jpeg b/media/smugimages/20220214-_JMR9015.jpg-50b0d525-9d39-4136-9544-597a80fdb8ad.jpeg new file mode 100644 index 0000000..e36cb6b Binary files /dev/null and b/media/smugimages/20220214-_JMR9015.jpg-50b0d525-9d39-4136-9544-597a80fdb8ad.jpeg differ diff --git a/media/smugimages/33xow7.jpeg-586522c3-0337-4505-8f9d-38f0cfffdaca.jpeg b/media/smugimages/33xow7.jpeg-586522c3-0337-4505-8f9d-38f0cfffdaca.jpeg new file mode 100644 index 0000000..05b638b Binary files /dev/null and b/media/smugimages/33xow7.jpeg-586522c3-0337-4505-8f9d-38f0cfffdaca.jpeg differ diff --git a/smugfolioapi/migrations/0003_remove_images_file_name_remove_images_file_path.py b/smugfolioapi/migrations/0003_remove_images_file_name_remove_images_file_path.py new file mode 100644 index 0000000..470e1de --- /dev/null +++ b/smugfolioapi/migrations/0003_remove_images_file_name_remove_images_file_path.py @@ -0,0 +1,21 @@ +# Generated by Django 4.0.3 on 2022-03-18 15:30 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('smugfolioapi', '0002_rename_smug_user_id_images_smug_user_images_picture'), + ] + + operations = [ + migrations.RemoveField( + model_name='images', + name='file_name', + ), + migrations.RemoveField( + model_name='images', + name='file_path', + ), + ] diff --git a/smugfolioapi/migrations/0004_alter_smug_users_business_name.py b/smugfolioapi/migrations/0004_alter_smug_users_business_name.py new file mode 100644 index 0000000..91ec0f0 --- /dev/null +++ b/smugfolioapi/migrations/0004_alter_smug_users_business_name.py @@ -0,0 +1,18 @@ +# Generated by Django 4.0.3 on 2022-03-18 18:49 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('smugfolioapi', '0003_remove_images_file_name_remove_images_file_path'), + ] + + operations = [ + migrations.AlterField( + model_name='smug_users', + name='business_name', + field=models.CharField(default='Going-To-The-Sun-Photography', max_length=256), + ), + ] diff --git a/smugfolioapi/migrations/0005_images_image_tags.py b/smugfolioapi/migrations/0005_images_image_tags.py new file mode 100644 index 0000000..a63b539 --- /dev/null +++ b/smugfolioapi/migrations/0005_images_image_tags.py @@ -0,0 +1,18 @@ +# Generated by Django 4.0.3 on 2022-03-21 20:18 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('smugfolioapi', '0004_alter_smug_users_business_name'), + ] + + operations = [ + migrations.AddField( + model_name='images', + name='image_tags', + field=models.ManyToManyField(through='smugfolioapi.Image_Tag_Assignments', to='smugfolioapi.image_tags'), + ), + ] diff --git a/smugfolioapi/models/images.py b/smugfolioapi/models/images.py index 1a5ff0f..b5f666c 100644 --- a/smugfolioapi/models/images.py +++ b/smugfolioapi/models/images.py @@ -1,14 +1,19 @@ from django.db import models +from smugfolioapi.models import image_tag_assignments, image_tags, Image_Tag_Assignments class Images(models.Model): album_id = models.IntegerField(default=0) + image_tags = models.ManyToManyField(image_tags.Image_Tags, through=Image_Tag_Assignments) smug_user = models.ForeignKey("Smug_Users", on_delete=models.CASCADE) upload_date = models.DateTimeField(auto_now_add=True) + file_name = models picture = models.ImageField( upload_to='smugimages', height_field=None, width_field=None, max_length=None, null=True ) + # picture key in the table is storing the file path, not the binary data, so I don't have worry about space constraints with the 100 character limit. + # @property # def imagecount(self): # return self.__imagecount diff --git a/smugfolioapi/models/smug_users.py b/smugfolioapi/models/smug_users.py index 311ab34..ced3597 100644 --- a/smugfolioapi/models/smug_users.py +++ b/smugfolioapi/models/smug_users.py @@ -4,7 +4,7 @@ from django.contrib.auth.models import User class Smug_Users(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) - business_name = models.CharField(max_length=256) + business_name = models.CharField(max_length=256, default="Going-To-The-Sun-Photography") business_owner = models.BooleanField(default=False) \ No newline at end of file diff --git a/smugfolioapi/views/auth.py b/smugfolioapi/views/auth.py index 94faa9a..11bdaf9 100644 --- a/smugfolioapi/views/auth.py +++ b/smugfolioapi/views/auth.py @@ -25,9 +25,11 @@ def login_user(request): # If authentication was successful, respond with their token if authenticated_user is not None: token = Token.objects.get(user=authenticated_user) + smug_user= Smug_Users.objects.get(user=authenticated_user) data = { 'valid': True, - 'token': token.key + 'token': token.key, + 'smug_user_id': smug_user.id } return Response(data) else: @@ -43,7 +45,6 @@ def register_user(request): Method arguments: request -- The full HTTP request object ''' - # Create a new user by invoking the `create_user` helper method # on Django's built-in User model new_user = User.objects.create_user( @@ -56,13 +57,13 @@ def register_user(request): # Now save the extra info in the levelupapi_smug_users table smug_users = Smug_Users.objects.create( - business_name=request.data['business_name'], - business_owner=request.data['business_owner'], + user=new_user + ) # Use the REST Framework's token generator on the new user account token = Token.objects.create(user=smug_users.user) # Return the token to the client - data = { 'token': token.key } + data = { 'token': token.key, 'id': smug_users.id } return Response(data, status=201) diff --git a/smugfolioapi/views/images.py b/smugfolioapi/views/images.py index 930db10..fec3f88 100644 --- a/smugfolioapi/views/images.py +++ b/smugfolioapi/views/images.py @@ -3,7 +3,6 @@ from rest_framework.viewsets import ViewSet from rest_framework.response import Response from rest_framework import serializers, status from smugfolioapi.models import Images, Smug_Users -from PIL import Image import uuid import base64 from django.core.files.base import ContentFile @@ -49,17 +48,15 @@ class ImageView(ViewSet): Response -- JSON serialized images instance """ # object must be retrived when using a foreign key - format, imgstr = request.data["picture"].split(';base64,') + file_name = request.query_params.get('file_name', None) + format, imgstr = request.data['picture'].split(';base64,') ext = format.split('/')[-1] - data = ContentFile(base64.b64decode(imgstr), name=f'{request.data["picture"]}-{uuid.uuid4()}.{ext}') + data = ContentFile(base64.b64decode(imgstr), name=f'{file_name}-{uuid.uuid4()}.{ext}') smug_user = Smug_Users.objects.get(user=request.auth.user) images = Images.objects.create( - file_name=request.data["file_name"], - file_path=request.data["file_path"], album_id=request.data["album_id"], picture= data, smug_user= smug_user, - upload_date = request.data["upload_date"] ) serializer = ImagesSerializer(images) return Response(serializer.data, status=201) @@ -72,12 +69,8 @@ class ImageView(ViewSet): """ # Refactor keys to match ERD images = Images.objects.get(pk=pk) - images.file_name = request.data["file_name"] - images.file_path = request.data["file_path"] - images.album_id = request.data["album_id"] - images.smug_user_id = request.data["smug_user_id"] - images.upload_date = request.data["upload_date"] - images.save() + images.image_tags.set(request.data["image_tags"]) + return Response(None, status=status.HTTP_204_NO_CONTENT) def destroy(self, request, pk): @@ -100,7 +93,7 @@ class ImagesSerializer(serializers.ModelSerializer): """ class Meta: model = Images - fields = ('id', 'file_name', 'file_path', 'album_id', 'smug_user_id', 'upload_date', 'picture', 'imagecount') + fields = ('id', 'album_id', 'smug_user_id', 'upload_date', 'picture') depth = 2 diff --git a/smugfolioapi/views/smug_users.py b/smugfolioapi/views/smug_users.py index bb8c228..e22be9b 100644 --- a/smugfolioapi/views/smug_users.py +++ b/smugfolioapi/views/smug_users.py @@ -73,7 +73,7 @@ class Smug_UsersSerializer(serializers.ModelSerializer): """ class Meta: model = Smug_Users - fields = ('id', 'business_name', 'business_owner') + fields = ('id', 'business_name', 'business_owner', 'user') depth = 2 diff --git a/smugfolioserver/db.sql b/smugfolioserver/db.sql index 6517769..44e25b1 100644 --- a/smugfolioserver/db.sql +++ b/smugfolioserver/db.sql @@ -2,4 +2,4 @@ DELETE FROM smugfolioapi_images WHERE id = 1; SELECT * -FROM smugfolioapi_images; \ No newline at end of file +FROM smugfolioapi_images; diff --git a/smugfolioserver/urls.py b/smugfolioserver/urls.py index 2675cba..96cf187 100644 --- a/smugfolioserver/urls.py +++ b/smugfolioserver/urls.py @@ -23,7 +23,7 @@ from django.urls import path from django.conf.urls.static import static from smugfolioapi.views.image_tags import ImageTagsView from smugfolioapi.views.images import ImageView -from smugfolioserver import settings, MEDIA_ROOT, MEDIA_URL +from django.conf import settings router = routers.DefaultRouter(trailing_slash=False) router.register(r'images', ImageView, 'image')