mirror of
https://github.com/UofCBaja/Interview-Backend.git
synced 2025-06-15 13:24:19 -06:00
Docker testing
This commit is contained in:
parent
58f913d3ed
commit
845438960b
@ -1,44 +1,33 @@
|
|||||||
import pandas as pd
|
import time
|
||||||
import yaml
|
from http.server import BaseHTTPRequestHandler, HTTPServer
|
||||||
|
|
||||||
# Load the YAML file
|
hit_count = 0 # In-memory counter
|
||||||
with open("./interview_database.yaml", 'r') as file:
|
|
||||||
interview_data = yaml.safe_load(file)
|
|
||||||
|
|
||||||
# Access the nested structure within 'Data'
|
def get_hit_count():
|
||||||
flattened_data = []
|
global hit_count
|
||||||
for date, date_info in interview_data['Data'].items():
|
hit_count += 1
|
||||||
meeting_duration = date_info.get('Meeting Duration')
|
return hit_count
|
||||||
|
|
||||||
for start_time_info in date_info.get('Meeting Start Times', []):
|
|
||||||
for start_time, meeting_info in start_time_info.items():
|
|
||||||
interviewer_name = meeting_info['Interviewer'][0].get('Name')
|
|
||||||
interviewer_email = meeting_info['Interviewer'][1].get('Email')
|
|
||||||
interviewee_name = meeting_info['Interviewee'][0].get('Name')
|
|
||||||
interviewee_email = meeting_info['Interviewee'][1].get('Email')
|
|
||||||
category = meeting_info.get('Category')
|
|
||||||
status = meeting_info.get('Status')
|
|
||||||
slot = meeting_info.get('Slot')
|
|
||||||
|
|
||||||
# Add flattened row to list
|
|
||||||
flattened_data.append({
|
|
||||||
'Date': date,
|
|
||||||
'Meeting Duration': meeting_duration,
|
|
||||||
'Start Time': start_time,
|
|
||||||
'Interviewer Name': interviewer_name,
|
|
||||||
'Interviewer Email': interviewer_email,
|
|
||||||
'Interviewee Name': interviewee_name,
|
|
||||||
'Interviewee Email': interviewee_email,
|
|
||||||
'Category': category,
|
|
||||||
'Status': status,
|
|
||||||
'Slot': slot
|
|
||||||
})
|
|
||||||
|
|
||||||
# Convert to DataFrame if flattened data is not empty
|
class RequestHandler(BaseHTTPRequestHandler):
|
||||||
if flattened_data:
|
def do_GET(self):
|
||||||
df = pd.DataFrame(flattened_data)
|
if self.path == '/':
|
||||||
# Write the DataFrame to an Excel file
|
count = get_hit_count()
|
||||||
df.to_excel("interview_database.xlsx", index=False)
|
response = f'Hello World! I have been seen {count} times.\n'
|
||||||
print("Data has been written to interview_database.xlsx")
|
self.send_response(200)
|
||||||
else:
|
self.send_header('Content-type', 'text/plain')
|
||||||
print("No data found to write.")
|
self.end_headers()
|
||||||
|
self.wfile.write(response.encode('utf-8'))
|
||||||
|
else:
|
||||||
|
self.send_response(404)
|
||||||
|
self.send_header('Content-type', 'text/plain')
|
||||||
|
self.end_headers()
|
||||||
|
self.wfile.write(b'Not Found\n')
|
||||||
|
|
||||||
|
def run(server_class=HTTPServer, handler_class=RequestHandler, port=8000):
|
||||||
|
server_address = ('', port)
|
||||||
|
httpd = server_class(server_address, handler_class)
|
||||||
|
print(f'Starting server on port {port}...')
|
||||||
|
httpd.serve_forever()
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
run()
|
||||||
|
8
composetest/Dockerfile
Normal file
8
composetest/Dockerfile
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# syntax=docker/dockerfile:1
|
||||||
|
FROM python:3.10-slim
|
||||||
|
WORKDIR /code
|
||||||
|
COPY requirements.txt requirements.txt
|
||||||
|
RUN pip install -r requirements.txt
|
||||||
|
EXPOSE 5000
|
||||||
|
COPY . .
|
||||||
|
CMD ["python", "app.py"]
|
33
composetest/app.py
Normal file
33
composetest/app.py
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
import time
|
||||||
|
from http.server import BaseHTTPRequestHandler, HTTPServer
|
||||||
|
|
||||||
|
hit_count = 0 # In-memory counter
|
||||||
|
|
||||||
|
def get_hit_count():
|
||||||
|
global hit_count
|
||||||
|
hit_count += 1
|
||||||
|
return hit_count
|
||||||
|
|
||||||
|
class RequestHandler(BaseHTTPRequestHandler):
|
||||||
|
def do_GET(self):
|
||||||
|
if self.path == '/':
|
||||||
|
count = get_hit_count()
|
||||||
|
response = f'Hello World! I have been seen {count} times.\n'
|
||||||
|
self.send_response(200)
|
||||||
|
self.send_header('Content-type', 'text/plain')
|
||||||
|
self.end_headers()
|
||||||
|
self.wfile.write(response.encode('utf-8'))
|
||||||
|
else:
|
||||||
|
self.send_response(404)
|
||||||
|
self.send_header('Content-type', 'text/plain')
|
||||||
|
self.end_headers()
|
||||||
|
self.wfile.write(b'Not Found\n')
|
||||||
|
|
||||||
|
def run(server_class=HTTPServer, handler_class=RequestHandler, port=8000):
|
||||||
|
server_address = ('', port)
|
||||||
|
httpd = server_class(server_address, handler_class)
|
||||||
|
print(f'Starting server on port {port}...')
|
||||||
|
httpd.serve_forever()
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
run()
|
8
composetest/docker-compose.yaml
Normal file
8
composetest/docker-compose.yaml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
services:
|
||||||
|
web:
|
||||||
|
container_name: test
|
||||||
|
build: .
|
||||||
|
ports:
|
||||||
|
- "8000:8000"
|
||||||
|
volumes:
|
||||||
|
- ./:/code
|
0
composetest/requirements.txt
Normal file
0
composetest/requirements.txt
Normal file
Loading…
x
Reference in New Issue
Block a user