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
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
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
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
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
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
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
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
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
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'}
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
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'}
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
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
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
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
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
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
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
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']}
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
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