Esempio n. 1
0
def update_worker(filter, id, data):
    if filter == 'id':
        key = client.key(DATASTORE_WORKERS_KIND_NAME, int(id))
        query = client.query(kind=DATASTORE_WORKERS_KIND_NAME)
        query.add_filter('__key__', '=', key)
    if filter == 'email':
        query = client.query(kind=DATASTORE_WORKERS_KIND_NAME)
        query.add_filter('email', '=', id)

    results = list(query.fetch())
    if not results:
        raise ModelNotFound('serviceNotExist')

    entity = results[0]

    if 'schedule' in data.keys():
        worker = Worker(**entity)
        worker.id = entity.id
        schedule = worker.to_dict()['schedule']
        schedule.append(data['schedule'])
        data['schedule'] = schedule
    entity.update(data)

    client.put(entity)

    updated_worker = Worker(**entity)
    updated_worker.id = entity.id
    return updated_worker
Esempio n. 2
0
def get_worker_id(filter, value):
    if filter == 'id':
        key = client.key(DATASTORE_WORKERS_KIND_NAME, int(value))
        query = client.query(kind=DATASTORE_WORKERS_KIND_NAME)
        query.add_filter('__key__', '=', key)
    elif filter == 'email':
        query = client.query(kind=DATASTORE_WORKERS_KIND_NAME)
        query.add_filter('email', '=', value)

    worker_entities = list(query.fetch())

    entity = worker_entities[0]
    worker = Worker(**entity)
    worker.id = entity.id

    return worker
Esempio n. 3
0
def update_person(email, data):
    """
    Actualiza la información del lenguaje de un usuario en datastore.
    :param new_lang: Nuevo lenguaje de. usuario.
    :return: objeto de la clase User
    """
    query = client.query(kind=DATASTORE_PEOPLE_KIND_NAME)
    query.add_filter('client', '=', email)

    results = list(query.fetch())
    if not results:
        raise ModelNotFound('userNotExist')

    entity = results[0]

    # Se crea la entidad y se sustituye el cambio.
    entity.update(data)

    # Se actualiza en datastore.
    client.put(entity)

    # Se devuelve el objeto que representa al usuario.
    updated_person = AssociatedPerson(
        **entity
    )
    updated_person.id = entity.id
    return updated_person
Esempio n. 4
0
def update_service(id, data):
    key = client.key(DATASTORE_SERVICES_KIND_NAME, int(id))
    query = client.query(kind=DATASTORE_SERVICES_KIND_NAME)
    query.add_filter('__key__', '=', key)

    results = list(query.fetch())
    if not results:
        raise ModelNotFound('serviceNotExist')

    entity = results[0]

    if 'rejected_by' in data.keys():
        user = data['rejected_by']
        service = Service(**entity)
        service.id = entity.id
        rejected_by = service.to_dict()['rejected_by']
        rejected_by.append(user)
        data['rejected_by'] = rejected_by

    if data['status'] == 'accepted':
        service = Service(**entity)
        service.id = entity.id
        service_info = service.to_dict()
        schedule = service_info['schedule']
        worker = service_info['worker']
        update_worker('email', worker, {'schedule': schedule})
    entity.update(data)

    client.put(entity)

    updated_service = Service(**entity)
    updated_service.id = entity.id
    return updated_service
Esempio n. 5
0
def get_address_id(id):
    key = client.key(DATASTORE_ADDRESS_KIND_NAME, int(id))
    query = client.query(kind=DATASTORE_ADDRESS_KIND_NAME)
    query.add_filter('__key__', '=', key)

    adresses_entities = list(query.fetch())

    entity = adresses_entities[0]
    address = Address(**entity)
    address.id = entity.id

    return address
