コード例 #1
0
ファイル: Forum.py プロジェクト: iproha94/DBForumApi
def getInfoForum(shortname, related, cursor):
	query = '''select forumId, userEmail, shortName, name
				from Forum
				where shortName = '%s' limit 1 ; 
			''' % (shortname)
	cursor.execute(query)

	rowForum = cursor.fetchone()

	forumId = rowForum[0]
	userEmail = rowForum[1]
	name = rowForum[3]
	shortname = rowForum[2]

	d = { "id": forumId,
	        "user": userEmail,
	        "name": name,
	        "short_name": shortname
		}


	if 'user' in related:
		from views.User import getInfoUser
		d.update({'user': getInfoUser(userEmail, ['followers', 'following', 'subscriptions'], cursor)})	
		del getInfoUser
	
	return d
コード例 #2
0
ファイル: Post.py プロジェクト: iproha94/DBForumApi
def getInfoPost(id, related, cursor):
	id = int(id)

	query = '''select threadId, userEmail, parent, datePost, message, 
					isEdited, isDeleted, isSpam, isHighlighted, isApproved,
					forumShortName, likes, dislikes, likes - dislikes
				from Post
				where postId = %s limit 1 ;
			''' % (id) 

	cursor.execute(query)
	rowPost = cursor.fetchone()

	isEdited = True if rowPost[5] == 1 else False
	isDeleted = True if rowPost[6] == 1 else False
	isSpam = True if rowPost[7] == 1 else False
	isHighlighted = True if rowPost[8] == 1 else False
	isApproved = True if rowPost[9] == 1 else False

	userEmail = rowPost[1]
	threadId = rowPost[0]
	forumShortName = rowPost[10]

	d = { "date": datetime.strftime(rowPost[3], '%Y-%m-%d %H:%M:%S'),
			"dislikes": rowPost[12],
			"likes": rowPost[11],
			"points": rowPost[13],
	        "forum": forumShortName,
	        "id": id,
	        "isEdited": isEdited,
	        "isDeleted": isDeleted,
	        "isSpam": isSpam,
	        "isHighlighted": isHighlighted,
	        "isApproved": isApproved,
	        "message": rowPost[4],
	        "parent": rowPost[2],
	        "thread": threadId,
	        "user": userEmail
		}


	if 'user' in related:
		from views.User import getInfoUser
		d.update({'user': getInfoUser(userEmail, ['followers', 'following', 'subscriptions'], cursor)})	
		del getInfoUser
	
	if 'forum' in related:
		d.update({'forum': getInfoForum(forumShortName, [], cursor)})
	
	if 'thread' in related:
		d.update({'thread': getInfoThread(threadId, [], cursor)})	

	return d
コード例 #3
0
ファイル: Forum.py プロジェクト: iproha94/DBForumApi
def listUsersForum(request):
	cursor = connection.cursor()

	#обязательные GET
	shortName = request.GET['forum']	

	#опциональные GET
	limit = request.GET.get('limit', None)
	order = request.GET.get('order', 'desc')
	since_id = request.GET.get('since_id', None)

	query = '''select p.userEmail userEmail, u.name as uname, u.userId as userId
				from Post p join User u 
					on p.userEmail = u.email
				where p.forumShortName = '%s'
				group by uname, userId 
			''' % (shortName) 

	if since_id is not None:
		query += " and userId >= %s " % (since_id)

	query += " order by uname %s , userId %s" % (order, order)

	if limit is not None:
		query += " limit %s " % (limit)
		
	try:
		#выдаст исключение, если такого  нет
		# getInfoForumTest(shortName, [], cursor);

		cursor.execute(query)
		rowsUser = cursor.fetchall()

		d = [];

		for row in rowsUser:
			from views.User import getInfoUser
			d.append(getInfoUser(row[0], ['followers', 'following', 'subscriptions'], cursor))
			del getInfoUser

		code = 0
		responseMessage = d
	except:
		code = 1
		responseMessage = "Forum not found"

	response = { "code": code, "response": responseMessage}
	return JsonResponse(response)
コード例 #4
0
ファイル: Thread.py プロジェクト: iproha94/DBForumApi
def getInfoThread(id, related, cursor):
	id = int(id)
	query = '''select date, forumShortName, isClosed, isDeleted, message, slug, title, userEmail, likes, dislikes, points, posts
				from Thread
				where threadId = %s limit 1 ; ''' % (id)  

	cursor.execute(query)
	rowThread = cursor.fetchone()

	isClosed = True if rowThread[2] == 1 else False
	isDeleted = True if rowThread[3] == 1 else False

	forumShortName = rowThread[1]
	userEmail = rowThread[7]

	d = { "date": datetime.strftime(rowThread[0], '%Y-%m-%d %H:%M:%S'),
	        "forum": forumShortName,
	        "id": id,
	        "isClosed": isClosed,
	        "isDeleted": isDeleted,
	        "message": rowThread[4],
	        "slug": rowThread[5],
	        "title": rowThread[6],
	        "user": userEmail,
	        "dislikes": rowThread[9],
			"likes": rowThread[8],
			"points": rowThread[10],
			"posts": rowThread[11]
		}

	if 'user' in related:
		from views.User import getInfoUser
		d.update({'user': getInfoUser(userEmail, ['followers', 'following', 'subscriptions'], cursor)})	
		del getInfoUser

	if 'forum' in related:
		from views.Forum import getInfoForum
		d.update({'forum': getInfoForum(forumShortName, [], cursor)})	
		del getInfoForum

	return d