diff options
Diffstat (limited to 'day9/task5_vue/backend/views.py')
| -rw-r--r-- | day9/task5_vue/backend/views.py | 18 |
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>') |