Exemplo n.º 1
0
    def post(self):
        self.set_header("Content-Type", "application/json")
        self.set_header('Access-Control-Allow-Origin', '*')

        master_id       = self.get_argument('master_id', '')
        remove_status   = self.get_argument('remove_status', 2)

        print master_id, remove_status

        # 0 - remove completely, 2 - cannot get works, but still showed up in list

        remove_status = int(remove_status)
        if remove_status != 0 and remove_status != 2:
            remove_status = 2

        ret = {}

        try:
            session = Session()
            row = session.query(Master).filter(Master.id == master_id).one()
            row.active = remove_status # about to remove, removig but not all work are reassigned to another homemaster yet

            session.commit()

            ret['response'] = Response.SUCCESS
            self.set_status(Response.RESULT_OK)

        except Exception, e:
            session.rollback()
            print_err_detail(e)
            self.set_status(Response.RESULT_SERVERERROR)
            add_err_message_to_response(ret, err_dict['err_mysql'])
    def get(self):
        ret = {}

        user_id         = self.get_argument('user_id', '')
        address_index   = self.get_argument('address_index', '')

        self.set_header("Content-Type", "application/json")
        self.set_header('Access-Control-Allow-Origin', '*')

        try:
            userdao = UserDAO()
            address, size, kind, rooms, baths = userdao.get_user_address_full_detail_by_index(user_id, address_index)

            address_info = {}
            address_info['rooms'] = rooms
            address_info['size'] = size
            address_info['kind'] = kind
            address_info['baths'] = baths
            address_info['address'] = address

            ret['response'] = address_info
            self.set_status(Response.RESULT_OK)

        except Exception, e:
            add_err_message_to_response(ret, err_dict['err_mysql'])
            self.set_status(Response.RESULT_SERVERERROR)
            print_err_detail(e)
    def post(self):
        self.set_header("Content-Type", "application/json")

        ret = {}

        master_id       = self.get_argument('master_id', '')
        pwd             = self.get_argument('pw', '')

        try:
            session = Session()

            try:
                row = session.query(Master).filter(Master.id == master_id).one()

            except NoResultFound, e:
                session.close()
                self.set_status(Response.RESULT_OK)
                add_err_message_to_response(ret, err_dict['err_no_record'])
                return

            except MultipleResultsFound, e:
                session.close()
                self.set_status(Response.RESULT_OK)
                add_err_message_to_response(ret, err_dict['err_multiple_record'])
                return
Exemplo n.º 4
0
    def post(self):
        self.set_header("Content-Type", "application/json")
        self.set_header('Access-Control-Allow-Origin', '*')

        cleaning_id  = self.get_argument('cleaning_id', '')
        contact_cnt  = self.get_argument('contact_cnt', '1회')
        contact_memo = self.get_argument('contact_memo', '')

        ret = {}

        mongo_logger = get_mongo_logger()

        try:
            doc = self.db.find_one_and_update({'cleaning_id' : cleaning_id},
                                            {'$set' : {'contact_cnt' : contact_cnt,
                                            'contact_memo' : contact_memo}},
                                            return_document = ReturnDocument.AFTER)


            ret['response'] = Response.SUCCESS
            self.set_status(Response.RESULT_OK)

            mongo_logger.debug('web update web cleaning status',
                                            extra = {'cleaning_id' : cleaning_id,
                                                    'contact_cnt' : contact_cnt,
                                                    'contact_memo' : contact_memo})

        except Exception, e:
            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 web update web cleaning status',
                                                  extra = {'cleaning_id' : cleaning_id,
                                                            'contact_cnt' : contact_cnt,
                                                            'contact_memo' : contact_memo})
    def post(self):
        self.set_header("Content-Type", "application/json")
        self.set_header('Access-Control-Allow-Origin', '*')

        user_id = self.get_argument('user_id', '')
        master_id = self.get_argument('master_id', '')

        ret = {}

        try:
            session = Session()
            reject_relation = RejectRelation(user_id=user_id,
                                             master_id=master_id)

            session.add(reject_relation)
            session.commit()

            ret['response'] = Response.SUCCESS
            self.set_status(Response.RESULT_OK)

        except Exception, e:
            session.rollback()

            print_err_detail(e)
            self.set_status(Response.RESULT_SERVERERROR)
            add_err_message_to_response(ret, err_dict['err_mysql'])
