Merge with master again.

This commit is contained in:
Nicholas Staples
2016-03-02 13:53:05 +00:00
18 changed files with 276 additions and 109 deletions

View File

@@ -1,6 +1,5 @@
from notifications_python_client.base import BaseAPIClient
from app.notify_client.models import User
from app.notify_client.models import InvitedUser
class InviteApiClient(BaseAPIClient):
@@ -22,9 +21,23 @@ class InviteApiClient(BaseAPIClient):
'permissions': permissions
}
resp = self.post(url='/service/{}/invite'.format(service_id), data=data)
return resp['data']
return InvitedUser(**resp['data'])
def get_invites_for_service(self, service_id):
endpoint = '/service/{}/invite'.format(service_id)
resp = self.get(endpoint)
return [User(data) for data in resp['data']]
invites = resp['data']
invited_users = _get_invited_users(invites)
return invited_users
def accept_invite(self, token):
resp = self.get(url='/invite/{}'.format(token))
return InvitedUser(**resp['data'])
def _get_invited_users(invites):
invited_users = []
for invite in invites:
invited_user = InvitedUser(**invite)
invited_users.append(invited_user)
return invited_users

View File

@@ -114,3 +114,18 @@ class User(UserMixin):
def set_password(self, pwd):
self._password = pwd
class InvitedUser(object):
def __init__(self, id, service, from_user, email_address, permissions, status, created_at):
self.id = id
self.service = str(service)
self.from_user = from_user
self.email_address = email_address
self.permissions = permissions.split(',')
self.status = status
self.created_at = created_at
def has_permissions(self, permission):
return permission in self.permissions

View File

@@ -1,3 +1,5 @@
import json
from notifications_python_client.notifications import BaseAPIClient
from notifications_python_client.errors import HTTPError
@@ -85,3 +87,8 @@ class UserApiClient(BaseAPIClient):
endpoint = '/service/{}/users'.format(service_id)
resp = self.get(endpoint)
return [User(data) for data in resp['data']]
def add_user_to_service(self, service_id, user_id):
endpoint = '/service/{}/users/{}'.format(service_id, user_id)
resp = self.post(endpoint, data={})
return User(resp['data'], max_failed_login_count=self.max_failed_login_count)