Spaces:
Build error
Build error
| from fastapi import FastAPI | |
| from pydantic import BaseModel, ValidationError, validator | |
| from pytezos import pytezos | |
| app = FastAPI() | |
| pytezos = pytezos.using(shell = 'https://rpc.tzkt.io/ghostnet', key='edsk3MrRkoidY2SjEgufvi44orvyjxgZoy4LhaJNTNcddWykW6SssL') | |
| contract = pytezos.contract('KT1KvCVKiZhkPG8s9CCoxW3r135phk2HhZUV') | |
| # Define the request body model | |
| class Patient(BaseModel): | |
| name: str | |
| email: str | |
| contact: int | |
| age: int | |
| gender: str | |
| number: int | |
| #is_offer: bool = None | |
| def name_must_not_be_empty(cls, v): | |
| if v == ' ': | |
| raise ValueError('must contain a space') | |
| return v | |
| def name_must_contain_at(cls, v): | |
| if '@' not in v: | |
| raise ValueError('must contain @ ') | |
| return v | |
| async def read_root(): | |
| return {"Hello": "World"} | |
| # Define the POST route handler | |
| async def create_patient(patient: Patient): | |
| # patient object is validated automatically by FastAPI | |
| patient_dict = patient.dict() | |
| contract.addUser(email = patient.email, name = patient.name, age = patient.age, gender = patient.gender, number = patient.number).with_amount(0).as_transaction().fill().sign().inject() | |
| return {"message": f"User {patient.name} with email {patient.email} created successfully"} | |