def new_furniture(): json = request.json preview_id = json['preview'] graphic_model_id = json['model'] preview_file = FileModel(id=preview_id).objects.first() graphic_file = FileModel(id=graphic_model_id).objects.first() token = json['token'] category = json['category'] cat = Category.objects(name=category).first() if not cat: cat = Category(name=category).save() name = decode_token(token) if name is TOKEN_EXPIRED and name is TOKEN_INVALID: return '', 400 company = Company.objects(name=name).first() company.categories.append(cat) # FIXME all mongoengine queries company.save() if not company: return '', 400 furn = Furniture( seller=company, name=json['name'], category=cat, price=json['price'], graphic_model=graphic_file, preview_file=preview_file, ).save() company.furniture.append(furn) company.save() cat.companies.append(company) cat.furniture.append(furn) cat.save() return jsonify({'id': str(furn.id)}), 201
def login(): json = request.json name = json['name'] password = json['password'] company = Company.objects(name=name, password=to_md5(password)).first() if company: return encode_token(name) else: return '', 400
def get_company(name): c = Company.objects(name=name).first() response = { 'company': { 'name': c.company_name, 'label': "/api/company/%s/label" % c.company_name } } return jsonify(response)
def company_label(companyname): company = Company.objects(company_name=companyname).first() if not company: return '', 404 label = company.label.file return send_file(label, mimetype=label.content_type, attachment_filename=label.filename, as_attachment=True)
def delete_furniture(_id): json = request.get_json() name = decode_token(json['token']) if name is TOKEN_INVALID or name is TOKEN_EXPIRED: return '', 403 company = Company.objects(name=name).first() furn = Furniture.objects(id=id).first() if furn.seller is company: furn.delete() return '' else: return '', 403
def get_categories(): name = request.args.get('name') company = Company.objects(name=name).first() response = {'categories': []} for cat in company.categories: furn = cat.furniture.first() if furn: response['categories'].append({ 'category': cat.name, 'preview_url': "/api/furniture/%s/preview" % str(furn.id) }) return jsonify(response)