Completed
Push — master ( 7365f5...41cb1b )
by Andrew
33s
created

RedisPrefix.set_js_user_structure()   A

Complexity

Conditions 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
c 1
b 0
f 0
dl 0
loc 5
rs 9.4285
1
from chat.settings import ALL_ROOM_ID, GENDERS
2
3
4
class Actions(object):
5
	LOGIN = 'addOnlineUser'
6
	SET_WS_ID = 'setWsId'
7
	LOGOUT = 'removeOnlineUser'
8
	SEND_MESSAGE = 'sendMessage'
9
	PRINT_MESSAGE = 'printMessage'
10
	WEBRTC = 'sendRtcData'
11
	CLOSE_FILE_CONNECTION = 'destroyFileConnection'
12
	CLOSE_CALL_CONNECTION = 'destroyCallConnection'
13
	CANCEL_CALL_CONNECTION = 'cancelCallConnection'
14
	ACCEPT_CALL = 'acceptCall'
15
	ACCEPT_FILE = 'acceptFile'
16
	ROOMS = 'setRooms'
17
	REFRESH_USER = 'setOnlineUsers'
18
	GROWL_MESSAGE = 'growl'
19
	GET_MESSAGES = 'loadMessages'
20
	CREATE_DIRECT_CHANNEL = 'addDirectChannel'
21
	DELETE_ROOM = 'deleteRoom'
22
	EDIT_MESSAGE = 'editMessage'
23
	DELETE_MESSAGE = 'deleteMessage'
24
	CREATE_ROOM_CHANNEL = 'addRoom'
25
	INVITE_USER = 'inviteUser'
26
	ADD_USER = 'addUserToDom'
27
	OFFLINE_MESSAGES = 'loadOfflineMessages'
28
	SET_WEBRTC_ID = 'setConnectionId'
29
	SET_WEBRTC_ERROR = 'setError'
30
	OFFER_FILE_CONNECTION = 'offerFile'
31
	OFFER_CALL_CONNECTION = 'offerCall'
32
	REPLY_FILE_CONNECTION = 'replyFile'
33
	REPLY_CALL_CONNECTION = 'replyCall'
34
35
36
class VarNames(object):
37
	WEBRTC_QUED_ID = 'id'
38
	USER = 'user'
39
	USER_ID = 'userId'
40
	TIME = 'time'
41
	CONTENT = 'content'
42
	IMG = 'images'
43
	IMG_B64 = 'b64'
44
	IMG_FILE_NAME = 'fileName'
45
	EVENT = 'action'
46
	MESSAGE_ID = 'id'
47
	GENDER = 'sex'
48
	ROOM_NAME = 'name'
49
	ROOM_ID = 'roomId'
50
	ROOM_USERS = 'users'
51
	CHANNEL = 'channel'
52
	WEBRTC_OPPONENT_ID = 'opponentWsId'
53
	GET_MESSAGES_COUNT = 'count'
54
	GET_MESSAGES_HEADER_ID = 'headerId'
55
	CHANNEL_NAME = 'channel'
56
	IS_ROOM_PRIVATE = 'private'
57
	CONNECTION_ID = 'connId'
58
	HANDLER_NAME = 'handler'
59
	SYMBOL = 'symbol'
60
61
62
class HandlerNames:
63
	CHANNELS = 'channels'
64
	CHAT = 'chat'
65
	GROWL = 'growl'
66
	WEBRTC = 'webrtc'
67
	PEER_CONNECTION = 'peerConnection'
68
	WEBRTC_TRANSFER = 'webrtcTransfer'
69
	WS = 'ws'
70
71
72
class WebRtcRedisStates:
73
	RESPONDED = 'responded'
74
	READY = 'ready'
75
	OFFERED = 'offered'
76
	CLOSED = 'closed'
77
78
79
class RedisPrefix:
80
	USER_ID_CHANNEL_PREFIX = 'u'
81
	DEFAULT_CHANNEL = ALL_ROOM_ID
82
	CONNECTION_ID_LENGTH = 8  # should be secure
83
84
	@staticmethod
85
	def set_js_user_structure(user_dict, user_id, name, sex):
86
		user_dict[user_id] = {
87
			VarNames.USER: name,
88
			VarNames.GENDER: GENDERS[sex]
89
		}
90
91
	@classmethod
92
	def generate_user(cls, key):
93
		return cls.USER_ID_CHANNEL_PREFIX + str(key)