Interactor provides a common interface for performing complex user interactions.
Project description
# interactor
Interactor provides a common interface for performing complex user interactions. It's inspired by [collectiveidea's interactor gem](https://github.com/collectiveidea/interactor).
### An Example Interactor
```python
from interactor import Interactor
class AuthenticateUser(Interacotr):
def run(self):
user = User.authenticate(self.context.email, self.context.password)
if user:
self.context.user = user
self.context.token = user.secret_token
else:
raise RuntimeError('Fail to authenticate user')
```
### Usage
```python
from somewhere import AuthenticateUser
ctx = AuthenticateUser.call(email='test@gmail.com', password='secret')
print ctx.user
print ctx.token
```
Interactor provides a common interface for performing complex user interactions. It's inspired by [collectiveidea's interactor gem](https://github.com/collectiveidea/interactor).
### An Example Interactor
```python
from interactor import Interactor
class AuthenticateUser(Interacotr):
def run(self):
user = User.authenticate(self.context.email, self.context.password)
if user:
self.context.user = user
self.context.token = user.secret_token
else:
raise RuntimeError('Fail to authenticate user')
```
### Usage
```python
from somewhere import AuthenticateUser
ctx = AuthenticateUser.call(email='test@gmail.com', password='secret')
print ctx.user
print ctx.token
```
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
interactor-0.1.2.tar.gz
(2.0 kB
view hashes)