ka1kuk commited on
Commit
0030454
1 Parent(s): 1ebd440

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +31 -26
main.py CHANGED
@@ -1,11 +1,8 @@
1
  from fastapi import FastAPI
2
- from starlette.responses import JSONResponse
3
  from fastapi.middleware.cors import CORSMiddleware
4
- from openvpn_api import VPN
5
 
6
  app = FastAPI()
7
- vpn = None
8
-
9
  # Add CORS middleware
10
  app.add_middleware(
11
  CORSMiddleware,
@@ -15,28 +12,36 @@ app.add_middleware(
15
  allow_headers=["*"],
16
  )
17
 
18
- @app.post("/start")
19
- def start_vpn():
20
- global vpn
21
- try:
22
- vpn = VPN('localhost', 7505) # Ensure your OpenVPN server's management interface is set up on this IP and port.
23
- vpn.connect()
24
- # You can add more controls or checks here
25
- return JSONResponse(content={"status": "connected"}, status_code=200)
26
- except Exception as e:
27
- return JSONResponse(content={"error": f"Failed to connect to VPN: {str(e)}"}, status_code=500)
28
-
29
- @app.post("/stop")
30
- def stop_vpn():
31
- global vpn
32
- try:
33
- if vpn:
34
- vpn.disconnect()
35
- vpn = None
36
- return JSONResponse(content={"status": "disconnected"}, status_code=200)
37
- except Exception as e:
38
- return JSONResponse(content={"error": f"Failed to disconnect from VPN: {str(e)}"}, status_code=500)
 
 
 
 
 
 
 
 
39
 
40
  if __name__ == "__main__":
41
  import uvicorn
42
- uvicorn.run(app, host="0.0.0.0", port=5000)
 
1
  from fastapi import FastAPI
2
+ from typing import List, Dict, Any
3
  from fastapi.middleware.cors import CORSMiddleware
 
4
 
5
  app = FastAPI()
 
 
6
  # Add CORS middleware
7
  app.add_middleware(
8
  CORSMiddleware,
 
12
  allow_headers=["*"],
13
  )
14
 
15
+ class Database:
16
+ def __init__(self):
17
+ self.store = {}
18
+
19
+ def insert(self, collection_name: str, document: Dict[str, Any]):
20
+ if collection_name not in self.store:
21
+ self.store[collection_name] = []
22
+
23
+ self.store[collection_name].append(document)
24
+ return document
25
+
26
+ def find(self, collection_name: str, query: Dict[str, Any] = None):
27
+ if collection_name not in self.store:
28
+ return []
29
+
30
+ if not query:
31
+ return self.store[collection_name]
32
+
33
+ return [doc for doc in self.store[collection_name] if all(item in doc.items() for item in query.items())]
34
+
35
+ db = Database()
36
+
37
+ @app.get("/items", response_model=List[Dict[str, Any]])
38
+ async def get_items():
39
+ return db.find('items')
40
+
41
+ @app.post("/items", response_model=Dict[str, Any])
42
+ async def add_item(item: Dict[str, Any]):
43
+ return db.insert('items', item)
44
 
45
  if __name__ == "__main__":
46
  import uvicorn
47
+ uvicorn.run(app, host="0.0.0.0", port=3000)