summaryrefslogtreecommitdiff
path: root/day9/task5_vue/backend/views.py
diff options
context:
space:
mode:
authorAndrew <saintruler@gmail.com>2019-07-21 13:14:38 +0400
committerAndrew <saintruler@gmail.com>2019-07-21 13:14:38 +0400
commitaa9212f3226b10976c31cdf804139d60ae655a16 (patch)
tree34014ae5168d1258f079928486497e65a35f5b44 /day9/task5_vue/backend/views.py
parent2305ced85888a23f86ecfcdfb64a3b69c4997a4c (diff)
Добавлена валидация при обновлении значений в ряду.
Diffstat (limited to 'day9/task5_vue/backend/views.py')
-rw-r--r--day9/task5_vue/backend/views.py18
1 files changed, 12 insertions, 6 deletions
diff --git a/day9/task5_vue/backend/views.py b/day9/task5_vue/backend/views.py
index d6d9351..ab8b628 100644
--- a/day9/task5_vue/backend/views.py
+++ b/day9/task5_vue/backend/views.py
@@ -67,16 +67,22 @@ def validate(query, *args):
def update_post(query, *args):
wrapper = get_wrapper_for('mysql')
- service_id = query['service_id']
+ scheme = wrapper.schemes['table_task1']
+
permitted_fields = wrapper.get_column_names()
permitted_fields.remove('service_id')
- query_set = []
- for field_name, value in query.items():
- if field_name in permitted_fields:
- query_set.append(f'{field_name}="{value}"')
+ validation_results = scheme.validate(query)
+ if not validation_results['error']:
+ expressions = {}
+ for key, value in query.items():
+ if key in permitted_fields:
+ expressions[key] = value
+
+ wrapper.update('table_task1', expressions, {'service_id': query['service_id']})
+ else:
+ return ErrorResponse(500)
- wrapper.update('table_task1', query_set, {'service_id': service_id})
return HtmlResponse('<a href="/">Return to main page</a><br><h1>Database Updated</h1>')