Example #1
0
def summary(convoId):
    authResponse = authentication()
    if authResponse["statusCode"] == 200 and authResponse["isVerified"]:

        userId = authResponse.get("data").get("user_id")
        transRes = db.summarizeTransaction(convoId, userId)

        if not transRes.get("status"):
            return app.response_class(
                response=json.dumps({
                    "status": "failure",
                    "error": transRes.get("error"),
                    "data": None
                }),
                mimetype="application/json",
            ), 400

        return app.response_class(
            response=json.dumps({
                "status": "success",
                "error": None,
                "data": transRes.get("data")
            }),
            mimetype="application/json",
        ), 401

    return app.response_class(
        response=json.dumps({
            "status": "unauthorized",
            "error": authResponse.get("error")
        }),
        mimetype="application/json",
    ), 401
Example #2
0
def leaveRoom(data):

    authResponse = authentication()
    print("authResLeave : ", authResponse)
    if authResponse["statusCode"] == 200 and authResponse["isVerified"]:
        convoId = data.get("conversation_id")
        userId = authResponse.get("data").get("user_id")

        if convoId is None:
            join_room(userId, request.sid, namespace="/memo")
            emit("leave", {
                "status": "failure",
                "error": "Invalid request"
            },
                 namespace="/memo",
                 room=userId)
            close_room(userId, namespace="/memo")
        else:
            emit("leave", {
                "status": "success",
                "error": None
            },
                 namespace="/memo",
                 room=userId)
            leave_room(convoId, request.sid, namespace="/memo")

    else:
        raise ConnectionRefusedError('unauthorized!')
Example #3
0
def chatOrTrans():
    authResponse = authentication()
    if request.method == "POST" and authResponse[
            "statusCode"] == 200 and authResponse["isVerified"]:

        data = request.get_json()
        memoType = data.get("memo_type")
        msgType = data.get("msg_type")
        transType = data.get("transaction_type")
        memo = data.get("memo")
        sentTime = data.get("sent_time")
        convoId = data.get("conversation_id")

        if None in [memoType, memo, sentTime, convoId]:
            return app.response_class(
                response=json.dumps({
                    "status": "failure",
                    "error": "Invalid Request"
                }),
                mimetype="application/json",
            ), 400

        userId = authResponse.get("data").get("user_id")
        chatOrTransType = ""
        if memoType == "chat":
            chatOrTransType = msgType
        if memoType == "transaction":
            chatOrTransType = transType
        addMemoRes = db.addMemo(memoType, memo, sentTime, convoId, userId,
                                chatOrTransType)
        if addMemoRes.get("status"):
            return app.response_class(
                response=json.dumps({
                    "status": "success",
                    "error": None
                }),
                mimetype="application/json",
            ), 200
        else:
            return app.response_class(
                response=json.dumps({
                    "status": "failure",
                    "error": addMemoRes.get("error")
                }),
                mimetype="application/json",
            ), 400

    if request.method == "GET" and authResponse[
            "statusCode"] == 200 and authResponse["isVerified"]:

        userId = authResponse.get("data").get("user_id")

    return app.response_class(
        response=json.dumps({
            "status": "unauthorized",
            "error": authResponse.get("error")
        }),
        mimetype="application/json",
    ), 401
Example #4
0
def joinRoom(data):
    print(request.sid)
    authResponse = authentication()
    print("authRes : ", authResponse)
    if authResponse["statusCode"] == 200 and authResponse["isVerified"]:
        convoId = data.get("conversation_id")
        userId = authResponse.get("data").get("user_id")
        join_room(userId, request.sid, namespace="/memo")
        if convoId is None:

            emit("join", {
                "status": "failure",
                "error": "Invalid request",
                "data": None
            },
                 namespace="/memo",
                 room=userId)

        else:

            userMemosRes = db.fetchUserMemos(userId, convoId)
            if userMemosRes.get("status"):

                emit("join",
                     json.dumps(
                         {
                             "status": "success",
                             "error": None,
                             "data": userMemosRes.get("data")
                         },
                         default=json_util.default),
                     namespace="/memo",
                     room=userId)

                join_room(convoId, request.sid, namespace="/memo")
            else:
                emit("join",
                     json.dumps(
                         {
                             "status": "failure",
                             "error": userMemosRes.get("error"),
                             "data": userMemosRes.get("data")
                         },
                         default=json_util.default),
                     namespace="/memo",
                     room=userId)

        close_room(userId, namespace="/memo")

    else:
        raise ConnectionRefusedError('unauthorized!')
Example #5
0
def fetchUsers(value):
    authResponse = authentication()
    if authResponse["statusCode"] == 200 and authResponse["isVerified"]:
        userId = authResponse.get("data").get("user_id")
        contactRes = db.getContactDetails(value, userId)

        return app.response_class(
            response=json.dumps({
                "status": "success",
                "error": None,
                "data": contactRes
            }),
            mimetype="application/json",
        ), 200

    return app.response_class(
        response=json.dumps({
            "status": "unauthorized",
            "error": authResponse.get("error")
        }),
        mimetype="application/json",
    ), 401
