forked from PacktPublishing/Cloud-Native-Python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrequest.py
More file actions
129 lines (115 loc) · 3.51 KB
/
Copy pathrequest.py
File metadata and controls
129 lines (115 loc) · 3.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
from flask import Flask, render_template, request, jsonify, redirect, session
from flask import abort
from flask_cors import CORS, cross_origin
from flask import make_response, url_for
import json
import random
from pymongo import MongoClient
from time import gmtime, strftime
# connection to MongoDB Database
connection = MongoClient("mongodb://localhost:27017/")
class Requests:
# List users
def list_users():
api_list=[]
db = connection.app.users
for row in db.find():
api_list.append(str(row))
# print (api_list)
return jsonify({'user_list': api_list})
# List specific users
def list_user(user_id):
print (user_id)
api_list=[]
db = connection.app.users
for i in db.find({'id':user_id}):
api_list.append(str(i))
if api_list == []:
abort(404)
return jsonify({'user_details':api_list})
# List specific tweet
def list_tweet(user_id):
print (user_id)
db = connection.app.tweets
api_list=[]
tweet = db.find({'tweetedby':user_id})
for row in tweet:
dict = {}
dict['id'] = row['id']
dict['timestamp'] = row['timestamp']
dict['tweetedby'] = row['tweetedby']
dict['body'] = row['body']
api_list.append(dict)
if api_list == []:
abort(404)
print (api_list)
return json.dumps(api_list)
# Adding user
def add_user(new_user):
# api_list=[]
# print (new_user)
# db = connection.app.users
# user = db.find({'$or':[{"username":new_user['username']} ,{"email":new_user['email']}]})
# for i in user:
# print (str(i))
# api_list.append(str(i))
#
# # print (api_list)
# if api_list == []:
# # print(new_user)
db.insert(new_user)
return "Success"
# else :
# abort(409)
# Deleting User
def del_user(del_user):
db = connection.app.users
api_list=[]
for i in db.find({'username':del_user}):
api_list.append(str(i))
if api_list == []:
abort(404)
else:
db.remove({"username":del_user})
return "Success"
# List tweets
def list_tweets():
api_list=[]
dict = {}
db = connection.app.tweets
for row in db.find():
print (row)
dict = {}
dict['id'] = row['id']
dict['timestamp'] = row['timestamp']
dict['tweetedby'] = row['tweetedby']
dict['body'] = row['body']
api_list.append(dict)
print (api_list)
return json.dumps(api_list)
# Adding tweets
def add_tweet(new_tweet):
api_list=[]
print (new_tweet)
db_user = connection.app.users
db_tweet = connection.app.tweets
user = db_user.find({"username":new_tweet['tweetedby']})
for i in user:
api_list.append(str(i))
if api_list == []:
abort(404)
else:
db_tweet.insert(new_tweet)
return "Success"
def upd_user(user):
api_list=[]
print (user)
db_user = connection.app.users
users = db_user.find_one({"id":user['id']})
for i in users:
api_list.append(str(i))
if api_list == []:
abort(409)
else:
db_user.update({'id':user['id']},{'$set': user}, upsert=False )
return "Success"