feat(InterviewBooking): almost preped for merge into one repo

This commit is contained in:
darkicewolf50 2024-12-21 22:52:36 -07:00
parent 0de072a5ad
commit 9eae4153ad
31 changed files with 12 additions and 136 deletions

View File

@ -12,7 +12,7 @@ on:
push:
branches:
- main
- master
# each workflow must have at least one job.
# jobs run in parallel by default (we can change that).
@ -47,7 +47,7 @@ jobs:
Dockerhub:
runs-on: ubuntu-latest
needs: ruffLint # will only run if linter is successful
if: ${{ github.ref == 'refs/heads/main' || github.event.pull_request.merged == true }} # Runs if it's a push to 'main' or a merged PR to 'main'
if: ${{ github.ref == 'refs/heads/master' || github.event.pull_request.merged == true }} # Runs if it's a push to 'main' or a merged PR to 'main'
steps:
- name: checkout
uses: actions/checkout@v3

View File

@ -5,12 +5,14 @@ FROM python:3.10-slim
WORKDIR /BajaCloudBackend
# Copy the current directory contents into the container at /app
COPY ./ContainerContents /BajaCloudBackend
COPY ./InterviewBooking /BajaCloudBackend/InterviewBooking
# Copy the main file to the working directory
COPY main.py /BajaCloudBackend
# Install any necessary dependencies
RUN pip install --no-cache-dir -r requirements.txt
# Expose port 8080 for the container to listen on
# Expose port 8000 for the container to listen on
EXPOSE 8000
# Command to run the Python server when the container starts

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@ -1,17 +0,0 @@
# Use an official Python runtime as a parent image
FROM python:3.10-slim
# Set the working directory inside the container
WORKDIR /app
# Copy the current directory contents into the container at /app
COPY ./mock /app
# Install any necessary dependencies
RUN pip install --no-cache-dir -r requirements.txt
# Expose port 8080 for the container to listen on
EXPOSE 8080
# Command to run the Python server when the container starts
CMD ["python", "server.py"]

View File

@ -1,10 +0,0 @@
services:
test-http-container:
container_name: test-http-container
ports:
- 8080:8080
volumes:
- ./mock:/app
build: .
# networks:
# - testnet

View File

@ -1,49 +0,0 @@
import json
import signal
import sys
from http.server import BaseHTTPRequestHandler, HTTPServer
from django.http import HttpResponse
# Function to generate the response
def send_funct():
ymlschedule = {"message": False}
to_send = {
"statusCode": 200,
"isBase64ENcoded": "false",
"body": json.dumps(ymlschedule)
}
return json.dumps(to_send)
# Define request handler
class RequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
# Send response headers
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.end_headers()
# Send the response body (the JSON data)
self.wfile.write(send_funct().encode('utf-8'))
# Graceful shutdown handler
def signal_handler(sig, frame):
print("\nShutting down server gracefully...")
sys.exit(0)
# Set up and start the server
if __name__ == "__main__":
# Register signal handler for graceful shutdown (e.g., Ctrl+C)
signal.signal(signal.SIGINT, signal_handler)
# Set the server address (localhost) and port (8080)
server_address = ('', 8080)
httpd = HTTPServer(server_address, RequestHandler)
print("Server started on port 8080")
try:
# Start the server and listen for requests
httpd.serve_forever()
except KeyboardInterrupt:
# Server shutdown is handled in signal_handler
pass

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@ -1 +0,0 @@
# Interview-Backend

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@ -1,8 +0,0 @@
# 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"]

View File

@ -1,32 +0,0 @@
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()

View File

@ -1,8 +0,0 @@
services:
web:
container_name: test
build: .
ports:
- "8000:8000"
volumes:
- ./:/code

View File

@ -1,12 +1,11 @@
import pandas as pd
import json
from openpyxl import load_workbook
from send_email import send_email
from .send_email import send_email
from filelock import FileLock
"""
TODO make it work with the new template
TODO update names to be more clear
TODO try to remove pandas
"""

View File

@ -1,4 +1,4 @@
from ReadDB import ReadDatabase
from .ReadDB import ReadDatabase
def getSchedulePackager(file_name):
@ -18,7 +18,7 @@ def getSchedulePackager(file_name):
"interviewDates": ReadDatabase(file_path=file_name)
}
from WriteDB import AppendAppointment
from .WriteDB import AppendAppointment
from email_validator import validate_email, EmailNotValidError

View File

@ -2,7 +2,7 @@ from fastapi import FastAPI
from fastapi.responses import JSONResponse
from pydantic import BaseModel
from NoSheet import NoSheet
from .InterviewBooking.NoSheet import NoSheet
import datetime
import os
@ -46,7 +46,7 @@ def get_root():
)
from interviewPackagers import getSchedulePackager
from .InterviewBooking.interviewPackagers import getSchedulePackager
@app.get("/getAppointments")
async def getAppointments():
@ -76,7 +76,7 @@ async def getAppointments():
# status_code=200 commented out just to show how to change it if you wanted
)
from interviewPackagers import SelectAppointment
from .InterviewBooking.interviewPackagers import SelectAppointment
class Appointment(BaseModel):
"""