Esempio n. 6
0
def get_people_id(id):
    key = client.key(DATASTORE_PEOPLE_KIND_NAME, int(id))
    query = client.query(kind=DATASTORE_PEOPLE_KIND_NAME)
    query.add_filter('__key__', '=', key)

    people_entities = list(query.fetch())

    entity = people_entities[0]
    person = AssociatedPerson(**entity)
    person.id = entity.id

    return person
Esempio n. 7
0
def get_service_id(id):
    key = client.key(DATASTORE_SERVICES_KIND_NAME, int(id))
    query = client.query(kind=DATASTORE_SERVICES_KIND_NAME)
    query.add_filter('__key__', '=', key)

    people_entities = list(query.fetch())

    entity = people_entities[0]
    service = Service(**entity)
    service.id = entity.id

    return service
Esempio n. 8
0
def get_workers():
    query = client.query(kind=DATASTORE_WORKERS_KIND_NAME)
    results = list(query.fetch())

    if not results:
        raise ModelNotFound('workerNotExist')

    workers = []
    for worker_entity in results:
        worker = Worker(**worker_entity)
        worker.id = worker_entity.id
        workers.append(worker)

    return workers
Esempio n. 9
0
def get_user(email):
    query = client.query(kind=DATASTORE_USERS_KIND_NAME)
    query.add_filter('email', '=', email)

    results = list(query.fetch())

    if not results:
        raise ModelNotFound('userNotExist')

    entity = results[0]

    # Se devuelve el objeto que representa el usuario.
    user = User(**entity)
    user.id = entity.id
    return user
Esempio n. 10
0
def delete_address(id):
    key = client.key(DATASTORE_ADDRESS_KIND_NAME, int(id))
    query = client.query(kind=DATASTORE_ADDRESS_KIND_NAME)
    query.add_filter('__key__', '=', key)

    address_entities = list(query.fetch())

    if not address_entities:
        raise ModelNotFound('addressNotExist')

    entity = address_entities[0]

    client.delete(entity.key)

    return {'result': 'OK'}
Esempio n. 11
0
def get_services(email=None, filter=None, status=None, order=None):
    if order is not None:
        query = client.query(kind=DATASTORE_SERVICES_KIND_NAME,
                             order=['start_date'])
    else:
        query = client.query(kind=DATASTORE_SERVICES_KIND_NAME,
                             order=['-start_date'])
    if email is not None:
        query.add_filter(filter, '=', email)
    if status is not None:
        query.add_filter('status', '=', status)

    results = list(query.fetch())

    if not results:
        raise ModelNotFound('userNotExist')

    services = []
    for service_entity in results:
        phone = Service(**service_entity)
        phone.id = service_entity.id
        services.append(phone)

    return services
Esempio n. 12
0
def delete_person(id):
    key = client.key(DATASTORE_PEOPLE_KIND_NAME, int(id))
    query = client.query(kind=DATASTORE_PEOPLE_KIND_NAME)
    query.add_filter('__key__', '=', key)

    people_entities = list(query.fetch())

    if not people_entities:
        raise ModelNotFound('personNotExist')

    entity = people_entities[0]

    client.delete(entity.key)

    return {'result': 'OK'}
Esempio n. 13
0
def get_prices():
    query = client.query(kind=DATASTORE_PRICES_KIND_NAME)

    results = list(query.fetch())

    if not results:
        raise ModelNotFound('pricesNotExist')

    prices = []
    for price_entity in results:
        price = Price(**price_entity)
        price.id = price_entity.id
        prices.append(price)

    return prices
Esempio n. 14
0
def get_mesagges(params):
    query = client.query(kind=DATASTORE_MESSAGES_KIND_NAME, order=['date'])
    query.add_filter('id_chat', '=', params['id_chat'])

    results = list(query.fetch())

    if not results:
        raise ModelNotFound('messagesNotExist')

    messages = []
    for message_entity in results:
        message = Messages(**message_entity)
        message.id = message_entity.id
        messages.append(message)

    return messages