Exemplo n.º 6
0
    def post(self):
        self.set_header("Content-Type", "application/json")

        ret = {}

        uid = self.get_argument('user_id', '')
        mid = self.get_argument('master_id', '')
        memo = self.get_argument('memo', '')

        mongo_logger = get_mongo_logger()

        try:
            session = Session()

            memo = MasterMemo(user_id=uid,
                              master_id=mid,
                              memo=memo,
                              datetime=dt.datetime.now())
            session.add(memo)
            session.commit()

            ret['response'] = Response.SUCCESS
            self.set_status(Response.RESULT_OK)

            print mid, 'posted memo successfully'
            mongo_logger.debug('%s posted memo' % mid)

        except Exception, e:
            session.rollback()

            print_err_detail(e)
            self.set_status(Response.RESULT_SERVERERROR)
            add_err_message_to_response(ret, err_dict['err_mysql'])
            mongo_logger.error('%s failed to posted memo' % mid,
                               extra={'err': str(e)})
    def get(self):
        self.set_header("Content-Type", "application/json")
        self.set_header('Access-Control-Allow-Origin', '*')

        user_id = self.get_argument('user_id', '')

        ret = {}

        try:
            session = Session()
            result = session.query(RejectRelation, Master) \
                    .join(Master, RejectRelation.master_id == Master.id) \
                    .filter(RejectRelation.user_id == user_id) \
                    .group_by(RejectRelation.master_id) \
                    .order_by(Master.name) \
                    .all()

            master_names = []

            for row in result:
                master_names.append(row.Master.name)

            ret['response'] = master_names

            self.set_status(Response.RESULT_OK)

        except Exception, e:
            session.rollback()

            print_err_detail(e)
            self.set_status(Response.RESULT_SERVERERROR)
            add_err_message_to_response(ret, err_dict['err_mysql'])
    def get(self):
        ret = {}

        try:
            self.set_header("Content-Type", "application/json")
            self.set_header('Access-Control-Allow-Origin', '*')

            size = self.get_argument('size', '')
            _type = self.get_argument('type', '')

            size = int(size)
            _type = int(_type)

            time_price_list = get_basic_time_price(_type, size)
            window_price, window_time = get_window_time_price(_type, size)

            ret['response'] = {
                'basic': time_price_list,
                'window_price': window_price,
                'window_time': window_time
            }
            self.set_status(Response.RESULT_OK)

        except Exception, e:
            print_err_detail(e)
            self.set_status(Response.RESULT_SERVERERROR)
            add_err_message_to_response(ret, err_dict['err_mysql'])
    def post(self):
        self.set_header("Content-Type", "application/json")

        manager_id = self.get_argument('manager_id', '')
        name = self.get_argument('name', '')
        phone = self.get_argument('phone', '')

        ret = {}

        try:
            session = Session()

            row = session.query(Manager).filter(
                Manager.id == manager_id).scalar()
            if row == None:  # no entry
                session.close()
                add_err_message_to_response(ret,
                                            err_dict['err_no_entry_to_cancel'])
                self.write(json.dumps(ret))
                return

            row.name = name
            row.phone = phone

            session.commit()

            ret['response'] = Response.SUCCESS
            self.set_status(Response.RESULT_OK)

        except Exception, e:
            session.rollback()

            print_err_detail(e)
            self.set_status(Response.RESULT_SERVERERROR)
            add_err_message_to_response(ret, err_dict['err_mysql'])
    def post(self):
        self.set_header("Content-Type", "application/json")
        self.set_header('Access-Control-Allow-Origin', '*')

        user_id = self.get_argument('user_id', '')

        ret = {}

        try:
            session = Session()

            try:
                row = session.query(User).filter(User.id == user_id).one()

            except NoResultFound, e:
                session.close()
                self.set_status(Response.RESULT_OK)
                add_err_message_to_response(ret, err_dict['err_salt_no_match'])
                return

            except NoResultFound, e:
                session.close()
                self.set_status(Response.RESULT_OK)
                add_err_message_to_response(ret, err_dict['err_multiple_record'])
                return
