Code without logic.py
Code without logic.py
import mysql.connector
from datetime import datetime
import pytz
app = Flask(__name__)
# Database configuration
db_config = {
'host': 'localhost',
'user': 'your_username',
'password': 'your_password',
'database': 'attendance_db'
}
def get_db_connection():
return mysql.connector.connect(**db_config)
conn.commit()
conn.close()
@app.route('/record_attendance', methods=['POST'])
def record_attendance():
data = request.get_json()
card_id = data.get('card_id')
if not card_id:
return jsonify({'error': 'No card ID provided'}), 400
try:
conn = get_db_connection()
cursor = conn.cursor()
if not employee:
return jsonify({'error': 'Unknown card ID'}), 404
# Record attendance
current_time = datetime.now(pytz.UTC)
cursor.execute(
'INSERT INTO attendance (employee_id, timestamp) VALUES (%s, %s)',
(employee_id, current_time)
)
conn.commit()
return jsonify({
'message': 'Attendance recorded successfully',
'employee_name': employee_name,
'timestamp': current_time.isoformat()
})
except Exception as e:
return jsonify({'error': str(e)}), 500
finally:
conn.close()
@app.route('/get_attendance_report', methods=['GET'])
def get_attendance_report():
start_date = request.args.get('start_date')
end_date = request.args.get('end_date')
try:
conn = get_db_connection()
cursor = conn.cursor(dictionary=True)
query = '''
SELECT
e.name,
e.department,
a.timestamp
FROM attendance a
JOIN employees e ON a.employee_id = e.id
WHERE a.timestamp BETWEEN %s AND %s
ORDER BY a.timestamp DESC
'''
return jsonify(records)
except Exception as e:
return jsonify({'error': str(e)}), 500
finally:
conn.close()
if __name__ == '__main__':
setup_database()
app.run(host='0.0.0.0', port=5000)