from flask import Flask, jsonify
from google.apps import meet_v2
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
import os.path

app = Flask(__name__)


# Define the required scopes for the Meet API
SCOPES = ['https://www.googleapis.com/auth/meetings.space.created']



def createToken():
    
    if os.path.exists('token.json'):
        #print("Jdu nacist token")
        creds = Credentials.from_authorized_user_file('token.json', SCOPES)
    
    if creds and creds.expired and creds.refresh_token:
        # print("Jdu refreshnout token")
        creds.refresh(Request())
        
    return creds

def createMeet(creds):
    client = meet_v2.SpacesServiceClient(credentials=creds)
    request = meet_v2.CreateSpaceRequest()
    response = client.create_space(request=request)
    response.config.access_type = "OPEN"
    request = meet_v2.UpdateSpaceRequest(space=response)
    response = client.update_space(request=request)
    return response


@app.route('/create_meet', methods=['POST'])
def create_meet():
    creds = createToken()
    response = createMeet(creds)
    event = {
        "html": "<p>Link to created google meet.</p>",
        "plainText": response.meeting_uri,
        "MeetingName": response.name
    }
    return jsonify({"Event": event})


if __name__ == '__main__':
    app.run(debug=True)
