#!/usr/bin/env python3

import configparser
import json
from pprint import pprint
from zoomus import ZoomClient
import psycopg2

config = configparser.ConfigParser()
config.read('zoom.ini')

client = ZoomClient(config['api']['key'], config['api']['secret'])

db_conn = psycopg2.connect(dbname=config['db']['name'], user=config['db']['user'], password=config['db']['passwd'], host="127.0.0.1")

resp = client.user.list(page_size = 300)
resp.raise_for_status()

user_list = json.loads(resp.content)
assert user_list['page_count'] == 1
# pprint(user_list)

with db_conn.cursor() as db:
    for user in user_list['users']:
        id = user['id']
        db.execute("SELECT * FROM zoom_users WHERE user_id=%s", (id,))
        if db.fetchone():
            print(f"User {id}: Already present")
        else:
            print(f"User {id}: Creating")
            db.execute("INSERT INTO zoom_users(user_id, email, full_name) VALUES (%s,%s,%s)",
                       (id, user['email'], user['first_name'] + ' ' + user['last_name']))

db_conn.commit()