def get_suggested_products(client): scores = Counter() clients = Client.objects(contact_id__ne=client.contact_id) for c in clients: sim = len([att for att, val in c.boolean_attributes.items() \ if client.boolean_attributes[att] == val]) for f in Feedback.objects(client=c): scores[f.product.product_id] += sim if f.positive else -sim return sorted(scores.items(), key=lambda e: e[1], reverse=True)
def register(username, password, email): # hash the password user_salt = bcrypt.gensalt() hashed_password = bcrypt.hashpw(password.encode(), user_salt) new_user = Client(username=username, password=hashed_password, salt=user_salt, email=email) session.add(new_user) session.commit() # to save the user and id invalid_logins = InvalidLogin(id_=new_user.id_, login_count=0) session.add(invalid_logins) session.flush() session.commit()
def create_client(data): """ Create a new client. """ session = db.session ip = data.get('ip') type = data.get('type') package = '' network_id = data.get('network_id') network = db.session.query(Network).filter(Network.id == network_id).one() status = 'pending' arguments = data.get('arguments') client = Client(ip=ip, type=type, package=package, network=network, status=status, parameters=arguments) session.add(client) session.commit() session.close()
from database.models import Client, Product, Feedback from collections import Counter def get_suggested_products(client): scores = Counter() clients = Client.objects(contact_id__ne=client.contact_id) for c in clients: sim = len([att for att, val in c.boolean_attributes.items() \ if client.boolean_attributes[att] == val]) for f in Feedback.objects(client=c): scores[f.product.product_id] += sim if f.positive else -sim return sorted(scores.items(), key=lambda e: e[1], reverse=True) if __name__ == '__main__': import database database.connect() client = Client.objects().first() print client.boolean_attributes products = get_suggested_products(client) print products for p_id, score in products: p = Product.objects(product_id=p_id).first() print p.name.encode('utf-8'), score
def get(self): clients = Client.objects().to_json() return Response(clients, mimetype="application/json", status=200)
def post(self): body = request.get_json() client = Client(**body).save() id = client.id return {'id': str(id)}, 200
def list_clients(): clients = Client.objects() return render_template('list_clients.html', clients=clients)