예제 #1
0
    def test_update_image(self):
        response = self.post("/admin/api/v1/statuses/foo",
            data={"image": "cross-circle"})
        self.assertEquals(response.status_code, 200)

        status = Status.get(self.status.key())
        self.assertEquals(status.image, "fugue/cross-circle.png")
예제 #2
0
파일: xmpp.py 프로젝트: feczo/splashmon
    def post(self):
        """Notify subscribers that a service changed status."""

        address = self.request.get('address')
        service = Service.get(self.request.get('service'))
        oldstatus = Status.get(self.request.get('oldstatus'))
        number = self.request.get('number')

        logging.info("Service: %s" % service)
        logging.info("Service name: %s" % service.name)

        msg = "%s changed state from %s to %s (%s)" % (
                service.name, oldstatus.name,
                service.current_event().status.name,
                service.current_event().message)

        user = Subscription.get_by_email(address)
        if user.status == "available" or not number:
        	status_code = xmpp.send_message(address, msg)
    		chat_message_sent = (status_code == xmpp.NO_ERROR)
		logging.info("Notified: %s\nmessage: %s code: %d" % (address, msg, status_code))
        elif user.status == "unavailable" and number:
		sms = smsgw(to = number, msg = msg)
		sms.send()
		logging.info("Offline SMS: %s\nmessage: %s" % (number, msg))
예제 #3
0
    def test_update_default(self):
        response = self.post("/admin/api/v1/statuses/foo",
            data={"default": "true"})
        self.assertEquals(response.status_code, 200)

        status = Status.get(self.status.key())
        self.assertTrue(status.default)
    def test_delete_success(self):
        response = self.delete("/admin/api/v1/statuses/foo")
        self.assertEquals(response.status_code, 200)
        self.assertEquals(response.headers["Content-Type"], "application/json")

        status = Status.get(self.status.key())
        self.assertEquals(status, None)
예제 #5
0
    def test_delete_success(self):
        response = self.delete("/admin/api/v1/statuses/foo")
        self.assertEquals(response.status_code, 200)
        self.assertEquals(response.headers["Content-Type"], "application/json")

        status = Status.get(self.status.key())
        self.assertEquals(status, None)
예제 #6
0
    def post(self):
        data = json_decode(self.request.body)
        schema = {
            # TODO get customer_id from session
            # and set like an additional(not required) field
            # if auth user is booking a room for third-part person
            'customer_id': {
                'type': 'integer',
                'required': True},
            'room_id': {
                'type': 'integer',
                'required': True},
            'from_date': {
                'type': 'string',
                'required': True},
            'to_date': {
                'type': 'string',
                'required': True},
        }
        if not self.valid_data(schema, data):
            return

        customer_id = data['customer_id']
        room_id = data['room_id']
        from_date = parse_date(data['from_date'])
        to_date = parse_date(data['to_date'])

        room = Room.get_available_between_dates_by_id(room_id, from_date.isoformat(), to_date.isoformat())

        if not room:
            self.set_response(
                content={'message': ('The room with id {} is not available '
                                     'for booking from {} to {}').format(room_id, from_date, to_date)},
                status=404)
            return

        # TODO add payment system
        # change on next step with payment system
        status = Status.get(name='reserved')

        # TODO get customer_id from session
        try:
            customer = Customer.get(id=customer_id)
        except Customer.DoesNotExist:
            self.set_response(
                {'message': 'Customer with id {} not found'.format(customer_id)},
                status=400)
            return

        booking = Booking.create(
            room=room,
            customer=customer,
            from_date=from_date,
            to_date=to_date,
            status=status)
        self.set_response(
            content=dict(booking=model_to_dict(booking)),
            status=201,
            headers={'Location': self.reverse_url('booking', booking.id)}
        )
예제 #7
0
    def test_update_name(self):
        response = self.post("/admin/api/v1/statuses/foo",
            data={"name": "Foobar"})
        self.assertEquals(response.status_code, 200)
        self.assertEquals(response.headers["Content-Type"], "application/json")

        status = Status.get(self.status.key())
        self.assertEquals(status.name, "Foobar")
예제 #8
0
    def test_update_description(self):
        response = self.post("/admin/api/v1/statuses/foo",
            data={"description": "blah"})
        self.assertEquals(response.status_code, 200)
        self.assertEquals(response.headers["Content-Type"], "application/json")

        status = Status.get(self.status.key())
        self.assertEquals(status.description, "blah")
예제 #9
0
 def get(self, key):
     try:
         status = Status.get(key)
         user = users.get_current_user()
         if status.user == user:
             delete_status(status)
     except Exception:
         raise
     self.redirect('/')
예제 #10
0
 def get(self, key):
     try:
         status = Status.get(key)
         user = users.get_current_user()
         if status.user == user:
             self.render_response('status.html', { 'status': status })
         else:
             self.redirect('/')
     except Exception:
         raise
예제 #11
0
    def test_delete_success(self):
        response = self.delete("/admin/api/v1/statuses/foo")
        self.assertEquals(response.status_code, 200)
        self.assertEquals(response.headers["Content-Type"], "application/json")

        data = json.loads(response.content)

        self.assertEquals(data['url'], 'http://localhost:80/admin/api/v1/statuses/foo')

        status = Status.get(self.status.key())
        self.assertEquals(status, None)