def manage_volume():
"""
????
"""
if request.method == 'GET':
volume_id = request.args.get('volume_id')
if volume_id:
volume_object = Volume.select()\
.where(Volume.id == volume_id)\
.get()
return jsonify(payload=model_to_dict(volume_object))
else:
volume_objects = Volume.select().order_by(Volume.name)
return render_template('manage/volume.html',
volumes=volume_objects,
page_title=u'Vol.??')
# ?? Vol.
elif request.method == 'POST':
volume_name = request.form.get('volume_name')
if volume_name:
try:
Volume.create(name=volume_name)
return jsonify(message=u'?????{}???'.format(volume_name))
except IntegrityError:
raise ParamsConflict(message=u'???????{} ???'
.format(volume_name))
else:
raise InvalidParams(message=u'???????name ????')
# ?? Vol.
elif request.method == 'PATCH':
volume_name = request.form.get('volume_name')
volume_id = request.form.get('volume_id')
if not volume_name:
raise InvalidParams(message=u'?? Vol. ???name ????')
else:
try:
Volume.update(name=volume_name, update_time=datetime.now())\
.where(Volume.id == volume_id)\
.execute()
return jsonify(message=u'?? Vol. {} ????'
.format(volume_name))
except IntegrityError:
raise ParamsConflict(message=u'?? Vol. ???{} ???'
.format(volume_name))
# ?? Vol.
elif request.method == 'DELETE':
volume_id = request.form.get('volume_id')
volume_name = request.form.get('volume_name')
try:
content_query = Content.select()\
.join(Volume)\
.where(Volume.id == volume_id)\
.get()
project_url = content_query.project_url
raise InvalidParams(message=u'?? Vol. ???{project_url}????'
u'??? Vol.??????????'
.format(project_url=project_url))
except DoesNotExist:
Volume.delete().where(Volume.id == volume_id).execute()
return jsonify(message=u'?? Vol.?{}???'
.format(volume_name))
评论列表
文章目录