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 details)
File details
Details for the file interactor-0.1.2.tar.gz
.
File metadata
- Download URL: interactor-0.1.2.tar.gz
- Upload date:
- Size: 2.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9bdb1910b912b66a977d039c745c250acde047541abfabee04925cc8284208e7 |
|
MD5 | ed08c67911100d18f73eec0c095dcf02 |
|
BLAKE2b-256 | b7bd9682c29bedd8002e42ab5b90a1c245951ffe0185bd83ca501b4036960b5c |