def create(passphrase): if Message.get_by_passphrase(passphrase): raise ModelValidationError('Jot already exists.') message = Message({ 'passphrase': passphrase, 'message': R.json.get('message'), 'pin': R.json.get('pin'), 'expires_on': R.json.get('expires_on'), 'send_read_receipt': R.json.get('send_read_receipt') }) message.save() return {"edit_key": message.edit_key}
def update(passphrase): # TODO: move this into a header field. edit_key = R.args.get('edit_key') message = Message({ 'passphrase': passphrase, 'message': R.json.get('message'), 'pin': R.json.get('pin'), 'expires_on': R.json.get('expires_on'), 'send_read_receipt': R.json.get('send_read_receipt'), 'edit_key': edit_key }) message.save(overwrite=True) return {"edit_key": message.edit_key}
def test_delete(self): now = dt.datetime.utcnow() delta = dt.timedelta(days=1) expires_on = now + delta Message({ 'passphrase': 'vodka', 'message': "don't go on the patio!", 'pin': '3141', 'expires_on': expires_on, 'send_read_receipt': False }).save() ret = Message.delete_by_passphrase('vodka') eq_(ret, 1)
def get(passphrase): log.debug("recieved args: %s to /get", R.args) message = Message.get_by_passphrase(passphrase) # TODO: Maybe store pin in an auth header? research me. pin = R.args.get('pin') if not message: return if not message.get('pin'): # The message doesn't require a pin number, we can return. return message.to_primitive() if not pin: raise ModelValidationError({"pin": "This Jot requires a pin number."}) if pin != message.get('pin'): raise ModelValidationError({"pin": "Invalid pin number."}) return message.to_primitive()
def test_get(self): now = dt.datetime.utcnow() delta = dt.timedelta(days=1) expires_on = now + delta Message({ 'passphrase': 'bourbon', 'message': "we we're super rad", 'pin': '0000', 'expires_on': expires_on, 'send_read_receipt': False }).save() message = Message.get_by_passphrase('bourbon') ok_(isinstance(message, Message)) eq_(message.passphrase, 'bourbon')
def delete(passphrase): # TODO: move this into a header field edit_key = R.args.get('edit_key') Message.delete_by_passphrase(passphrase, edit_key)