Exemplo n.º 11
0
    def get(self):
        self.set_header("Content-Type", "application/json")

        ret = {}

        try:
            session = Session()

            unmatched = []

            result = session.query(Booking).filter(
                Booking.master_id == None).order_by(Booking.id,
                                                    Booking.start_time).all()

            for row in result:
                unmatched.append(row.id)

            ret['response'] = unmatched
            self.set_status(Response.RESULT_OK)

        except Exception, e:
            session.rollback()

            print_err_detail(e)
            self.set_status(Response.RESULT_SERVERERROR)
            add_err_message_to_response(ret, err_dict['err_mysql'])
    def post(self):
        self.set_header("Content-Type", "application/json")
        self.set_header('Access-Control-Allow-Origin', '*')

        master_id = self.get_argument('master_id', '')
        prize     = self.get_argument('prize', 0)
        prize_description = self.get_argument('prize_description', '')

        prize = int(prize)

        ret = {}

        mongo_logger = get_mongo_logger()

        try:
            session = Session()
            master_prize = MasterPrize(master_id = master_id, prize = prize, prize_description = prize_description, earn_date = dt.datetime.now())
            session.add(master_prize)

            session.commit()

            mongo_logger.debug('add point', extra = {'master_id' : master_id, 'prize' : prize, 'prize_description' : prize_description})

            ret['response'] = Response.SUCCESS
            self.set_status(Response.RESULT_OK)

        except Exception, e:
            session.rollback()

            print_err_detail(e)
            self.set_status(Response.RESULT_SERVERERROR)
            add_err_message_to_response(ret, err_dict['err_mysql'])
            mongo_logger.error('add point error', extra = {'master_id' : master_id, 'prize' : prize, 'prize_description' : prize_description})
Exemplo n.º 13
0
    def get(self):
        self.set_header("Content-Type", "application/json")

        ret = {}

        try:
            session = Session()

            descriptions = []

            result = session.query(MasterPointDescription) \
                        .filter(MasterPointDescription.index >= 10) \
                        .all()

            for row in result:
                descriptions.append({'index' : row.index, 'description' : row.description})

            ret['response'] = descriptions
            self.set_status(Response.RESULT_OK)
            
        except Exception, e:
            session.rollback()

            print_err_detail(e)
            self.set_status(Response.RESULT_SERVERERROR)
            add_err_message_to_response(ret, err_dict['err_mysql'])
Exemplo n.º 14
0
    def post(self):
        self.set_header("Content-Type", "application/json")

        name = self.get_argument('name', '')
        phone = self.get_argument('phone', '')

        ret = {}

        try:
            session = Session()
            manager_id = str(uuid.uuid4())

            new_manager = Manager(id=manager_id, name=name, phone=phone)

            session.add(new_manager)
            session.commit()

            ret['response'] = Response.SUCCESS
            self.set_status(Response.RESULT_OK)

            print 'manager named', name, 'was successfully added..'

        except Exception, e:
            session.rollback()

            print_err_detail(e)
            self.set_status(Response.RESULT_SERVERERROR)
            add_err_message_to_response(ret, err_dict['err_mysql'])
Exemplo n.º 15
0
    def post(self):
        self.set_header("Content-Type", "application/json")
        self.set_header('Access-Control-Allow-Origin', '*')

        user_id = self.get_argument('user_id', '')
        memo = self.get_argument('memo', '')

        print 'user_id : ' + user_id
        print 'memo : ' + memo

        ret = {}

        try:
            session = Session()

            admin_memo = AdminMemo(user_id=user_id,
                                   memo=memo,
                                   register_time=dt.datetime.now())
            session.add(admin_memo)
            session.commit()

            ret['response'] = Response.SUCCESS
            self.set_status(Response.RESULT_OK)

        except Exception, e:
            print_err_detail(e)
            self.set_status(Response.RESULT_SERVERERROR)
            add_err_message_to_response(ret, err_dict['err_mysql'])