Example #6
0
def chat(data):
    authResponse = authentication()
    print("authRes : ", authResponse)
    if authResponse["statusCode"] == 200 and authResponse["isVerified"]:
        memoType = data.get("memo_type")
        msgType = data.get("msg_type")
        transType = data.get("transaction_type")
        memo = data.get("memo")
        sentTime = datetime.now().timestamp()
        convoId = data.get("conversation_id")
        userId = authResponse.get("data").get("user_id")

        if None in [memoType, memo, convoId, userId]:
            join_room(userId, request.sid, namespace="/memo")
            emit("chat", {
                "status": "failure",
                "error": "Invalid request",
                "data": None
            },
                 namespace="/memo",
                 room=userId)
            close_room(userId, namespace="/memo")
        else:
            chatOrTransType = ""
            if memoType == "chat":
                chatOrTransType = msgType
            if memoType == "transaction":
                chatOrTransType = transType
            addMemoRes = db.addMemo(memoType, memo, sentTime, convoId, userId,
                                    chatOrTransType)
            if addMemoRes.get("status"):
                if memoType == "chat":
                    s = "message"

                if memoType == "transaction":
                    s = "amount"

                emit("chat",
                     json.dumps(
                         {
                             "status": "success",
                             "error": None,
                             "data": {
                                 "_id": addMemoRes.get("data"),
                                 "memo_type": memoType,
                                 "type": chatOrTransType,
                                 s: memo,
                                 "sent_time": sentTime,
                                 "conversation_id": convoId,
                                 "sender_id": userId
                             }
                         },
                         default=json_util.default),
                     namespace="/memo",
                     room=convoId)
            else:
                join_room(userId, request.sid, namespace="/memo")
                emit("chat",
                     json.dumps(
                         {
                             "status": "failure",
                             "error": addMemoRes.get("error"),
                             "data": None
                         },
                         default=json_util.default),
                     namespace="/memo",
                     room=userId)
                close_room(userId, namespace="/memo")

    else:
        raise ConnectionRefusedError('unauthorized!')
Example #7
0
def conversation():
    authResponse = authentication()

    if request.method == "POST" and authResponse[
            "statusCode"] == 200 and authResponse["isVerified"]:

        data = request.get_json()
        title = data.get("title")
        participants = data.get("participants")
        desc = data.get("description")

        if None in [title, participants]:
            return app.response_class(
                response=json.dumps({
                    "status": "failure",
                    "error": "Invalid request",
                    "data": None
                }),
                mimetype="application/json",
            ), 400

        userId = authResponse.get("data").get("user_id")
        participants.append(userId)
        addConvoRes = db.addConversation(userId, title, participants, desc)
        if addConvoRes.get("status"):
            return app.response_class(
                response=json.dumps({
                    "status": "success",
                    "error": None,
                    "data": addConvoRes.get("data")
                }),
                mimetype="application/json",
            ), 200
        else:
            return app.response_class(
                response=json.dumps({
                    "status": "failure",
                    "error": addConvoRes.get("error")
                }),
                mimetype="application/json",
            ), 400

    if request.method == "GET" and authResponse[
            "statusCode"] == 200 and authResponse["isVerified"]:

        userId = authResponse.get("data").get("user_id")
        userConvo = db.getUserConversations(userId)

        return app.response_class(response=json.dumps(
            {
                "status": "success",
                "error": None,
                "data": userConvo
            },
            default=json_util.default),
                                  mimetype="application/json"), 200

    return app.response_class(
        response=json.dumps({
            "status": "unauthorized",
            "error": authResponse.get("error")
        }),
        mimetype="application/json",
    ), 401
Example #8
0
def connection():
    authResponse = authentication()
    if request.method == "POST" and authResponse[
            "statusCode"] == 200 and authResponse["isVerified"]:
        data = request.get_json()
        contactId = data.get("contact_id")
        contactsName = data.get("alias_name_contact")

        if contactId is None:
            return app.response_class(
                response=json.dumps({
                    "status": "failure",
                    "error": "Invalid request"
                })), 400

        userId = authResponse.get("data").get("user_id")
        userDetails = db.getUserDetails(userId)
        contactDetails = db.getUserDetails(contactId)
        if not userDetails.get("email_verified") or not contactDetails.get(
                "email_verified"):
            return app.response_class(
                response=json.dumps({
                    "status": "failure",
                    "error": "Email not verified"
                }),
                mimetype="application/json",
            ), 400
        usersName = userDetails.get("first_name") + \
            " "+userDetails.get("last_name")
        if contactsName is None:
            contactsName = contactDetails.get(
                "first_name") + " " + contactDetails.get("last_name")
        addConnRes = db.addConnection(userId, contactId, usersName,
                                      contactsName, True)
        if addConnRes.get("status"):
            return app.response_class(
                response=json.dumps({
                    "status": "success",
                    "error": None
                }),
                mimetype="application/json",
            ), 200

        if not addConnRes.get("status"):
            return app.response_class(
                response=json.dumps({
                    "status": "failure",
                    "error": addConnRes.get("error")
                }),
                mimetype="application/json",
            ), 400

    if request.method == "GET" and authResponse[
            "statusCode"] == 200 and authResponse["isVerified"]:

        userId = authResponse.get("data").get("user_id")
        data = db.getUserConnections(userId)

        if not data.get("status"):

            return app.response_class(response=json.dumps({
                "status":
                "failure",
                "error":
                data.get("error"),
                "data":
                None
            }),
                                      mimetype="application/json"), 400

        return app.response_class(response=json.dumps({
            "status": "success",
            "error": None,
            "data": data.get("data")
        }),
                                  mimetype="application/json"), 200

    return app.response_class(
        response=json.dumps({
            "status": "unauthorized",
            "error": authResponse.get("error")
        }),
        mimetype="application/json",
    ), 401