def get(self, group_id, preset_id): errors = validate(group_id=group_id, preset_id=preset_id) if len(errors) > 0: return {"errors": [error.to_json() for error in errors]}, 404 all_presets_actions = PresetActionModel.find_preset_actions_by_preset_id(preset_id) or [] all_in_json = [preset.to_json() for preset in all_presets_actions] return {"preset_actions": all_in_json}, 200
def get(self, schedule_id): errors = validate(schedule_id=schedule_id) if len(errors) > 0: return {"errors": [error.to_json() for error in errors]}, 404 schedule_days = ScheduleDayModel.find_by_schedule_id(schedule_id) or [] all_in_json = [day.to_json() for day in schedule_days] return {"schedule_days": all_in_json}, 200
def get(self, group_id, item_id): errors = validate(group_id=group_id, item_id=item_id, method="GroupItemResource.get") if len(errors) > 0: all_errors_in_json = [error.to_json() for error in errors] return {'errors': all_errors_in_json}, 500 item = ItemModel.find_by_id(item_id) return item.to_json(), 200
def get(self, item_id, usage_id): errors = validate(item_id=item_id, usage_id=usage_id) if len(errors) > 0: return {errors: [error.to_json() for error in errors]}, 404 usage = UsageModel.find_by_id(usage_id) return {"usage": usage.to_json()}, 200
def get(self, schedule_id, scheduled_usage_id): errors = validate(schedule_id=schedule_id, scheduled_usage_id=scheduled_usage_id) if len(errors) > 0: return {"errors": [error.to_json() for error in errors]}, 404 scheduled_usage = ScheduledUsageModel.find_by_id(scheduled_usage_id) return scheduled_usage.to_json(), 200
def get(self, group_id): errors = validate(group_id=group_id) if len(errors) > 0: all_errors_in_json = [error.to_json() for error in errors] return {'errors': all_errors_in_json}, 500 group = GroupModel.find_by_id(group_id) return group.to_json()
def delete(self, schedule_id): errors = validate(schedule_id=schedule_id) if len(errors) > 0: return {"errors": [error.to_json() for error in errors]}, 404 schedule = ScheduleModel.find_by_id(schedule_id) schedule.delete_from_db() return "Schedule with id: {} was successfully deleted.".format( schedule_id), 200
def post(self, schedule_id): if 'usage_id' in request.form.keys(): usage_id = request.form['usage_id'] value = request.form['value'] else: request_data = json.loads(request.data) usage_id = request_data['usage_id'] value = request_data['value'] validate(schedule_id=schedule_id, usage_id=usage_id, usage_value=value, method="ScheduledUsagesResource.post") scheduled_usage = ScheduledUsageModel(schedule_id, usage_id, value) return scheduled_usage.to_json(), 201
def delete(self, group_id): errors = validate(group_id=group_id) if len(errors) > 0: all_errors_in_json = [error.to_json() for error in errors] return {'errors': all_errors_in_json}, 500 group = GroupModel.find_by_id(group_id) group.delete_from_db() return "Group with id: {} was successfully deleted.".format(group_id), 200
def get(self, item_id): errors = validate(item_id=item_id) if len(errors) > 0: return {'errors': [error.to_json() for error in errors]}, 404 item = ItemModel.find_by_id(item_id) usages_in_json = [usage.to_json() for usage in item.usages] return {"usages": usages_in_json}, 200
def get(self, group_id): errors = validate(group_id=group_id) if len(errors) > 0: all_errors_in_json = [error.to_json() for error in errors] return {'errors': all_errors_in_json}, 500 item_groups_from_group = ItemGroupModel.find_by_group_id(group_id)or [] all_in_json = [ItemModel.find_by_id(item_group.item_id).to_json() for item_group in item_groups_from_group] return {"items": all_in_json}, 200
def delete(self, group_id, preset_id): errors = validate(group_id=group_id, preset_id=preset_id) if len(errors) > 0: return {"errors": [error.to_json for error in errors]}, 404 preset = PresetModel.find_by_id(preset_id) preset.delete_from_db() return "Preset with id: {} was successfully deleted.".format( preset_id), 200
def get(self, group_id, preset_id, preset_action_id): errors = validate( group_id=group_id, preset_id=preset_id, preset_action_id=preset_action_id ) if len(errors) > 0: return {"errors": [error.to_json() for error in errors]}, 422 preset_action = PresetActionModel.find_by_id(preset_action_id) return preset_action.to_json()
def put(self, schedule_id): schedule = ScheduleModel.find_by_id(schedule_id) if 'time' in request.form.keys(): schedule_time = request.form['time'] else: request_data = json.loads(request.data) schedule_time = request_data['time'] errors = validate(schedule_id=schedule_id, schedule_time=schedule_time) if len(errors) > 0: return {"errors": [error.to_json() for error in errors]}, 422 schedule.update(time)
def post(self, schedule_id): if 'day' in request.form.keys(): day = int(request.form['day']) else: request_data = json.loads(request.data) day = int(request_data['day']) errors = validate(schedule_id=schedule_id, schedule_day_number=day) if len(errors) > 0: return {"errors": [error.to_json() for error in errors]}, 404 schedule_day = ScheduleDayModel(schedule_id, day) return schedule_day.to_json(), 201
def post(self, group_id): if 'name' in request.form.keys(): name = request.form['name'] else: request_data = json.loads(request.data) name = request_data['name'] errors = validate(group_id=group_id, preset_name=name) if len(errors) > 0: return {"errors": [error.to_json() for error in errors]}, 422 preset = PresetModel(group_id, name) preset.save_to_db() return preset.to_json(), 201
def post(self): if 'time' in request.form.keys(): schedule_time = request.form['time'] if 'schedule_days' in request.form.keys(): request_schedule_days = request.form['schedule_days'] else: request_schedule_days = [] if 'scheduled_usages' in request.form.keys(): request_scheduled_usages = request.form['scheduled_usages'] else: request_scheduled_usages = [] else: request_data = json.loads(request.data) schedule_time = request_data['time'] if 'schedule_days' in request_data.keys(): request_schedule_days = request_data['schedule_days'] else: request_schedule_days = [] if 'scheduled_usages' in request_data.keys(): request_scheduled_usages = request_data['scheduled_usages'] else: request_scheduled_usages = [] errors = validate(schedule_time=schedule_time, schedule_days=request_schedule_days, schedule_usages=request_scheduled_usages) if len(errors) > 0: return {"errors": [error.to_json() for error in errors]}, 422 schedule = ScheduleModel(datetime.strptime(schedule_time, "%H:%M:%S")) schedule.save_to_db() schedule_days = [] for schedule_day in request_schedule_days: schedule_day = ScheduleDayModel(schedule.id, schedule_day) schedule_day.save_to_db() schedule_days.append(schedule_day) schedule.schedule_days = schedule_days scheduled_usages = [] for scheduled_usage in request_scheduled_usages: scheduled_usage = ScheduledUsageModel(schedule.id, scheduled_usage['usage_id'], scheduled_usage['value']) scheduled_usage.save_to_db() scheduled_usages.append(scheduled_usage) schedule.scheduled_usages = scheduled_usages return schedule.to_json(), 201
def put(self, schedule_id, scheduled_usage_id): if 'value' in request.form.keys(): value = request.form['value'] else: request_data = json.loads(request.data) value = request_data['value'] errors = validate(schedule_id=schedule_id, scheduled_usage_id=scheduled_usage_id, scheduled_usage_value=value) if len(errors) > 0: return {"errors": [error.to_json() for error in errors]} scheduled_usage = ScheduledUsageModel.find_by_id(scheduled_usage_id) return scheduled_usage.set_value(value).to_json(), 200
def patch(self, group_id, preset_id): errors = validate(group_id=group_id, preset_id=preset_id) if len(errors) > 0: return {"errors": [error.to_json for error in errors]}, 404 preset = PresetModel.find_by_id(preset_id) responses = [] for preset_action in preset.preset_actions: usage = UsageModel.find_by_id(preset_action.usage_id) response = requests.get(url="{}alias={}&value={}".format( app.config['HOMELYNK_URI'], usage.address, preset_action.value)) responses.append(response) print(responses) return "Request has been accepted.", 202
def post(self): if 'name' in request.form.keys(): name = request.form['name'] comment = request.form['comment'] else: request_data = json.loads(request.data) name = request_data['name'] comment = request_data['comment'] errors = validate(item_name=name, item_comment=comment) if len(errors) > 0: return {"errors": [error.to_json() for error in errors]}, 422 item = ItemModel(name, comment) item.save_to_db() return item.to_json(), 201
def put(self, item_id, usage_id): min_value = None max_value = None if 'external_item_id' in request.form.keys(): external_item_id = request.form['external_item_id'] consumption_type = request.form['consumption_type'] consumption_amount = int(request.form['consumption_amount']) address = request.form['address'] unit = request.form['unit'] if 'min_value' in request.form.keys(): min_value = request.form['min_value'] if 'max_value' in request.form.keys(): max_value = request.form['max_value'] else: request_data = json.loads(request.data) external_item_id = request_data['external_item_id'] consumption_type = request_data['consumption_type'] consumption_amount = int(request_data['consumption_amount']) address = request_data['address'] unit = request_data['unit'] if 'min_value' in request_data.keys(): min_value = request_data['min_value'] if 'max_value' in request_data.keys(): max_value = request_data['max_value'] errors = validate(item_id=item_id, usage_id=usage_id, usage_consumption_amount=consumption_amount, usage_consumption_type=consumption_type, usage_address=address, usage_unit=unit, usage_min_value=min_value, usage_max_value=max_value) if len(errors) > 0: return {"errors": [error.to_json() for error in errors]}, 404 usage = UsageModel.find_by_id(usage_id) usage = usage.update(external_item_id=external_item_id, consumption_type=consumption_type, consumption_amount=consumption_amount, address=address, unit=unit, min_value=min_value, max_value=max_value) return usage.to_json(), 202
def put(self, group_id): if 'name' in request.form.keys(): name = request.form['name'] else: request_data = json.loads(request.data) name = request_data['name'] errors = validate( group_id=group_id, group_name=name ) if len(errors) > 0: all_errors_in_json = [error.to_json() for error in errors] return {'errors': all_errors_in_json}, 500 group = GroupModel.find_by_id(group_id) group = group.update_name(name) return group.to_json()
def post(self): if 'name' in request.form.keys(): name = request.form['name'] is_module = request.form['is_module'] else: request_data = json.loads(request.data) name = request_data['name'] is_module = request_data['is_module'] errors = validate(group_name=name) if len(errors) > 0: all_errors_in_json = [error.to_json() for error in errors] return {'errors': all_errors_in_json}, 400 group = GroupModel(name, is_module) group.save_to_db() return group.to_json(), 201
def delete(self, group_id, item_id): errors = validate(group_id=group_id, item_id=item_id, method="GroupItemResource.delete") if len(errors) > 0: all_errors_in_json = [error.to_json() for error in errors] return {'errors': all_errors_in_json}, 500 item_group = ItemGroupModel.find_by_item_id_and_group_id(item_id, group_id) item_group.delete_from_db() item_group = ItemGroupModel.find_by_item_id_and_group_id(item_id, group_id) if item_group is not None: errors.append(Error("An unexpected error occurred item was not removed from group.", "ItemGroupModel.find_by_item_id_and_group_id({}, {}) did not return None".format(item_id, group_id), 500, "https://en.wikipedia.org/wiki/HTTP_500")) else: group = GroupModel.find_by_id(group_id) return group.to_json(), 200
def put(self, item_id): item = ItemModel.find_by_id(item_id) if 'name' in request.form.keys(): name = request.form['name'] comment = request.form['comment'] else: request_data = json.loads(request.data) name = request_data['name'] comment = request_data['comment'] errors = validate(item_id=item_id, item_name=name, item_comment=comment) if len(errors) > 0: return {"errors": [error.to_json() for error in errors]}, 422 item = item.update(name=name, comment=comment) return item.to_json()
def put(self, group_id, preset_id): if 'name' in request.form.keys(): name = request.form['name'] else: request_data = json.loads(request.data) name = request_data['name'] errors = validate(group_id=group_id, preset_id=preset_id, preset_name=name) if len(errors) > 0: return {"errors": [error.to_json() for error in errors]}, 422 preset = PresetModel.find_by_id(preset_id) result = preset.set_name(name) if type(result) is PresetModel: return result.to_json(), 200 else: return result, 400
def post(self, item_id): min_value = None max_value = None if 'external_item_id' in request.form.keys(): external_item_id = request.form['external_item_id'] consumption_type = request.form['consumption_type'] consumption_amount = int(request.form['consumption_amount']) address = request.form['address'] unit = request.form['unit'] if 'min_value' in request.form.keys(): min_value = request.form['min_value'] if 'max_value' in request.form.keys(): max_value = request.form['max_value'] else: request_data = json.loads(request.data) external_item_id = request_data['external_item_id'] consumption_type = request_data['consumption_type'] consumption_amount = int(request_data['consumption_amount']) address = request_data['address'] unit = request_data['unit'] if 'min_value' in request_data.keys(): min_value = request_data['min_value'] if 'max_value' in request_data.keys(): max_value = request_data['max_value'] errors = validate(item_id=item_id, usage_consumption_type=consumption_type, usage_consumption_amount=consumption_amount, usage_address=address, usage_unit=unit, usage_min_value=min_value, usage_max_value=max_value) if len(errors) > 0: return {"errors": [error.to_json() for error in errors]}, 422 consumption_type = UsageTypeEnum(consumption_type) unit = UnitEnum(unit) usage = UsageModel(item_id, external_item_id, consumption_type, consumption_amount, address, unit, min_value, max_value) usage.save_to_db() return usage.to_json(), 201
def post(self, group_id): if 'item_id' in request.form.keys(): item_id = request.form['item_id'] else: request_data = json.loads(request.data) item_id = request_data['item_id'] errors = validate( group_id=group_id, item_id=item_id, method="GroupItemsResource.post" ) if len(errors) > 0: all_errors_in_json = [error.to_json() for error in errors] return {'errors': all_errors_in_json}, 422 item_group = ItemGroupModel(item_id, group_id) item_group.save_to_db() group = GroupModel.find_by_id(group_id) return group.to_json()
def post(self, group_id, preset_id): if 'usage_id' in request.form.keys(): usage_id = request.form['usage_id'] value = request.form['value'] else: request_data = json.loads(request.data) usage_id = request_data['usage_id'] value = request_data['value'] errors = validate( group_id=group_id, preset_id=preset_id, usage_id=usage_id, usage_value=value, method="PresetActionsResource.post" ) if len(errors) > 0: return {"errors": [error.to_json() for error in errors]}, 422 preset_action = PresetActionModel(preset_id, usage_id, value) preset_action.save_to_db() return preset_action.to_json(), 201
def put(self, group_id, preset_id, preset_action_id): if 'usage_id' in request.form.keys(): usage_id = request.form['usage_id'] value = request.form['value'] else: request_data = json.loads(request.data) usage_id = request_data['usage_id'] value = request_data['value'] errors = validate( group_id=group_id, preset_id=preset_id, preset_action_id=preset_action_id, usage_id=usage_id, usage_value=value ) if len(errors) > 0: return {"errors": [error.to_json() for error in errors]}, 422 preset_action = PresetActionModel.find_by_id(preset_action_id) preset_action.update(usage_id, value) return preset_action.to_json(), 200