Exemplo n.º 16
0
    def get(self):
        self.set_header("Content-Type", "application/json")

        ret = {}

        try:
            session = Session()
            userdao = UserDAO()
            bookingdao = BookingDAO()

            # get last saturday
            now = dt.datetime.now()
            if week != 0:
                offset = ((now.weekday() - FRIDAY) % 7) + (week - 1) * 7
                now -= dt.timedelta(days=offset)

            offset = (now.weekday() - SATURDAY) % 7
            last_saturday = (now - dt.timedelta(days=offset)).date()
            now = now.date()

            # rating
            #

            ret['response'] = Response.SUCCESS
            self.set_status(Response.RESULT_OK)

        except Exception, e:
            session.rollback()

            print_err_detail(e)
            self.set_status(Response.RESULT_SERVERERROR)
            add_err_message_to_response(ret, err_dict['err_mysql'])
    def post(self):
        self.set_header("Content-Type", "application/json")
        self.set_header('Access-Control-Allow-Origin', '*')

        cleaning_id = self.get_argument('cleaning_id', '')
        booking_id = self.get_argument('booking_id', '')

        mongo_logger = get_mongo_logger()

        ret = {}
        try:
            doc = self.db.find_one_and_update({'cleaning_id': cleaning_id}, {
                '$push': {
                    'booking_ids': booking_id
                },
                '$inc': {
                    'count': 1
                }
            })

            ret['response'] = Response.SUCCESS
            self.set_status(Response.RESULT_OK)

            mongo_logger.debug('web process booking')

        except Exception, e:
            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 web process booking')
    def post(self):
        self.set_header("Content-Type", "application/json")
        self.set_header('Access-Control-Allow-Origin', '*')

        ret = {}

        booking_id = self.get_argument('booking_id', '')
        cleaning_status = self.get_argument('cleaning_status', '')
        change_all = self.get_argument('change_all', 'false')

        change_all = False if (change_all.strip() == 'false') else True

        try:
            session = Session()
            payment_status = int(cleaning_status)
            bookingrow = session.query(Booking)\
                                .filter(Booking.id == booking_id)\
                                .first()
            org_start = bookingrow.start_time
            bookingrow.cleaning_status = payment_status
            if change_all:
                booking_data = session.query(Booking)\
                                      .filter((Booking.request_id == bookingrow.request_id)
                                      &(Booking.start_time > org_start))\
                                      .update({'cleaning_status':cleaning_status})
            session.commit()

            ret['response'] = Response.SUCCESS
            self.set_status(Response.RESULT_OK)
        except Exception, e:
            session.rollback()
            print_err_detail(e)
            self.set_status(Response.RESULT_SERVERERROR)
            add_err_message_to_response(ret, err_dict['err_mysql'])
    def post(self):
        self.set_header("Content-Type", "application/json")
        self.set_header('Access-Control-Allow-Origin', '*')

        title = self.get_argument('title', '')
        content = self.get_argument('content', '')

        print 'title : ' + title
        print 'content : ' + content

        ret = {}

        try:
            session = Session()

            master_notice = MasterNotice(title=title,
                                         content=content,
                                         reg_time=dt.datetime.now())

            session.add(master_notice)
            session.commit()

            notify_all_active_homemaster()

            ret['response'] = Response.SUCCESS
            self.set_status(Response.RESULT_OK)

        except Exception, e:
            session.rollback()

            print_err_detail(e)
            self.set_status(Response.RESULT_SERVERERROR)
            add_err_message_to_response(ret, err_dict['err_mysql'])
