def respond_theme(self, socket, request, session_id): username = self.sessions[session_id]["username"] self.lock.acquire() self.users[username]['theme'] = request.headers['Path'] self.lock.release() self.save_user() socket.send(Response())
def respond_get(self, socket, request, session_id): task_id = request.headers['Task-id'] for idx1, task_list in enumerate(self.sessions[session_id]["data_list"]): for idx2, task in enumerate(task_list): if task['id'] == task_id: socket.send(Response(content=json.dumps(task))) return socket.send(errors.TaskNotExists().toResponse())
def respond_update(self, socket, request, session_id): task_json = json.loads(request.content) if self.check_task_json(task_json) is False: socket.send(errors.InvalidTaskJson().toResponse()) return for idx1, task_list in enumerate(self.sessions[session_id]["data_list"]): for idx2, task in enumerate(task_list): if task['id'] == task_json['id']: self.lock.acquire() self.sessions[session_id]["data_list"][idx1][idx2] = task_json self.lock.release() socket.send(Response(content=json.dumps(self.sessions[session_id]["data_list"]))) return socket.send(errors.TaskNotExists().toResponse())
def respond_add(self, socket, request, session_id): task_json = json.loads(request.content) if task_json['title'] == '': socket.send(errors.TaskTitleRequired().toResponse()) return if self.check_task_json(task_json) is False: socket.send(errors.InvalidTaskJson().toResponse()) return for idx1, task_list in enumerate(self.sessions[session_id]["data_list"]): for idx2, task in enumerate(task_list): if task['id'] == task_json['id']: socket.send(errors.TaskIDAlreadyExists().toResponse()) return self.lock.acquire() self.sessions[session_id]["data_list"][0].insert(0, task_json) self.lock.release() socket.send(Response(content=json.dumps(self.sessions[session_id]["data_list"])))
def respond_login(self, socket, request, session_id): username = request.headers['User'] verify = request.headers['Verify'] if username not in self.users: socket.send(errors.UserNotExists().toResponse()) return False elif verify != self.users[username]['verify']: socket.send(errors.WrongUserPassword().toResponse()) return False else: for session_id_already in self.sessions: session = self.sessions[session_id_already] if 'username' in session and session['username'] == username: socket.send(errors.DuplicateLogin().toResponse()) return False socket.send(Response(headers={'Session': session_id, 'Theme': self.users[username]['theme']})) return True
def respond_move(self, socket, request, session_id): task_id = request.headers['Task-id'] from_index = int(request.headers['From']) to_index = int(request.headers['To']) if from_index not in [0, 1, 2] and to_index not in [0, 1, 2]: socket.send(errors.InvalidListIndex().toResponse()) return if from_index == to_index: socket.send(errors.SameFromAndToList().toResponse()) return for idx1, task_list in enumerate(self.sessions[session_id]["data_list"]): for idx2, task in enumerate(task_list): if task['id'] == task_id: if idx1 == from_index: self.lock.acquire() del self.sessions[session_id]["data_list"][idx1][idx2] self.sessions[session_id]["data_list"][to_index].append(task) self.lock.release() socket.send(Response(content=json.dumps(self.sessions[session_id]["data_list"]))) return else: socket.send(errors.TaskNotInTheList().toResponse()) return socket.send(errors.TaskNotExists().toResponse())
def respond_archive(self, socket, request, session_id): self.lock.acquire() self.sessions[session_id]["data_list"][-1] = [] self.lock.release() socket.send(Response(content=json.dumps(self.sessions[session_id]["data_list"])))
def respond_list(self, socket, request, session_id): socket.send(Response(content=json.dumps(self.sessions[session_id]["data_list"])))
def respond_logout(self, socket, request, session_id): socket.send(Response(headers={})) return True
def toResponse(self): return Response(self.error_code, 'ERROR', {'Info': self.info}, '')