def post(self): self.set_header("Content-Type", "application/json") self.set_header('Access-Control-Allow-Origin', '*') booking_id = self.get_argument('booking_id', '') reason = self.get_argument('reason', '') print booking_id, reason ret = {} try: session = Session() userdao = UserDAO() masterdao = MasterDAO() addressdao = AddressDAO() now = dt.datetime.now().date() + dt.timedelta(days=2) row = session.query(Booking) \ .filter(Booking.id == booking_id) \ .filter(Booking.cleaning_status == 0) \ .filter(func.date(Booking.start_time) >= now) \ .one() master_id = row.master_id start_time = row.start_time request = MasterBookingModifyRequest( master_id=master_id, booking_id=booking_id, reason=reason, org_time=start_time, request_time=dt.datetime.now()) session.add(request) session.commit() row = session.query(Booking, UserAddress) \ .join(UserAddress, and_(Booking.user_id == UserAddress.user_id, Booking.addr_idx == UserAddress.user_addr_index)) \ .filter(Booking.id == booking_id) \ .one() master_name = masterdao.get_master_name(row.Booking.master_id) user_name = userdao.get_user_name(row.Booking.user_id) district = addressdao.get_gu_name( userdao.get_user_address(row.Booking.user_id)[0]) appointment_time = convert_datetime_format2(row.Booking.start_time) for manager_phone in MANAGERS_CALL.split(','): send_alimtalk(manager_phone, 'noti_manager_modify_schedule', master_name, user_name, district, appointment_time) send_jandi( 'HOMEMASTER_REST', "휴무 신청", master_name + ' 홈마스터님 일정변경 신청', '고객 : {}\n지역 : {}\n일정 : {}'.format(user_name, district, appointment_time)) ret['response'] = Response.SUCCESS self.set_status(Response.RESULT_OK) print 'booking_id', booking_id, 'was requested to modify' except NoResultFound, e: session.close() self.set_status(Response.RESULT_OK) add_err_ko_message_to_response( ret, '해당일은 일정 변경이 불가능 합니다. 일정 변경은 최소 이틀전에 가능합니다.') return
def post(self): ret = {} guid = self.get_argument('id', '') address = self.get_argument('address', '') size = self.get_argument('size', 0) kind = self.get_argument('kind', 1) self.set_header("Content-Type", "application/json") self.set_header('Access-Control-Allow-Origin', '*') mongo_logger = get_mongo_logger() mix = get_mixpanel() try: session = Session() userdao = UserDAO() addressdao = AddressDAO() latlng = get_latlng_from_address(address) if len(latlng) > 1: latitude = latlng[0] longitude = latlng[1] geohash5 = get_geohash(latitude, longitude, 5) geohash6 = get_geohash(latitude, longitude, 6) else: latitude = 0.0 longitude = 0.0 geohash5 = '' geohash6 = '' key = userdao.get_user_salt_by_id(guid)[:16] crypto = aes.MyCrypto(key) encrypted_address = crypto.encodeAES(str(address)) count = session.query(UserAddress).filter( UserAddress.user_id == guid).count() last_index = session.query(UserAddress).filter( UserAddress.user_id == guid).order_by( desc(UserAddress.user_addr_index)).first() index = 0 if last_index != None: index = last_index.user_addr_index + 1 new_address = UserAddress(user_id=guid, address=encrypted_address, size=size, kind=kind, user_addr_index=index, latitude=latitude, longitude=longitude, geohash5=geohash5, geohash6=geohash6) session.add(new_address) session.commit() # set default address index if count == 0: new_default_address = UserDefaultAddress(user_id=guid, address_idx=index) session.add(new_default_address) else: record = session.query(UserDefaultAddress).filter( UserDefaultAddress.user_id == guid).one() record.address_idx = index session.commit() ret['response'] = Response.SUCCESS self.set_status(Response.RESULT_OK) print guid, 'add address successfully!' gu_name = addressdao.get_gu_name(address) mix.people_set(guid, {'address': address, 'gu': gu_name}) mix.track(guid, 'add address', { 'time': dt.datetime.now(), 'address': address }) mongo_logger.debug('add address', extra={ 'log_time': dt.datetime.now(), 'user_id': guid, 'address': address, 'size': size, 'kind': kind }) except Exception, e: session.rollback() add_err_message_to_response(ret, err_dict['err_mysql']) self.set_status(Response.RESULT_SERVERERROR) print_err_detail(e) mongo_logger.error('failed to add address', extra={ 'log_time': dt.datetime.now(), 'user_id': guid, 'address': address, 'size': size, 'kind': kind, 'err': str(e) })