Exemplo n.º 20
0
    def post(self):
        self.set_header("Content-Type", "application/json")
        self.set_header('Access-Control-Allow-Origin', '*')

        ret = {}

        account_no = self.get_argument('account_no', '')
        bank_name = self.get_argument('bank_name', '')

        account_no = account_no.replace('-', '')

        bank_dict = BC.bank_dict
        bank_code = bank_dict[bank_name]

        try:
            status, message = salary_helper.check_account(
                account_no, bank_code)

            ret['response'] = {'status': status, 'message': message}
            self.set_status(Response.RESULT_OK)

        except Exception, e:
            print_err_detail(e)
            self.set_status(Response.RESULT_SERVERERROR)
            add_err_message_to_response(ret, err_dict['err_mysql'])
    def post(self):
        self.set_header("Content-Type", "application/json")
        self.set_header('Access-Control-Allow-Origin', '*')

        booking_id  = self.get_argument('booking_id', '')
        div_no      = self.get_argument('div_no', '')

        ret = {}
        mongo_logger = get_mongo_logger()

        try:
            session = Session()

            order_11st = OrderID11st(booking_id = booking_id, div_no = div_no,
                                    datetime = dt.datetime.now())
            session.add(order_11st)
            session.commit()

            ret['response'] = Response.SUCCESS
            mongo_logger.debug('link hm 11st', extra = {'div_no' : div_no, 'booking_id' : booking_id})

            self.set_status(Response.RESULT_OK)

        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 tolink hm 11st',
                        extra = {'div_no' : div_no, 'booking_id' : booking_id})
    def post(self):
        self.set_header("Content-Type", "application/json")

        memo_id = self.get_argument('memo_id', 0)
        response = self.get_argument('response', '')

        memo_id = int(memo_id)

        ret = {}

        try:
            session = Session()

            try:
                row = session.query(UserMemo).filter(
                    UserMemo.id == memo_id).one()

            except NoResultFound, e:
                session.close()
                self.set_status(Response.RESULT_OK)
                add_err_message_to_response(ret,
                                            err_dict['err_login_no_match'])
                return

            except MultipleResultsFound, e:
                session.close()
                self.set_status(Response.RESULT_OK)
                add_err_message_to_response(ret,
                                            err_dict['err_multiple_record'])
                return
    def post(self):
        self.set_header("Content-Type", "application/json")

        ret = {}

        email = self.get_argument('email', '')

        mongo_logger = get_mongo_logger()
        mix = get_mixpanel()

        try:
            session = Session()

            try:
                row = session.query(User).filter(User.email == email,
                                                 User.active == 1).one()
            except NoResultFound, e:
                session.close()
                self.set_status(Response.RESULT_OK)
                add_err_message_to_response(ret,
                                            err_dict['err_login_no_record'])
                mongo_logger.error('%s failed to logined' % email,
                                   extra={'err': str(e)})
                return

            except MultipleResultsFound, e:
                session.close()
                self.set_status(Response.RESULT_OK)
                add_err_message_to_response(ret,
                                            err_dict['err_multiple_record'])
                mongo_logger.error('%s failed to logined' % email,
                                   extra={'err': str(e)})
                return
Exemplo n.º 24
0
    def post(self):
        self.set_header("Content-Type", "application/json")
        self.set_header('Access-Control-Allow-Origin', '*')

        booking_id = self.get_argument('booking_id', '')
        end_time = self.get_argument('end_time', '')

        ret = {}

        try:
            session = Session()
            userdao = UserDAO()

            try:
                row = session.query(Booking).filter(
                    Booking.id == booking_id).one()
            except NoResultFound, e:
                session.close()
                self.set_status(Response.RESULT_OK)
                add_err_message_to_response(ret, err_dict['err_no_record'])
                return

            except MultipleResultsFound, e:
                session.close()
                self.set_status(Response.RESULT_OK)
                add_err_message_to_response(ret,
                                            err_dict['err_multiple_record'])
                return
Exemplo n.º 25
0
    def get(self):
        self.set_header("Content-Type", "application/json")
        self.set_header('Access-Control-Allow-Origin', '*')

        user_id = self.get_argument('user_id', '')

        ret = {}

        try:
            addresses = []

            session = Session()
            userdao = UserDAO()

            addresses = userdao.get_all_user_addresses(user_id)
            name = userdao.get_user_name(user_id)
            default_index = userdao.get_user_default_address_index(user_id)

            ret['response'] = {
                'name': name,
                'addresses': addresses,
                'user_id': user_id,
                'default_index': default_index
            }
            self.set_status(Response.RESULT_OK)

        except Exception, e:
            session.rollback()
            print_err_detail(e)
            self.set_status(Response.RESULT_SERVERERROR)
            add_err_message_to_response(ret, err_dict['err_mysql'])
