calculator-app / backend.py
NikhilSetiya
Add calculator application files
4cefd33
raw
history blame
1.09 kB
from fastapi import FastAPI
from pydantic import BaseModel
from typing import Union
app = FastAPI()
class CalculatorInput(BaseModel):
num1: float
num2: float
operation: str
class CalculatorResponse(BaseModel):
result: float
operation: str
@app.post("/calculate", response_model=CalculatorResponse)
async def calculate(input_data: CalculatorInput):
result = 0.0
if input_data.operation == "add":
result = input_data.num1 + input_data.num2
elif input_data.operation == "subtract":
result = input_data.num1 - input_data.num2
elif input_data.operation == "multiply":
result = input_data.num1 * input_data.num2
elif input_data.operation == "divide":
if input_data.num2 == 0:
raise ValueError("Cannot divide by zero")
result = input_data.num1 / input_data.num2
else:
raise ValueError("Invalid operation")
return CalculatorResponse(result=result, operation=input_data.operation)
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)