コード例 #1
0
def get_busy_slots_for_date(email_id, fetch_date, debug=False):
    "Get the busy slots for a given date"
    service = gcal.base_gcal()
    busy_slots = []
    pto_flag = False
    event_organizer_list = []
    if service:
        all_events = gcal.get_events_for_date(service, email_id, fetch_date)
        if all_events:
            for event in all_events:
                event_organizer = event['organizer']['email']
                event_organizer_list.append(event_organizer)
                if 'summary' in event.keys():
                    event_name = event['summary'].split(':')[-1].strip()
                    event_name = event_name.split()[0]
                    if 'PTO'.lower() == event_name.lower():
                        pto_flag = True
                        break
        else:
            pto_flag = True
        if pto_flag:
            busy_slots = gcal.make_day_busy(fetch_date)

        else:
            busy_slots = gcal.get_busy_slots_for_date(service,
                                                      email_id,
                                                      fetch_date,
                                                      timeZone=gcal.TIMEZONE,
                                                      debug=debug)

    return busy_slots, pto_flag
コード例 #2
0
def create_event_for_fetched_date_and_time(email,date,selected_slot):
    "Create an event for fetched date and time"    
    service = gcal.base_gcal()
    create_event_start_time,create_event_end_time = combine_date_and_time(date,selected_slot)      
    create_event = gcal.create_event_for_fetched_date_and_time(service,email,create_event_start_time,create_event_end_time,
    SUMMARY,LOCATION,DESCRIPTION,ATTENDEE)
    created_event_info = append_the_create_event_info(create_event)

    return created_event_info    
コード例 #3
0
def get_events_for_date(email_id, fetch_date, maxResults=240, debug=False):
    "Get all the events for a fetched date"
    service = gcal.base_gcal()
    events = gcal.get_events_for_date(service,
                                      email_id,
                                      fetch_date,
                                      debug=debug)

    return events
コード例 #4
0
def create_event_for_fetched_date_and_time(date,emails,selected_slot):
    "Create an event for fetched date and time"    
    service = gcal.base_gcal()    
    if ',' in emails:        
        attendee_email_id = emails.split(',')       
        attendee_email_id = random.choice(attendee_email_id)        
    else:
        attendee_email_id = emails    
    create_event_start_time,create_event_end_time = combine_date_and_time(date,selected_slot)      
    create_event = gcal.create_event_for_fetched_date_and_time(service,create_event_start_time,create_event_end_time,
    SUMMARY,LOCATION,DESCRIPTION,attendee_email_id)
    created_event_info = append_the_create_event_info(create_event)

    return created_event_info    
コード例 #5
0
def get_busy_slots_for_date(email_id,fetch_date,debug=False):
    "Get the busy slots for a given date"
    service = gcal.base_gcal()
    all_events = gcal.get_events_for_date(service,email_id,fetch_date)
    pto_flag = False
    for event in all_events:
        if 'summary' in event.keys():
            if 'PTO' in event['summary']:
                pto_flag = True 
                break
    if pto_flag:
        busy_slots = gcal.make_day_busy(fetch_date)
    else:
        busy_slots = gcal.get_busy_slots_for_date(service,email_id,fetch_date,timeZone=gcal.TIMEZONE,debug=debug)

    return busy_slots
コード例 #6
0
def get_busy_slots_for_date(email_id,fetch_date,debug=False):
    "Get the busy slots for a given date"
    service = gcal.base_gcal()
    all_events = gcal.get_events_for_date(service,email_id,fetch_date)
    pto_flag = False
    for event in all_events:
        if 'summary' in event.keys():
            event_name = event['summary'].split(':')[-1].strip()
            event_name = event_name.split()[0]
            if 'PTO'.lower() == event_name.lower():
                pto_flag = True 
                break
    if pto_flag:
        busy_slots = gcal.make_day_busy(fetch_date)
    else:
        busy_slots = gcal.get_busy_slots_for_date(service,email_id,fetch_date,timeZone=gcal.TIMEZONE,debug=debug)

    return busy_slots
コード例 #7
0
def get_busy_slots_for_fetched_email_id(email_id, fetch_date, debug=False):
    "Get the busy slots for a given date"
    service = gcal.base_gcal()
    busy_slots = []
    event_organizer_list = []
    if service:
        all_events = gcal.get_events_for_date(service, email_id, fetch_date)
        if all_events:
            for event in all_events:
                event_organizer = event['organizer']['email']
                event_organizer_list.append(event_organizer)
            busy_slots = gcal.get_busy_slots_for_date(service,
                                                      email_id,
                                                      fetch_date,
                                                      timeZone=gcal.TIMEZONE,
                                                      debug=debug)

    return busy_slots
コード例 #8
0
def create_event_for_fetched_date_and_time(date, interviewer_emails,
                                           candidate_email, selected_slot,
                                           round_name, round_description):
    "Create an event for fetched date and time"
    service = gcal.base_gcal()
    interviewer_candidate_email = []
    if ',' in interviewer_emails:
        attendee_email_id = interviewer_emails.split(',')
        picked_email_id = pick_interviewer(attendee_email_id, date)
    else:
        picked_email_id = interviewer_emails
    interviewer_candidate_email.append(picked_email_id)
    interviewer_candidate_email.append(candidate_email)
    #Fetch interviewers name from the email
    fetch_interviewer_name = Interviewers.query.filter(
        Interviewers.interviewer_email == picked_email_id).values(
            Interviewers.interviewer_name)
    for interviewer_name in fetch_interviewer_name:
        chosen_interviewer_name = interviewer_name.interviewer_name
    #Fetch candidate info
    fetch_candidate_name = Candidates.query.filter(
        Candidates.candidate_email == candidate_email).values(
            Candidates.candidate_name, Candidates.job_applied)
    for candidate_details in fetch_candidate_name:
        candidate_name = candidate_details.candidate_name
        candidate_job = candidate_details.job_applied
    res = ''.join(random.choices(string.ascii_uppercase + string.digits, k=7))
    jitsi_link = "https://meet.jit.si/interviewScheduler/%s" % res
    LOCATION = jitsi_link
    SUMMARY = candidate_name + '/' + chosen_interviewer_name + '-' + candidate_job
    description = "Round name : " + round_name + '\n\n' + 'Round description : ' + round_description + "  Use the Jitsi link to join the meeting  " + jitsi_link
    create_event_start_time, create_event_end_time = combine_date_and_time(
        date, selected_slot)

    create_event = gcal.create_event_for_fetched_date_and_time(
        service, create_event_start_time, create_event_end_time, SUMMARY,
        LOCATION, description, interviewer_candidate_email)
    created_event_info = append_the_create_event_info(create_event,
                                                      picked_email_id,
                                                      jitsi_link)

    return created_event_info