def _refresh_client_info(request, response, android_id, device_phone, client_id=None, city_id=None): def refresh(client): client.user_agent = request.headers["User-Agent"] if 'iOS' in client.user_agent: client.device_type = IOS_DEVICE elif 'Android' in client.user_agent: client.device_type = ANDROID_DEVICE if android_id: client.android_id = android_id if device_phone and not client.tel: client.tel = device_phone if client.city and client.city.id() == city_id: response['show_cities'] = False else: response['show_cities'] = True if city_id: save_city(client, city_id) client.put() client.save_session() current_namespace = namespace_manager.get_namespace() client = None if client_id: if request.init_namespace: namespace_manager.set_namespace(request.init_namespace) client = Client.get(client_id) if not client: client = Client.create() client_id = client.key.id() refresh(client) if request.init_namespace and not Client.is_id_global(client_id): namespace_manager.set_namespace(request.init_namespace) for company in AutomationCompany.query( AutomationCompany.status == STATUS_AVAILABLE).fetch(): namespace_manager.set_namespace(company.namespace) other_client = Client.get(client_id) if not other_client: other_client = Client.create(client_id) refresh(other_client) namespace_manager.set_namespace(current_namespace) return client
def post_client(): req = Req().request req.add_argument('client') reqargs = req.parse_args() resp = Resp().response if not reqargs['client']: resp['meta']['code'] = 403 resp['meta']['description'] = 'incorrect request' return jsonify(resp), 403 client = Client() if not client.create(json.loads(reqargs['client'].replace("'", '"'))): resp['meta']['code'] = 404 resp['meta']['description'] = 'column not found/failed/login already exists' return jsonify(resp), 404 client.id_registered_by = g.employee.id_employee try: g.db_session.add(client) g.db_session.commit() except sqlalchemy.exc.IntegrityError as ex: log.warning('resources.Clients.post_client(): '+str(ex)) if 'UNIQUE constraint failed: clients.login' in str(ex): resp['meta']['code'] = 403 resp['meta']['description'] = 'login already exist' return jsonify(resp), 403 elif 'NOT NULL constraint failed: clients.login' in str(ex): resp['meta']['code'] = 403 resp['meta']['description'] = 'login is empty' return jsonify(resp), 403 else: resp['meta']['code'] = 403 resp['meta']['description'] = str(ex) return jsonify(resp), 403 resp['meta']['description'] = 'success' resp['content']['id_client'] = client.id_client return jsonify(resp), 200