Esempio n. 15
0
def get_people(email):
    query = client.query(kind=DATASTORE_PEOPLE_KIND_NAME)
    query.add_filter('client', '=', email)

    results = list(query.fetch())

    if not results:
        raise ModelNotFound('userNotExist')

    user_people = []
    for user_entity in results:
        person = AssociatedPerson(**user_entity)
        person.id = user_entity.id
        user_people.append(person)

    return user_people
Esempio n. 16
0
def get_addresses(email):
    query = client.query(kind=DATASTORE_ADDRESS_KIND_NAME)
    query.add_filter('client', '=', email)

    results = list(query.fetch())

    if not results:
        raise ModelNotFound('addressNotExist')

    user_addresses = []
    for user_entity in results:
        address = Address(**user_entity)
        address.id = user_entity.id
        user_addresses.append(address)

    return user_addresses
Esempio n. 17
0
def get_phones(email):
    query = client.query(kind=DATASTORE_PHONES_KIND_NAME)
    query.add_filter('user', '=', email)

    results = list(query.fetch())

    if not results:
        raise ModelNotFound('userNotExist')

    user_phones = []
    for user_entity in results:
        phone = Phone(**user_entity)
        phone.id = user_entity.id
        user_phones.append(phone)

    return user_phones
Esempio n. 18
0
def get_chats(params):
    query = client.query(kind=DATASTORE_CHAT_KIND_NAME)
    query.add_filter(params['filter'], '=', params['value'])

    results = list(query.fetch())

    if not results:
        raise ModelNotFound('chatNotExist')

    chats = []
    for chat_entity in results:
        chat = Chat(**chat_entity)
        chat.id = chat_entity.id
        chats.append(chat)

    return chats
Esempio n. 19
0
def get_admins():
    query = client.query(kind=DATASTORE_USERS_KIND_NAME)
    query.add_filter('admin', '=', True)

    results = list(query.fetch())

    if not results:
        raise ModelNotFound('userNotExist')

    users = []
    for user_entity in results:
        user = User(**user_entity)
        user.id = user_entity.id
        users.append(user)

    return users
Esempio n. 20
0
def delete_worker(id):
    key = client.key(DATASTORE_WORKERS_KIND_NAME, int(id))
    query = client.query(kind=DATASTORE_WORKERS_KIND_NAME)
    query.add_filter('__key__', '=', key)

    address_entities = list(query.fetch())

    if not address_entities:
        raise ModelNotFound('workerotExist')

    entity = address_entities[0]
    deleted_worker = Worker(**entity)
    deleted_worker.id = entity.id

    client.delete(entity.key)

    return {'result': 'OK', 'email': deleted_worker.to_dict()['email']}
Esempio n. 21
0
def get_workers_to_service(service):
    query = client.query(kind=DATASTORE_WORKERS_KIND_NAME)
    query.add_filter('status', '=', 'working')
    results = list(query.fetch())

    if not results:
        raise ModelNotFound('workerNotExist')

    workers = []
    for worker_entity in results:
        worker = Worker(**worker_entity)
        worker.id = worker_entity.id
        if(service['type'] in worker.to_dict()['type']) and\
            (worker.to_dict()['email'] not in service['rejected_by']) and \
            worker.to_dict()['accept_more_services']:
            workers.append(worker)

    return workers
Esempio n. 22
0
def update_price(id, data):
    key = client.key(DATASTORE_PRICES_KIND_NAME, int(id))
    query = client.query(kind=DATASTORE_PRICES_KIND_NAME)
    query.add_filter('__key__', '=', key)

    results = list(query.fetch())
    if not results:
        raise ModelNotFound('priceNotExist')

    entity = results[0]

    # Se crea la entidad y se sustituye el cambio.
    entity.update(data)

    # Se actualiza en datastore.
    client.put(entity)

    # Se devuelve el objeto que representa al usuario.
    updated_price = Price(**entity)
    updated_price.id = entity.id
    return updated_price