34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
|
|
from flask import current_app
|
||
|
|
import requests
|
||
|
|
|
||
|
|
|
||
|
|
class GoogleUser:
|
||
|
|
def __init__(self, id, email, first_name, last_name, full_name, phone=None):
|
||
|
|
self.id = id
|
||
|
|
self.email = email
|
||
|
|
self.first_name = first_name
|
||
|
|
self.last_name = last_name
|
||
|
|
self.full_name = full_name
|
||
|
|
self.phone_num = phone
|
||
|
|
|
||
|
|
|
||
|
|
def get_users(auth_token):
|
||
|
|
ignore_emails = ['noreply@quarterhomes.com']
|
||
|
|
response = requests.get(
|
||
|
|
'https://admin.googleapis.com/admin/directory/v1/users?'
|
||
|
|
'domain=quarterhomes.com&'
|
||
|
|
'orderBy=familyName', headers={'Authorization': f'Bearer {auth_token}'})
|
||
|
|
|
||
|
|
if response.status_code != 200:
|
||
|
|
raise Exception('Call to google API failed...')
|
||
|
|
|
||
|
|
users = response.json().get('users')
|
||
|
|
return [GoogleUser(
|
||
|
|
user['id'],
|
||
|
|
user['primaryEmail'],
|
||
|
|
user['name']['givenName'],
|
||
|
|
user['name']['familyName'],
|
||
|
|
user['name']['fullName'],
|
||
|
|
user.get('recoveryPhone')
|
||
|
|
) for user in users if not user.get('primaryEmail') in ignore_emails]
|