Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
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)
Esempio n. 4
0
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)
Esempio n. 5
0
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
Esempio n. 6
0
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)