Andreean commited on
Commit
11dd5ef
·
verified ·
1 Parent(s): 5d23841

Upload 4 files

Browse files
Files changed (4) hide show
  1. adscore.json +0 -0
  2. app.py +76 -0
  3. requirements.txt +2 -0
  4. users.json +14 -0
adscore.json ADDED
The diff for this file is too large to render. See raw diff
 
app.py ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from flask import Flask, jsonify, request
2
+ import json
3
+
4
+ app = Flask(__name__)
5
+
6
+ # Load users data from JSON file
7
+ with open('users.json', 'r') as f:
8
+ users = json.load(f)
9
+
10
+ # Load provider data from JSON file
11
+ with open('adscore.json', 'r') as f:
12
+ data = json.load(f)
13
+
14
+ # Root route
15
+ @app.route('/')
16
+ def index():
17
+ return "Welcome to Adscore Provider API!"
18
+
19
+ # Login route
20
+ @app.route('/login', methods=['POST'])
21
+ def login():
22
+ data = request.form # Mengambil data dari form POST
23
+ username = data.get('username')
24
+ password = data.get('password')
25
+
26
+ if not username or not password:
27
+ return jsonify({"error": "Username and password required"}), 400 # Jika username atau password kosong
28
+
29
+ # Cek apakah username dan password sesuai dengan yang ada di JSON file
30
+ for user in users:
31
+ if user['username'] == username and user['password'] == password:
32
+ return jsonify({"message": "Login successful"}), 200
33
+
34
+ return jsonify({"error": "Invalid username or password"}), 401
35
+
36
+ # Define a route to fetch provider data by code
37
+ @app.route('/get_provider', methods=['GET'])
38
+ def get_provider():
39
+ provider_code = request.args.get('provider_code')
40
+
41
+ if not provider_code:
42
+ return jsonify({"error": "No provider code provided"}), 400 # Handle case where no code is provided
43
+
44
+ for provider in data:
45
+ if provider.get("new_code_provider") == provider_code.strip(): # Use strip() to remove any extra spaces
46
+ return jsonify(provider), 200 # Return provider data if found
47
+
48
+ return jsonify({"error": "Provider not found"}), 404 # Return error if provider not found
49
+
50
+ # Define a route to fetch the score type
51
+ @app.route('/get_score', methods=['GET'])
52
+ def get_score():
53
+ provider_code = request.args.get('provider_code')
54
+
55
+ if not provider_code:
56
+ return jsonify({"error": "No provider code provided"}), 400 # Handle case where no code is provided
57
+
58
+ for provider in data:
59
+ if provider.get("new_code_provider") == provider_code.strip(): # Use strip() to remove any extra spaces
60
+ total_score = provider.get("total_score", 0) # Default to 0 if total_score is not present
61
+
62
+ # Determine the score type based on total_score
63
+ if total_score <= 9:
64
+ score_type = "Bad Score"
65
+ elif 10 <= total_score <= 14:
66
+ score_type = "Moderate Score"
67
+ else:
68
+ score_type = "Good Score"
69
+
70
+ return jsonify({"total_score": total_score, "score_type": score_type}), 200 # Return score info
71
+
72
+ return jsonify({"error": "Provider not found"}), 404 # Return error if provider not found
73
+
74
+ if __name__ == '__main__':
75
+ # app.run(debug=True)
76
+ app.run()
requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ flask==3.0.3
2
+ Gunicorn==21.2.0`
users.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "username": "admin",
4
+ "password": "admin123"
5
+ },
6
+ {
7
+ "username": "user1",
8
+ "password": "password1"
9
+ },
10
+ {
11
+ "username": "andreearsnd99",
12
+ "password": "Dh4rma123!"
13
+ }
14
+ ]