Exemplo n.º 26
0
    def get(self):
        self.set_header("Content-Type", "application/json")
        self.set_header('Access-Control-Allow-Origin', '*')

        master_id = self.get_argument('master_id', '')
        month = self.get_argument('month', 0)

        print master_id, month
        month = int(month)
        if month == 0:
            month = dt.datetime.now().month

        ret = {}

        try:
            session = Session()

            row = session.query(func.count(MasterBookingModifyRequest)) \
                        .filter(MasterBookingModifyRequest.master_id == master_id) \
                        .filter(func.month(MasterBookingModifyRequest.request_time) == month ) \
                        .one()

            count = row[0]

            ret['response'] = count
            self.set_status(Response.RESULT_OK)

        except Exception, e:
            session.rollback()
            print_err_detail(e)
            self.set_status(Response.RESULT_SERVERERROR)
            add_err_message_to_response(ret, err_dict['err_mysql'])
    def post(self):
        self.set_header("Content-Type", "application/json")
        self.set_header('Access-Control-Allow-Origin', '*')

        booking_id      = self.get_argument('booking_id', '')
        price           = self.get_argument('price', '')

        # price int
        price = int(price)

        ret = {}

        try:
            session = Session()

            try:
                row = session.query(Booking, User) \
                        .join(User, Booking.user_id == User.id) \
                        .filter(Booking.id == booking_id) \
                        .one()

            except NoResultFound, e:
                session.close()
                self.set_status(Response.RESULT_OK)
                add_err_message_to_response(ret, err_dict['err_login_no_record'])
                return

            except MultipleResultsFound, e:
                session.close()
                self.set_status(Response.RESULT_OK)
                add_err_message_to_response(ret, err_dict['err_multiple_record'])
                return
    def get(self):
        self.set_header("Content-Type", "application/json")

        ret = {}

        try:
            mix = Mixpanel(MX_KEY, MX_SECRET)
            params = {}
            params[
                'selector'] = 'properties["$predict_grade"]=="A"orproperties["$predict_grade"]=="B"'

            prediction_group = mix.request(['engage'], params)

            users = []

            for item in prediction_group['results']:
                print item['$properties']['$name'], item['$properties'][
                    '$phone']

                user_info = {}
                user_info['name'] = item['$properties']['$name']
                user_info['phone'] = item['$properties']['$phone']

                users.append(user_info)

            ret['response'] = users
            self.set_status(Response.RESULT_OK)

        except Exception, e:
            print_err_detail(e)
            self.set_status(Response.RESULT_SERVERERROR)
            add_err_message_to_response(ret, err_dict['err_mysql'])
    def post(self):
        self.set_header("Content-Type", "application/json")
        self.set_header('Access-Control-Allow-Origin', '*')

        ret = {}

        user_id = self.get_argument('user_id', '')
        new_pwd = self.get_argument('new_pwd', 'hm123')

        try:
            userdao = UserDAO()
            session = Session()

            user_row = session.query(User).filter(User.id == user_id).one()

            salt = userdao.get_user_salt_by_id(user_id)
            hash_obj = hashlib.sha256(salt + new_pwd)

            user_row.password = hash_obj.hexdigest()
            session.commit()

            ret['response'] = Response.SUCCESS
            self.set_status(Response.RESULT_OK)

        except Exception, e:
            print_err_detail(e)
            self.set_status(Response.RESULT_SERVERERROR)
            add_err_message_to_response(ret, err_dict['err_mysql'])
Exemplo n.º 30
0
    def get(self, **params):
        self.set_header("Content-Type", "application/json")

        user_id = self.get_argument('id', '')
        mode    = params['mode']

        ret = {}

        mongo_logger = get_mongo_logger()
        mix = get_mixpanel()

        try:
            session = Session()

            bookings = self.get_mybookings(session, user_id, mode)
            ret['response'] = bookings
            self.set_status(Response.RESULT_OK)

            mix.track(user_id, 'got booking info', {'time' : dt.datetime.now(), 'mode' : mode})
            mongo_logger.debug('got booking info', extra = {'uid' : user_id})

            print user_id, 'successfully retrieved upcomming events...', dt.datetime.now()

        except Exception, e:
            session.rollback()

            print_err_detail(e)
            self.set_status(Response.RESULT_SERVERERROR)
            add_err_message_to_response(ret, err_dict['err_mysql'])