403Webshell
Server IP : 209.209.40.120  /  Your IP : 216.73.217.112
Web Server : Microsoft-IIS/10.0
System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586
User : NEWWWW$ ( 0)
PHP Version : 8.3.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /framework7/src/pages/store/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /framework7/src/pages/store/ChatModule.js
import firebase, { app } from "firebase";
import * as db from './db';
import moment from 'moment';
import Framework7 from 'framework7/framework7.esm.bundle.js';
import f7 from "framework7-vue/utils/f7";
import message from "framework7-vue/components/message";
import icon from "framework7-vue/components/icon";
import { resolve } from "path";
const ChatModule = {

    state: {

        wallet: 0.00,
        user_payout: 0.00,
        gift: 0.00,
        replyMessageURL:null,
        replyMessage:false,
        noRecordFollowing :false,
        noRecordFollowers :false,
        noRecordElite :false,
        lastFollowersEmail:null,
        lastFollowingEmail:null,
        lastEliteEmail:null,
        delete_photo2: false,
        delete_photo3: false,
        delete_photo4: false,
        delete_photo5: false,
        delete_photo6: false,
        advert_default: null,
        photoStatus: false,
        chatOpen: false,
        appUpdate: false,
        updatePreloader: 0,
        searchResult: 0,
        top_page: false,
        bottom_page: true,
        back_page: false,
        forward_page: true,
        db_reference: null,
        db_cursor: null,
        onesignal_playerID: null,
        sent_by: null,
        received_by: null,
        subscribe_affiliate_friend: false,
        reference: null,
        contacts: [],
        followings: [],
        followers: [],
        elites: [],
        search_contacts: [],
        friends: [],
        friendsMatch: [],
        spotLight: [],
        inspotlight: false,
        friend_requests: [],
        message_count: [],
        chat_messages: [],
        typing_message: 0,
        friend_status: 0,
        block_by_friend: 0,
        members: [],
        user_details: [],
    },
    getters: {
        replyMessageURL: state => state.replyMessageURL,
        replyMessage: state => state.replyMessage,
        lastEliteEmail: state => state.lastEliteEmail,
        lastFollowersEmail: state => state.lastFollowersEmail,
        lastFollowingEmail: state => state.lastFollowingEmail,
        noRecordFollowing: state => state.noRecordFollowing,
        noRecordFollowers: state => state.noRecordFollowers,
        noRecordElite: state => state.noRecordElite,
        wallet: state => state.wallet,
        user_payout: state => state.user_payout,
        gift: state => state.gift,
        delete_photo2: state => state.delete_photo2,
        delete_photo3: state => state.delete_photo3,
        delete_photo4: state => state.delete_photo4,
        delete_photo5: state => state.delete_photo5,
        delete_photo6: state => state.delete_photo6,

        advert_default: state => state.advert_default,
        inspotlight: state => state.inspotlight,
        spotLight: state => state.spotLight,
        photoStatus: state => state.photoStatus,
        chatOpen: state => state.chatOpen,
        friendsMatch: state => state.friendsMatch,
        updatePreloader: state => state.updatePreloader,
        appUpdate: state => state.appUpdate,
        searchResult: state => state.searchResult,
        top_page: state => state.top_page,
        bottom_page: state => state.bottom_page,
        back_page: state => state.back_page,
        forward_page: state => state.forward_page,
        db_reference: state => state.db_reference,
        db_cursor: state => state.db_cursor,
        onesignal_playerID: state => state.onesignal_playerID,
        sent_by: state => state.sent_by,
        received_by: state => state.received_by,
        subscribe_affiliate_friend: state => state.subscribe_affiliate_friend,
        reference: state => state.reference,
        contacts: state => state.contacts,
        followings: state => state.followings,
        followers: state => state.followers,
        elites: state => state.elites,
        search_contacts: state => state.search_contacts,
        friends: state => state.friends,
        members: state => state.members,
        friend_requests: state => state.friend_requests,
        message_count: state => state.message_count,
        chat_messages: state => state.chat_messages,
        typing_message: state => state.typing_message,
        friend_status: state => state.friend_status,
        block_by_friend: state => state.block_by_friend,
        user_details: state => state.user_details,


    },
    mutations: {

         setReplyMessage(state, payload) {
            state.replyMessage= payload;
        },


       setReplyMessageURL(state, payload) {
            state.replyMessageURL= payload;
        },
        
        
         setLastFollowersEmail(state, payload) {
            state.lastFollowersEmail= payload;
        },

          
        setLastFollowingEmail(state, payload) {
            state.lastFollowingEmail= payload;
        },
        
        setLastEliteEmail(state, payload) {
            state.lastEliteEmail= payload;
        },
        


        setNoRecordFollowers(state, payload) {
            state.noRecordFollowers = payload;
        },

         setNoRecordFollowing(state, payload) {
            state.noRecordFollowing = payload;
        },

         setNoRecordElite(state, payload) {
            state.noRecordElite = payload;
        },
        
         setFollowings(state, payload) {
            state.followings = payload;
        },


        setFollowers(state, payload) {
            state.followers = payload;
        },

         setElites(state, payload) {
            state.elites = payload;
        },


        setWallet(state, payload) {
            state.wallet = payload;
        },

        setUserPayout(state, payload) {
            state.user_payout = payload;
        },

        setGift(state, payload) {
            state.gift = payload;
        },



        setInSpotLight(state, payload) {
            state.inspotlight = payload;
        },

        setSpotLight(state, payload) {
            state.spotLight = payload;
        },

        setDeletePhoto2(state, payload) {
            state.delete_photo2 = payload;
        },

        setDeletePhoto3(state, payload) {
            state.delete_photo3 = payload;
        },

        setDeletePhoto4(state, payload) {
            state.delete_photo4 = payload;
        },
        setDeletePhoto5(state, payload) {
            state.delete_photo5 = payload;
        },
        setDeletePhoto6(state, payload) {
            state.delete_photo6 = payload;
        },

        setAdvertDefault(state, payload) {
            state.advert_default = payload;
        },

        setReceivedBy(state, payload) {
            state.received_by = payload;
        },
        setPhotoStatus(state, payload) {
            state.photoStatus = payload;
        },
        setChatOpen(state, payload) {
            state.chatOpen = payload;
        },
        setFriendsMatch(state, payload) {
            state.friendsMatch = payload;
        },
        setAppUpdate(state, payload) {
            state.appUpdate = payload;
        },

        setSearchResult(state, payload) {
            state.searchResult = payload;
        },

        setUpdatePreloader(state, payload) {
            state.updatePreloader = payload;
        },

        setTopPage(state, payload) {
            state.top_page = payload;
        },
        setBottomPage(state, payload) {
            state.bottom_page = payload;
        },
        setBackPage(state, payload) {
            state.back_page = payload;
        },
        setForwardPage(state, payload) {
            state.forward_page = payload;
        },
        setDbReference(state, payload) {
            state.db_reference = payload;
        },
        setDbCursor(state, payload) {

            state.db_cursor = payload;
        },
        setOnesignalPlayerID(state, payload) {

            state.onesignal_playerID = payload;
        },
        setSentBy(state, payload) {

            state.sent_by = payload;
        },
        setSubscribeAffiliateFriend(state, payload) {
            state.subscribe_affiliate_friend = payload;
        },
        setReference(state, payload) {
            state.reference = payload;
        },

        setSearchContacts(state, payload) {
            state.search_contacts = payload;
        },
        setContacts(state, payload) {
            state.contacts = payload;
        },
        setFriends(state, payload) {
            state.friends = payload;
        },
        setMembers(state, payload) {
            state.members = payload;
        },
        setFriendRequests(state, payload) {
            state.friend_requests = payload;
        },
        setMessageCount(state, payload) {
            state.message_count = payload;
        },
        setChatMessages(state, payload) {
            state.chat_messages = payload
        },
        setTypingMessage(state, payload) {

            state.typing_message = payload
        },
        setFriendStatus(state, payload) {

            state.friend_status = payload
        },
        setBlockByFriend(state, payload) {
            state.block_by_friend = payload
        },
        setUserDetails(state, payload) {
            state.user_details = payload
        },
    },
    actions: {

       
            convertTextToImage({ }, payload) {

            var promise = new Promise((resolve, reject) => {
               
                var postData = payload

                Framework7.request.post(
                    "https://penpalamerica.com/penpal/penpaltexttoimage.php",
                    postData,
                    function (data) {
                         resolve(data)
                        }
                )

                })

                return promise
            },

    
         getFollowers({ commit }, payload) {

            var promise = new Promise((resolve, reject) => {
               
                var postData = payload

                Framework7.request.post(
                    "https://penpalamerica.com/penpal/penpalfollowers.php",
                    postData,
                    function (data) {
                       // console.log(data)
                       if(data !="#"){
                        var obj = JSON.parse(data);

                        commit('setFollowers', obj)
                        commit("setNoRecordFollowers", false);
                        commit("setLastFollowersEmail", obj[0].email);
                        resolve(obj[0].email)
                       }else{

                        commit("setNoRecordFollowers", true);
                         resolve(data)

                       }

                    }
                )

                })
            },

        
        getElites({ commit }, payload) {

            var promise = new Promise((resolve, reject) => {
               
                var postData = payload

                Framework7.request.post(
                    "https://penpalamerica.com/penpal/penpalelites.php",
                    postData,
                    function (data) {
                       
                       if(data != "#"){
                        var obj = JSON.parse(data);

                        commit("setElites", obj);
                        commit("setLastEliteEmail", obj[0].email);
                        commit("setNoRecordElite", false);

                        resolve(obj[0].email)
                       }else{

                        commit("setNoRecordFollowers", true);
                         resolve(data)

                       }

                    }
                )

                })
            },




        getFollowing({ commit }, payload) {

            var promise = new Promise((resolve, reject) => {
               
                var postData = payload

                Framework7.request.post(
                    "https://penpalamerica.com/penpal/penpalfollowing.php",
                    postData,
                    function (data) {
                       // console.log(data)
                       if(data.length>0){
                        var obj = JSON.parse(data);

                        commit('setFollowings', obj)
                        commit("setNoRecordFollowing", false);
                        commit("setLastFollowingEmail", obj[0].email);
                        resolve(obj[0].email)
                       }else{

                        commit("setNoRecordFollowing", true);
                         resolve(data)

                       }

                    }
                )

                })
            },


        getWallet({ commit }, payload) {

            var promise = new Promise((resolve, reject) => {
                var payload2 = {}
                payload2.domain = payload.domain
                payload2.email = payload.email;
                var postData = payload2

                Framework7.request.post(
                    "https://penpalamerica.com/penpal/penpalwallet.php",
                    postData,
                    function (data) {
                        //console.log(data)
                        var obj = JSON.parse(data);

                        commit('setWallet', obj)
                        resolve(data)
                    }
                )


                Framework7.request.post(
                    "https://penpalamerica.com/penpal/penpaluserpayout.php",
                    postData,
                    function (data) {
                        // console.log("nosa nosa nosa",data)
                        var obj = JSON.parse(data);

                        commit('setUserPayout', obj)
                        resolve(data)
                    }
                )



                Framework7.request.post(
                    "https://penpalamerica.com/penpal/penpalgift.php",
                    postData,
                    function (data) {
                        // console.log(data)
                        var obj = JSON.parse(data);

                        commit('setGift', obj)
                        resolve(data)
                    }
                )

            })
            return promise

        },




        getAdvertDefault({ commit }) {

            var promise = new Promise((resolve, reject) => {
                var payload = {}
                payload.domain = "penpalamerica.com";
                var postData = payload

                Framework7.request.post(
                    "https://penpalamerica.com/penpal/penpaladverts.php",
                    postData,
                    function (data) {
                        var obj = JSON.parse(data);

                        commit('setAdvertDefault', obj)
                        resolve(data)

                    }
                )

            })
            return promise

        },


        async getAdvertCountry({ commit, dispatch }) {
            commit('setAdvertCountry', myAdverts)

        },



        unMatchUser({ }, payload) {
            var promise = new Promise((resolve, reject) => {
                var postData = payload

                Framework7.request.post(
                    "https://penpalamerica.com/penpal/penpalunmatch.php",
                    postData,
                    function (data) {
                        //console.log("unmatch user", data)
                        resolve(data)

                    }
                );

            })
            return promise
        },


        sendEmailNotificationLike({ }, payload) {
            var promise = new Promise((resolve, reject) => {
                var postData = payload

                Framework7.request.post(
                    "https://penpalamerica.com/penpal/penpalemailnotificationlike.php",
                    postData,
                    function (data) {
                        //console.log("message notification match", data)
                        resolve(data)

                    }
                );

            })
            return promise
        },




        sendEmailNotificationMatch({ }, payload) {
            var promise = new Promise((resolve, reject) => {
                var postData = payload

                Framework7.request.post(
                    "https://penpalamerica.com/penpal/penpalemailnotificationmatch.php",
                    postData,
                    function (data) {
                        //console.log("message notification match", data)
                        resolve(data)

                    }
                );

            })
            return promise
        },




        sendEmailNotification({ }, payload) {
            var promise = new Promise((resolve, reject) => {
                var postData = payload

                Framework7.request.post(
                    "https://penpalamerica.com/penpal/penpalemailnotification.php",
                    postData,
                    function (data) {
                        // console.log("message notification", data)
                        resolve(data)

                    }
                );

            })
            return promise
        },



        resetPassword({ }, payload) {
            var promise = new Promise((resolve, reject) => {
                var postData = {
                    email: payload.email,
                    domain: payload.domain
                };

                Framework7.request.post(
                    "https://penpalamerica.com/penpal/penpalsendpasswordreset.php",
                    postData,
                    function (data) {

                        resolve(data)

                    }
                );

            })
            return promise
        },

        async sendOneSignalToken({ }, payload) {

            var postData = {
                playerID: payload.playerID,
                pushToken: payload.pushToken,
                email: payload.email,
                domain: payload.domain,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpalonesignal.php",
                postData,
                function (data) {




                }
            )
        },


        async getUserNotifications({ commit }, payload) {

            var postData = {

                domain: payload.domain,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpalnotifications.php",
                postData,
                function (data) {

                    var obj = JSON.parse(data);
                    commit('setUserNotifications', obj)

                }
            )
        },

        updateUserProfile({ commit }, payload) {
            var promise = new Promise((resolve, reject) => {
                var postData = {
                    name: payload.name,
                    profileMessage: payload.profileMessage,
                    location: payload.location,
                    email: payload.email,
                    domain: payload.domain,
                    photo_url1: payload.photo_url1,
                };

                Framework7.request.post(
                    "https://penpalamerica.com/penpal/penpalupdateuserprofile.php",
                    postData,
                    function (data) {

                        resolve(data)

                    }
                );

            })
            return promise
        },


        updateUserStatus({ commit }, payload) {

            var postData = {
                email: payload.email,
                domain: payload.domain,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpalupdateuserstatus.php",
                postData,
                function (data) {
                    var obj = JSON.parse(data);
                    //  commit("setFriends", obj);

                }
            );


        },


        addSpotLight({ commit }, payload) {

            var postData = {
                email: payload.email,
                domain: payload.domain,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpaladdspotlight.php",
                postData,
                function (data) {
                    var obj = JSON.parse(data);
                    if (data == "0")
                        commit("setAlertMessage", "Your profile added to spotlight")

                    //commit("setFriends", obj);

                }
            );


        },




        removeSpotLight({ commit }, payload) {

            var postData = {
                email: payload.email,
                domain: payload.domain,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpalremovespotlight.php",
                postData,
                function (data) {
                    var obj = JSON.parse(data);
                    if (data == "0")
                        commit("setAlertMessage", "Your profile has been removed from spotlight")

                    //commit("setFriends", obj);

                }
            );


        },



        userInSpotLight({ commit }, payload) {

            var postData = {
                email: payload.email,
                domain: payload.domain,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpalgetsportlight.php",
                postData,
                function (data) {
                   
                    var obj = JSON.parse(data);
                    if (data == "1")
                        commit("setInSpotLight", true);
                    else
                        commit("setInSpotLight", false);

                }
            );


        },

        getFriendSpotLight({ commit }, payload) {


            var postData = {
                email: payload.email,
                domain: payload.domain,
            };


            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpalspotlight.php",
                postData,
                async function (data) {
                     //console.log(data)
                    var obj = JSON.parse(data);
                    await commit("setSpotLight", obj);

                }
            );

        },


        getFriendList({ commit }, payload) {

            var postData = {
                email: payload.email,
                domain: payload.domain,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpalfriends.php",
                postData,
                function (data) {
                    if(data !="#"){
                    var obj = JSON.parse(data);
                    commit("setFriends", obj);

                    }

                }
            );


        },

        getFriendMatch({ commit }, payload) {


            var postData = {
                email: payload.email,
                domain: payload.domain,
            };


            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpalmatchtable.php",
                postData,
                async function (data) {
                    if(data !="#"){
                    var obj = JSON.parse(data);
                    await commit("setFriendsMatch", obj);
                    }

                }
            );

        },
        deleteOldAccount({ commit }, payload) {

            return
            // User deleted.
            var ref = firebase.database().ref(
                "users/".concat(payload, "/")
            );
            ref.remove();

            commit("setAlertMessage", "Please Verify Your Email")
        },


        async checkUserExistsAmerica({ dispatch }, payload) {

            var myContacts = []
            var promise = new Promise((resolve, reject) => {
                firebase.database().ref('users').orderByValue().on('value', function (snapshot) {
                    var members = snapshot.val()



                    for (var member in members) {


                        if (members[member].email === payload.email) {


                            var tempUser = {}
                            var myString = members[member].photo
                            if (myString.includes('https://firebasestorage.googleapis.com/v0/b/penpalamerica.appspot.com/o/image_profile')) {
                                tempUser.photoUpload = true
                            }
                            else {
                                tempUser.photoUpload = false
                            }

                            tempUser.uid = members[member].uid,
                                tempUser.password = payload.password,
                                tempUser.country = members[member].country,
                                tempUser.name = members[member].name,
                                tempUser.email = members[member].email,
                                tempUser.gender = members[member].gender,
                                tempUser.phonenumber = members[member].phonenumber,
                                tempUser.location = members[member].location,
                                tempUser.profileMessage = members[member].profileMessage,
                                tempUser.birthDate = members[member].birthDate,
                                tempUser.emailverified = false,
                                tempUser.photo_url = members[member].photo,
                                tempUser.userType = members[member].userType,
                                tempUser.userStatus = members[member].userStatus,
                                tempUser.lastSeen = members[member].lastSeen,
                                tempUser.userToken = members[member].userToken,
                                tempUser.dateCreated = members[member].lastSeen,
                                tempUser.payout = "0",
                                tempUser.pageSize = 3,
                                tempUser.serviceExpiration = members[member].serviceExpiration


                            myContacts.push(tempUser)

                            break;
                        }
                    }

                    resolve(myContacts)
                })
            })

            return promise

        },


        async sendLatestMessage({ dispatch }, payload) {

            var user_id = firebase.auth().currentUser.uid
            var user_key = payload.userkey;
            var frd_id = payload.friend.uid;
            var frd_key = payload.friend.frd_key;
            var latest_message = '';
            let messcount = await dispatch("getUserMessageCount", payload)
            if (messcount != null) {
                if (isNaN(messcount)) {
                    messcount = 0
                } else {
                    messcount++
                }
            } else {
                messcount = 0
            }
            if (payload.img != null) {
                latest_message = 'photo'
            } else {
                latest_message = payload.msg
            }

            try {
                //  if (latest_message != null && frd_id != null) {
                //  await db.firefriends.child(user_id)
                //  .child(frd_key)////
                //.update({
                //latest_message: latest_message,
                //uid: frd_id
                //})
                // }

                if (latest_message != null && frd_id != null) {
                    await db.firefriends.child(frd_id)
                        .child(user_key)
                        .update({
                            message_count: messcount,
                            latest_message: latest_message,
                            uid: user_id
                        })
                }

            } catch (error) {

            }

        },




        getOnesignalPlayerIDPlus({ commit }, payload) {
            var promise = new Promise((resolve, reject) => {

                var postData = {
                    email: payload.email,
                    domain: payload.domain,
                };

                Framework7.request.post(
                    "https://penpalamerica.com/penpal/penpalgetonesignal.php",
                    postData,
                    function (data) {
                        //console.log("one signal chatmodule ", data)

                        if (data != "0") {
                            resolve(data);
                        } else {
                            resolve(null);
                        }

                    }
                )
            })
            return promise
        },



        getOnesignalPlayerID({ commit }, payload) {

            var postData = {
                email: payload.email,
                domain: payload.domain,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpalgetonesignal.php",
                postData,
                function (data) {
                    //console.log("one signal chatmodule ", data)

                    if (data != "0") {
                        commit("setOnesignalPlayerID", data);
                    } else {
                        commit("setOnesignalPlayerID", null);
                    }

                }
            )

        },

        getFriendAffiliate({ commit }, payload) {

            var frd_uid = payload;
            //var promise = new Promise((resolve, reject) => {
            firebase.database().ref('pay4me').child(frd_uid).once('value', snapshot => {
                //var members = snapshot.val()

                if (snapshot.val() != null && snapshot.val() != undefined) {

                    commit("setSubscribeAffiliateFriend", true);
                } else {

                    commit("setSubscribeAffiliateFriend", false);
                }


            })
            //})
            //return promise
        },


        updateReadMessage({ dispatch }, payload) {

            var user_uid = firebase.auth().currentUser.uid
            var user_key = payload.userkey;
            var frd_uid = payload.uid;
            var frd_key = payload.frd_key;
            var latest_message = '';


            var current_user = firebase.auth().currentUser
            db.firechats.child(frd_uid).child(user_uid).on('value', snapshot => {
                var messages = snapshot.val()


                _.forEach(messages, (message, key) => {
                    // _.forEach(messages, message => {

                    try {
                        db.firechats.child(frd_uid)
                            .child(user_uid)////
                            .child(key)////
                            .update({
                                read: "2"
                            })
                    } catch (error) {
                        console.log(error)
                    }


                })


            })





        },


        async resetMessageCount({ }, payload) {

            var postData = {
                email_u: payload.email_u,
                email_f: payload.email_f,
                domain: payload.domain,
            };


            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpaltotalmessagesupdate.php",
                postData,
                async function (data) {
                    // commit("setTotalMessage", data)
                    // console.log("data resetmessage", data)
                }
            );






        },






        getUserMessageCount({ }, payload) {

            var promise = new Promise((resolve, reject) => {
                var frd_id = payload.friend.uid;
                var userkey = payload.userkey;
                db.firefriends.child(frd_id).child(userkey)
                    .once('value', snapshot => {
                        if (snapshot.val()) {
                            resolve(snapshot.val().message_count)
                        } else {
                            resolve("0")
                        }
                    })
                    .catch(err => {
                        reject(err)
                    })
            })
            return promise
        },



        confirmFriendRequest({ dispatch }, payload) {
            try {
                db.firefriends.child(firebase.auth().currentUser.uid)
                    .push({
                        uid: payload.friend.uid,
                        message_count: "0",
                        latest_message: " ",
                    })

                db.firefriends.child(payload.friend.uid)
                    .push({
                        message_count: "0",
                        latest_message: " ",
                        uid: firebase.auth().currentUser.uid

                    })
            } catch (error) {
                reject(err)
            }
            //})
            let result = "010220"
            return result
        },



        createFriendTables({ dispatch }, payload) {

            try {
                var userKey = db.firefriends.child(firebase.auth().currentUser.uid).push().key
                db.firefriends.child(firebase.auth().currentUser.uid).child(userKey)
                    .update({
                        uid: payload.friend.uid,
                        message_count: "0",
                        latest_message: " ",
                    })

                db.firefriends.child(payload.friend.uid).child(userKey)
                    .update({
                        message_count: "0",
                        latest_message: " ",
                        uid: firebase.auth().currentUser.uid

                    })

            } catch (error) {
                console.log(error)
            }
            //})

            return userKey
        },

        async sendDownTypingMessage({ }, payload) {


            var postData = {
                email_u: payload.email_u,
                email_f: payload.email_f,
                type: "1",
                domain: payload.domain,
            };


            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpaltyping.php",
                postData,
                async function (data) {


                }
            );


        },


        async sendUpTypingMessage({ }, payload) {


            var postData = {
                email_u: payload.email_u,
                email_f: payload.email_f,
                type: "0",
                domain: payload.domain,
            };


            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpaltyping.php",
                postData,
                async function (data) {

                }
            );


        },




        getTypingMessages({ commit }, payload) {


            if ((payload.email_u != null) && (payload.email_f != null)) {

                var postData = {
                    email_u: payload.email_u,
                    email_f: payload.email_f,
                    domain: payload.domain,
                };


                Framework7.request.post(
                    "https://penpalamerica.com/penpal/penpaltypingcommit.php",
                    postData,
                    async function (data) {


                        if (data == "1") {

                            commit('setSentBy', payload.email_u)
                            commit('setReceivedBy', payload.email_f)
                            commit('setTypingMessage', "1")
                        }//end of 1


                        if (data == "2") {
                            commit('setSentBy', payload.email_f)
                            commit('setReceivedBy', payload.email_u)
                            commit('setTypingMessage', "1")
                        }//end of 2


                        if (data == "3") {
                            commit('setSentBy', payload.email_u)
                            commit('setReceivedBy', payload.email_f)
                            commit('setSentBy', payload.email_f)
                            commit('setReceivedBy', payload.email_u)
                            commit('setTypingMessage', "1")
                        }//end of 3

                        if (data == "0") {
                            commit('setTypingMessage', "0")
                        }//end of 3

                    }


                );
            }


        },

        getUserKey({ }, payload) {
            var promise = new Promise((resolve, reject) => {
                var frd_id = payload.friend.uid;
                db.firefriends.child(frd_id).orderByChild("uid")
                    .equalTo(firebase.auth().currentUser.uid)
                    .once('value', snapshot => {
                        let userkey;
                        for (var key in snapshot.val()) userkey = key;
                        resolve(userkey)
                    })
                    .catch(err => {
                        reject(err)

                    })
            })
            return promise

        },




        getUserMessageCount2({ }, payload) {

            var promise = new Promise((resolve, reject) => {

                var frd_id = payload.friend.uid;
                var userKey = payload.friend.userKey;
                db.firemessagecount.child(frd_id).child(userKey).orderByChild("uid")
                    .equalTo(firebase.auth().currentUser.uid)
                    .on('value', snapshot => {
                        resolve(snapshot.message_count)
                    })
                    .catch(err => {
                        reject(err)

                    })
            })
            return promise

        },


        async getChatMessagesPlus({ dispatch, commit }, payload) {
            // var current_user = firebase.auth().currentUser


            var postData = {
                email_u: payload.email_u,
                email_f: payload.email_f,
                domain: payload.domain //payload.domain,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpalgetmessages.php",
                postData,
                function (data) {
                    var messages = JSON.parse(data);
                    var new_date = ""
                    _.forEach(messages, message => {

                        message.type = message.sentby == payload.email_u ? 'sent' : 'received';
                        message.name = message.sentby == payload.email_u ? message.myName : message.myFriendName;
                        message.date = moment(message.datecreated).format("MMMM Do dddd");
                        message.smalldate = moment(message.datecreated).format("LTS");
                        if (message.sentby == payload.email_u) {
                            message.status = "1"
                        } else {
                            message.status = "0"
                        }

                        new_date = message.datecreated
                    })
                    var groupedmessages = _.groupBy(messages, 'date')

                    var last_update = sessionStorage.getItem('last_update');
                    var friend_email = sessionStorage.getItem('friend_email');
                    // console.log("last_update", last_update)
                    // console.log("new_date", new_date)
                    if ((new_date > last_update) && (friend_email == payload.email_f)) {
                        // console.log("******last_update2", last_update)
                        commit('setChatMessages', groupedmessages)
                        commit('setSentBy', message.email_u)
                        sessionStorage.setItem('last_update', new_date);

                    }


                }
            );

        },





        
        async getChatMessagesPromise({ dispatch, commit }, payload) {
            // var current_user = firebase.auth().currentUser
            var promise = new Promise((resolve, reject) => {

            var postData = {
                email_u: payload.email_u,
                email_f: payload.email_f,
                domain: payload.domain //payload.domain,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpalgetmessages.php",
                postData,
                function (data) {
                    
                    var messages = JSON.parse(data);
                    var new_date = ""
                    _.forEach(messages, message => {

                        message.type = message.sentby == payload.email_u ? 'sent' : 'received';
                        message.name = message.sentby == payload.email_u ? message.myName : message.myFriendName;
                        message.date = moment(message.datecreated).format("MMMM Do dddd");
                        message.smalldate = moment(message.datecreated).format("LTS");
                        if (message.sentby == payload.email_u) {
                            message.status = "1"
                        } else {
                            message.status = "0"
                        }

                        new_date = message.datecreated
                    })
                    var groupedmessages = _.groupBy(messages, 'date')

                  
                        commit('setChatMessages', groupedmessages)
                        commit('setSentBy', message.email_u)
                    
                        resolve(groupedmessages)
                       

                }
            );

            return promise
            })

        },


        async getChatMessages({ dispatch, commit }, payload) {
            // var current_user = firebase.auth().currentUser
             //console.log("deleted")

            var postData = {
                email_u: payload.email_u,
                email_f: payload.email_f,
                domain: payload.domain //payload.domain,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpalgetmessages.php",
                postData,
                function (data) {
                    var messages = JSON.parse(data);
                    var message_update = ""
                    _.forEach(messages, message => {

                        message.type = message.sentby == payload.email_u ? 'sent' : 'received';
                        message.name = message.sentby == payload.email_u ? message.myName : message.myFriendName;
                        message.date = moment(message.datecreated).format("MMMM Do dddd");
                        message.smalldate = moment(message.datecreated).format("LTS");
                        if (message.sentby == payload.email_u) {
                            message.status = "1"
                        } else {
                            message.status = "0"
                        }

                        message_update = message.datecreated
                    })
                    var groupedmessages = _.groupBy(messages, 'date')

                    //console.log("######################", message_update)
                    sessionStorage.setItem('last_update', message_update);
                    sessionStorage.setItem('friend_email', payload.email_f);


                    commit('setChatMessages', groupedmessages)
                    commit('setSentBy', message.email_u)


                }
            );

        },



        resetTotalNotify({ commit }, payload) {
            //console.log("Totatmessages", payload.email);
            var postData = {
                email: payload.email,
                domain: payload.domain,
            };


            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpalresettotalnotifications.php",
                postData,
                async function (data) {
                    //console.log("moses", data)
                    commit("setTotalNotify", 0)
                }
            );


        },


        getTotalNotify({ commit }, payload) {
            //console.log("Totatmessages", payload.email);
            var postData = {
                email: payload.email,
                domain: payload.domain,
            };


            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpaltotalnotifications.php",
                postData,
                async function (data) {
                    //console.log("moses", data)
                    commit("setTotalNotify", data)
                }
            );


        },



        getTotalMessage({ commit }, payload) {
            // console.log("Totatmessages", payload.email);
            var postData = {
                email: payload.email,
                domain: payload.domain,
            };


            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpaltotalmessages.php",
                postData,
                async function (data) {
                    commit("setTotalMessage", data)
                }
            );


        },




        confirmRequest({ dispatch }, payload) {
            var promise = new Promise((resolve, reject) => {
                db.firefriends.child(firebase.auth().currentUser.uid)
                    .push({ uid: payload.uid })
                    .then(() => {
                        db.firefriends.child(payload.uid)
                            .push({ uid: firebase.auth().currentUser.uid })
                    })
                    .then(() => {
                        dispatch('deleteRequest', payload).then(() => {
                            resolve(true)
                        })
                    })
                    .catch(err => {
                        reject(err)
                    })
            })
            return promise
        },
        deleteRequest({ }, payload) {
            var promise = new Promise((resolve, reject) => {
                db.firerequest.child(firebase.auth().currentUser.uid)
                    .orderByChild('sender')
                    .equalTo(payload.uid)
                    .once('value', snapshot => {
                        let userkey;
                        for (var key in snapshot.val()) userkey = key
                        db.firerequest.child(firebase.auth().currentUser.uid)
                            .child(userkey)
                            .remove()
                            .then(() => {
                                resolve(true)
                            })
                            .catch(err => {
                                reject(err)
                            })

                    }).catch(err => {
                        reject(err)
                    })
            })
            return promise
        },
        async getMyRequests({ commit, dispatch }) {
            var users = await dispatch('getAllUsers')
            db.firerequest.child(firebase.auth().currentUser.uid)
                .on('value', snapshot => {

                    var frd_request_id = _.map(snapshot.val(), "sender")
                    var userdetails = []
                    _.forEach(frd_request_id, uid => {
                        var user = _.find(users, ["uid", uid])
                        userdetails.push(user)
                    })
                    commit('setFriendRequests', userdetails)
                })
        },

      
      


        async sendMessage({ commit, dispatch }, payload) {

           // console.log("sendMessage", payload)

            var postData = {
                email_f: payload.email_f,
                message: payload.msg,
                image_url: payload.img,
                email_u: payload.email_u,
                domain: payload.domain,
                sentby: payload.sentby,
                messageType:payload.messageType,
            };


            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpalchatmessages.php",
                postData,
                async function (data) {

                    //console.log(data)
                    var obj = JSON.parse(data);

                    dispatch("getChatMessages", payload);
                }, function (err) {
                    commit(
                        "setAlertMessage",
                        "Network Issue. Please check your internet connection and  try again"
                    );
                }
            );


        },



        sendNotificationPlus({ }, payload) {
            // console.log("playload onesignal", payload)
            var onesignal_playerID = payload.onesignal_playerID
            var onesignal_message = payload.message
            var photoUrl = payload.photo_url1
            // console.log("photo", photoUrl)
            var message = {
                app_id: "1bdd80c5-cabb-4296-9e59-ef5fa8638eed",
                contents: { en: onesignal_message },
                headings: { en: 'penpalamerica.com' },
                large_icon: photoUrl,
                include_player_ids: [onesignal_playerID],
            };

            // console.log(message)
            var headers = {
                "Content-Type": "application/json; charset=utf-8"
            };

            var options = {
                host: "onesignal.com",
                port: 443,
                path: "/api/v1/notifications",
                method: "POST",
                headers: headers
            };

            var https = require('https');
            var req = https.request(options, function (res) {
                res.on('data', function (message) {

                });
            });

            req.on('error', function (e) {

                console.log(e);
            });

            req.write(JSON.stringify(message));
            req.end();
        },









        sendNotification({ }, payload) {
            // console.log("playload onesignal", payload)
            var onesignal_playerID = payload.onesignal_playerID
            var onesignal_message = payload.message

            var message = {
                app_id: "d020a469-2d65-4261-89b1-e46983faf44c",
                contents: { en: onesignal_message },
                include_player_ids: [onesignal_playerID],
            };


            var headers = {
                "Content-Type": "application/json; charset=utf-8"
            };

            var options = {
                host: "onesignal.com",
                port: 443,
                path: "/api/v1/notifications",
                method: "POST",
                headers: headers
            };

            var https = require('https');
            var req = https.request(options, function (res) {
                res.on('data', function (message) {

                });
            });

            req.on('error', function (e) {

                console.log(e);
            });

            req.write(JSON.stringify(message));
            req.end();
        },



        getMyFriendsList({ }, payload) {
            var promise = new Promise((resolve, reject) => {
                var frd_id = payload.friend.uid;
                db.firefriends.child(frd_id).orderByChild("uid")
                    .equalTo(firebase.auth().currentUser.uid)
                    .once('value', snapshot => {
                        let userkey = null;
                        for (var key in snapshot.val()) userkey = key;
                        resolve(userkey)

                    })
                    .catch(err => {
                        reject(err)

                    })
            })
            return promise

        },


        checkUserExists2({ }, payload) {

            var promise = new Promise((resolve, reject) => {

                firebase.database().ref('appState').child(payload).on('value', snapshot => {


                    if (snapshot.val() != null && snapshot.val() != undefined) {

                        resolve("OK")
                    } else {

                        resolve("#")

                    }


                })

            })
            return promise

        },

        checkUserExists({ }, payload) {

            var promise = new Promise((resolve, reject) => {
                firebase.database().ref('users').orderByValue().on('value', function (snapshot) {
                    var members = snapshot.val()

                    var myContacts = []
                    _.forEach(members, member => {
                        if (member.country == payload) {

                            myContacts.push(member)

                        }
                    })

                    resolve(myContacts)
                })
            })

            return promise

        },

        async getAllUsers({ commit, dispatch }) {
            //var user_id = firebase.auth().currentUser.uid
            var payload = []
            // payload.name = await dispatch("getUserCountry")
            var promise = new Promise((resolve, reject) => {
                firebase.database().ref('users').orderByValue().on('value', function (snapshot) {
                    var members = snapshot.val()
                    var myContacts = []
                    _.forEach(members, member => {
                        //if (member.country == payload.name) {
                        if (firebase.auth().currentUser.uid !== member.uid) {
                            myContacts.push(member)
                        }
                        //}
                    })
                    commit('setContacts', myContacts)
                    //resolve(snapshot.val()) 
                    resolve(myContacts)
                })
            })
            return promise

        },


        mergeMessages({ }, payload) {
            //var user_id = firebase.auth().currentUser.uid

            var promise = new Promise((resolve, reject) => {
                var current_user = firebase.auth().currentUser
                var messages1 = {}
                db.firechats.child(current_user.uid).child(payload.uid).on('value', snapshot => {

                    resolve(snapshot.val())
                })
            })
            return promise

        },


        mergeMessagesFriend({ }, payload) {

            var promise = new Promise((resolve, reject) => {
                var current_user = firebase.auth().currentUser
                db.firechats.child(payload.uid).child(current_user.uid).on('value', snapshot => {
                    resolve(snapshot.val())
                })
            })
            return promise

        },
        getMessageCount({ commit }) {
            var promise = new Promise((resolve, reject) => {
                firebase.database().ref('users').child(firebase.auth().currentUser.uid).once('value', snapshot => {

                    resolve(snapshot.val().country)

                })
            })
            return promise
        },

        checkUserInFriendList({ commit }, payload) {
            var user_uid = firebase.auth().currentUser.uid
            if (payload.frd_key == null) {
                commit("setAlertMessage", "User not in your friend list")
                return
            }
            var frd_key = payload.frd_key
            var promise = new Promise((resolve, reject) => {
                db.firefriends.child(user_uid).child(frd_key)
                    .once('value', snapshot => {
                        if (snapshot.val()) {
                            resolve(snapshot.val().message_count)
                        }
                    })
                    .catch(err => {
                        reject(err)
                    })
            })
            return promise
        },

        async blockUser({ commit, dispatch }, payload) {

            var postData = {
                email_u: payload.email_u,
                email_f: payload.email_f,
                domain: payload.domain,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpaladdblockuser.php",
                postData,
                function (data) {
                    //console.log(data)
                    if (data == "0") {
                        commit("setAlertMessage", "User has been blocked")
                    } else {
                        commit("setAlertMessage", "User cannot be blocked now. Please try again later")
                    }


                }
            );

        },


        async unBlockUser({ commit, dispatch }, payload) {

            var postData = {
                email_u: payload.email_u,
                email_f: payload.email_f,
                domain: payload.domain,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpalunblockuser.php",
                postData,
                function (data) {
                    if (data == "0") {
                        commit("setAlertMessage", "User has been un-blocked")
                    } else {
                        commit("setAlertMessage", "User cannot be un-blocked now. Please try again later")
                    }


                }
            );
        },


        async checkUserUnmatch({ commit }, payload) {


            var promise = new Promise((resolve, reject) => {


                var postData = {
                    email_u: payload.email_u,
                    email_f: payload.email_f,
                    domain: payload.domain,
                };

                Framework7.request.post(
                    "https://penpalamerica.com/penpal/penpalgetunmatch.php",
                    postData,
                    function (data) {
                        resolve(data)

                    }
                );

            })
            return promise
        },

        async checkMessageType({ }, payload) {


            var promise = new Promise((resolve, reject) => {


                var postData = {
                    email_u: payload.email_u,
                    email_f: payload.email_f,
                    domain: payload.domain,
                };
                //console.log(payload)
               Framework7.request.post(
                    "https://penpalamerica.com/penpal/penpalcheckmessagetype.php",
                    postData,
                    function (data) {
                        //console.log(data)
                        resolve(data)

                    }
                );

               //resolve("Sender")

            })
            return promise
        },

        async chargeUser({ dispatch}, payload) {


            var promise = new Promise((resolve, reject) => {

                

                var postData = {
                    email_u: payload.email_u,
                    email_f: payload.email_f,
                    domain: payload.domain,
                    pay_amount: payload.amount

                };
                //console.log(payload)
               Framework7.request.post(
                    "https://penpalamerica.com/penpal/penpalchargeusermessage.php",
                    postData,
                    function (data) {
                        //console.log(data)
                        dispatch('getWallet', payload)
                        resolve(data)
                        
                    }
                );

               //resolve("Sender")

            })
            return promise
        },


        async payUser({ dispatch}, payload) {


            var promise = new Promise((resolve, reject) => {

                

                var postData = {
                    email_u: payload.email_u,
                    email_f: payload.email_f,
                    domain: payload.domain,
                    pay_amount: payload.amount

                };
                //console.log(payload)
               Framework7.request.post(
                    "https://penpalamerica.com/penpal/penpalpayuser.php",
                    postData,
                    function (data) {
                         console.log(data)
                        //dispatch('getWallet', payload)
                        resolve(data)
                        
                    }
                );

               //resolve("Sender")

            })
            return promise
        },



        async checkUserBlocked({ commit }, payload) {


            var promise = new Promise((resolve, reject) => {


                var postData = {
                    email_u: payload.email_u,
                    email_f: payload.email_f,
                    domain: payload.domain,
                };

                Framework7.request.post(
                    "https://penpalamerica.com/penpal/penpalgetblockuser.php",
                    postData,
                    function (data) {
                        //  console.log(data)
                        resolve(data)

                    }
                );

            })
            return promise
        },


        async userMigration({ commit, dispatch }) {

            var cnt = 0
            var promise = new Promise((resolve, reject) => {
                firebase.database().ref('users').orderByValue().on('value', function (snapshot) {
                    var members = snapshot.val()
                    var genderSearch = "F"
                    _.forEach(members, (member, key) => {

                        if (member.migrated2 == null) {
                            cnt++
                            if (member.gender == "M") {
                                genderSearch = "F"
                            } else {
                                genderSearch = "M"
                            }

                            var date = new Date(member.dateCreated);
                            var dateCreated =
                                date.getFullYear() +
                                "/" +
                                (date.getMonth() + 1) +
                                "/" +
                                date.getDate() +
                                " " +
                                date.getHours() +
                                ":" +
                                date.getMinutes() +
                                ":" +
                                date.getSeconds();

                            var date = new Date(member.lastSeen);
                            var lastSeen =
                                date.getFullYear() +
                                "/" +
                                (date.getMonth() + 1) +
                                "/" +
                                date.getDate() +
                                " " +
                                date.getHours() +
                                ":" +
                                date.getMinutes() +
                                ":" +
                                date.getSeconds();

                            var postData = {
                                birthDate: member.birthDate,
                                country: member.country,
                                dateCreated: dateCreated,
                                email: member.email,
                                emailverified: member.emailverified,
                                gender: member.gender,
                                genderSearch: genderSearch,
                                lastSeen: lastSeen,
                                location: member.location,
                                name: member.name,
                                phonenumber: member.phonenumber,
                                photoUpload: member.photoUpload,
                                photo_url1: member.photo_url,
                                profileMessage: member.profileMessage,
                                userToken: member.userToken,
                                userType: member.userType,
                                domain: "penpalamerica.com",
                            };


                            setTimeout(httpPost(postData, key), 5000);




                            //end of database
                            cnt++


                        }

                        //}

                    })

                    resolve(cnt)
                })

            })
            return promise
        },



        async checkBlockByFriend({ commit }, payload) {

            if (payload.frd_key == null) {
                var flag = "0"
                commit("setBlockByFriend", flag)
                return flag
            }
            var user_uid = firebase.auth().currentUser.uid
            var frd_uid = payload.uid
            var promise = new Promise((resolve, reject) => {
                db.fireblockfriends.child(frd_uid).child(user_uid)
                    .once('value', snapshot => {
                        if (snapshot.val()) {
                            commit("setBlockByFriend", snapshot.val().flag)
                        }
                        resolve(snapshot.val())
                    })
                    .catch(err => {
                        reject(err)
                    })
            })
            return promise

        },

        async getAllUsersMigration({ commit, dispatch }) {


            //var user_id = firebase.auth().currentUser.uid
            var payload = []
            var cnt = 0;

            var newDate
            var userLastSeen
            // payload.name = await dispatch("getUserCountry")
            var promise = new Promise((resolve, reject) => {
                firebase.database().ref('users').orderByValue().on('value', function (snapshot) {
                    var members = snapshot.val()
                    var cnt = 0
                    _.forEach(members, (member, key) => {


                        //   if (member.userName == null) {




                        if (member.birthDate == null) {

                            if (member.age != null) {
                                newDate = moment().subtract(member.age, 'years').format("YYYY-MM-DD")
                            } else {
                                newDate = moment().subtract(20, 'years').format("YYYY-MM-DD")
                            }

                            //database update
                            firebase
                                .database()
                                .ref("users")
                                .child(key)
                                .update({
                                    name: member.userName,
                                    uid: key,
                                    phonenumber: member.phone,
                                    birthDate: newDate,
                                    emailverified: false,
                                    photo_url: member.photo,
                                    userType: "1",
                                    userStatus: "offline",
                                    lastSeen: firebase.database.ServerValue.TIMESTAMP,
                                    userToken: "web",
                                    dateCreated: firebase.database.ServerValue.TIMESTAMP,
                                    payout: "0",
                                    photoUpload: false,
                                    pageSize: 3,
                                    serviceExpiration: firebase.database.ServerValue.TIMESTAMP,







                                })

                            //end of database
                            cnt++

                            if (cnt > 100) {
                                return false
                            }

                        }

                        //end of else  
                        // }

                    })




                    resolve(cnt)
                })
            })
            return promise
        },



        async reportUserToAdmin({ commit, dispatch }, payload) {


            var postData = {
                email_u: payload.email_u,
                email_f: payload.email_f,
                userAbuse: payload.userAbuse,
                domain: payload.domain,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpalreportuser.php",
                postData,
                function (data) {
                    //console.log(data)
                    if (data == "0") {
                        commit("setAlertMessage", "Your report has been submitted and will be reviewed by admin")
                    } else {
                        commit("setAlertMessage", "Your report cannot be submitted now, please try again later. ")
                    }


                }
            );


        },
        async editPayPal({ commit }, payload) {

            var paypal_email =payload.paypal
            
           

           if( !ValidateEmail(paypal_email)){   
                commit("setAlertMessage", "Your new email is not valid");
                return;

           }

           // console.log(paypal_email);

            var postData = {
                paypal_email: paypal_email,
                domain: payload.domain,
                email: payload.email,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpalupdatepaypal.php",
                postData,
                function (data) {

                    //var obj = JSON.parse(data);
                    if (data == '0') {
                       // commit("setUserLocation", payload.location)
                        commit("setAlertMessage", "Your new PayPal Email has been updated.")
                    } else {
                        commit("setAlertMessage", "Sorry, your new PayPal Email cannot be updated  ")
                    }

                }
            );
        },


        async editLocation({ commit }, payload) {

            if (payload.location.length < 2) {
                commit("setAlertMessage", "Your Location is too short");
                return;
            }

            if (payload.location.length > 50) {
                commit("setAlertMessage", "Your Location is too long");
                return;
            }

            var postData = {
                location: payload.location,
                domain: payload.domain,
                email: payload.email,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpalupdateuserlocation.php",
                postData,
                function (data) {

                    //var obj = JSON.parse(data);
                    if (data == '0') {
                        commit("setUserLocation", payload.location)
                        commit("setAlertMessage", "Your location has been updated.")
                    } else {
                        commit("setAlertMessage", "Sorry, Your location cannot be updated now")
                    }

                }
            );
        },


        async editgenderSearch({ commit }, payload) {
            var postData = {
                genderSearch: payload.genderSearch,
                domain: payload.domain,
                email: payload.email,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpalupdateusergendersearch.php",
                postData,
                function (data) {
                    // console.log("location data", data)
                    //var obj = JSON.parse(data);
                    if (data == '0') {
                        commit("setGenderSearch", payload.genderSearch)
                        commit("setAlertMessage", "Your genderSearch has been updated.")
                    } else {
                        commit("setAlertMessage", "Sorry, Your genderSearch cannot be changed now")
                    }

                }
            );
        },


        async editProfileMessage({ commit }, payload) {

            if (payload.profileMessage.length < 10) {
                commit("setAlertMessage", "profile message is too short");
                return;
            }

            if (payload.profileMessage.length > 200) {
                self.$store.commit("setAlertMessage", "profile message is too long");
                return;
            }

            var postData = {
                profileMessage: payload.profileMessage,
                domain: payload.domain,
                email: payload.email,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpalupdateuserprofilemessage.php",
                postData,
                function (data) {
                    //console.log("location data", data)
                    //var obj = JSON.parse(data);
                    if (data == '0') {
                        commit("setProfileMessage", payload.profileMessage);
                        commit("setAlertMessage", "Your new Profile message has been updated.")
                    } else {
                        commit("setAlertMessage", "Sorry, Your new Profile Message cannot be changed now")
                    }

                }
            );


        },

        getReference({ commit }, payload) {
            let text = "";
            if (payload.domain == "penpalamerica.com") {
                text = "ame"
            }
            if (payload.domain == "penpaleurope.com") {
                text = "eur"
            }
            if (payload.domain == "penpalasia.com") {
                text = "asi"
            }

            if (payload.domain == "penpalafrica.com") {
                text = "afr"
            }

            if (payload.domain == "americanmeets.com") {
                text = "can"
            }

            if (payload.domain == "misscomely.com") {
                text = "mis"
            }



            let possible =
                "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

            for (let i = 0; i < 10; i++)
                text += possible.charAt(Math.floor(Math.random() * possible.length));

            commit("setReference", text)

        },

        async deleteAccount({ commit }, payload) {

            var postData = {

                domain: payload.domain,
                email: payload.email,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpaldeleteuseraccount.php",
                postData,
                function (data) {
                    //console.log("location data", data)
                    //var obj = JSON.parse(data);
                    if (data == '0') {
                        commit("setAlertMessage", "Your Account has been deleted")
                        commit("setShowResendEmail", false)
                        commit("setSignedIn", false);
                    } else {
                        commit("setAlertMessage", "Your Account cannot be deleted now, please try again")
                    }

                }
            );


        },



        async deleteMessage({ dispatch,commit }, payload) {
              var promise = new Promise((resolve, reject) => {

            var postData = {
                message_id: payload.message_id,
                domain: payload.domain,
                email_u: payload.email_u,
                email_f: payload.email_f,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpaldeleteusermessage.php",
                postData,
                function (data) {


                    if (data == '0') {
                         commit("setAlertMessage", "The message has been deleted")
                         dispatch("getChatMessagesPromise", payload);

                    } else {
                        commit("setAlertMessage", "The message could not be deleted now, please try again")
                    }

                

                }


            );
         
            return promise

              })

        },


        
        async deleteMessageMe({ dispatch,commit }, payload) {
              var promise = new Promise((resolve, reject) => {

            var postData = {
                message_id: payload.message_id,
                domain: payload.domain,
                email_u: payload.email_u,
                email_f: payload.email_f,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpaldeleteusermessageme.php",
                postData,
                function (data) {


                    if (data == '0') {
                         commit("setAlertMessage", "The message has been deleted")
                         dispatch("getChatMessagesPromise", payload);

                    } else {
                        commit("setAlertMessage", "The message could not be deleted now, please try again")
                    }

                

                }


            );
         
            return promise

              })

        },


         async deleteMessageMePlus({ dispatch,commit }, payload) {
              var promise = new Promise((resolve, reject) => {

            var postData = {
                message_id: payload.message_id,
                domain: payload.domain,
                email_u: payload.email_u,
                email_f: payload.email_f,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpaldeleteusermessagemeplus.php",
                postData,
                function (data) {


                    if (data == '0') {
                         commit("setAlertMessage", "The message has been deleted")
                         dispatch("getChatMessagesPromise", payload);

                    } else {
                        commit("setAlertMessage", "The message could not be deleted now, please try again")
                    }

                

                }


            );
         
            return promise

              })

        },



        async sendGiftVenus({ commit,dispatch }, payload) {

            //console.log(payload.amount)
            var message_out =""
            if(payload.amount ==100){
               message_out=   "You just received a Venus Gift worths 100 points"
            }

             if(payload.amount ==500){
               message_out=   "You just received a Mars Gift worths  500 points"
            }

             if(payload.amount ==1000){
               message_out=   "You just received a Jupiter Gift worths 1000 points"
            }


            var postData = {

                domain: payload.domain,
                email_u: payload.email_u,
                email_f: payload.email_f,
                pay_amount: payload.amount
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpalsendgiftvenus.php",
                postData,
                function (data) {

                    //console.log("data",data)
                    if (data == '1') {
                        commit("setAlertMessage", "Your wallet is to low to gift " + payload.name + " Top up your account")

                    }

                    if (data == '0') {
                        commit("setAlertMessage", "Venus Gift successful sent to " + payload.name)

                        dispatch("sendMessage", {
                            email_f:  payload.email_f,
                            msg: message_out,
                            img: "",
                            email_u:  payload.email_u,
                            domain:  payload.domain,
                            sentby:  payload.email_u,
                        });

                    } else {
                        commit("setAlertMessage", "Sorry Venue Gifting is not possible now, please try again")
                    }

                }
            );


        },


        async deletePhoto({ commit }, payload) {
            var image_url_default = 'https://penpalamerica.com/images/profilepicture.png'
            var postData = {
                url: payload.url,
                domain: payload.domain,
                email: payload.email,
            };

            Framework7.request.post(
                "https://penpalamerica.com/penpal/penpaldeleteuserphotos.php",
                postData,
                function (data) {
                    //console.log("location data", data)
                    //var obj = JSON.parse(data);
                    var action_name1 = "setDeletePhoto" + payload.url
                    var action_name2 = "setImageURL" + payload.url
                    if (data == '0') {
                        commit("setAlertMessage", "Your Photo has been deleted")
                        commit(action_name1, false);
                        commit(action_name2, image_url_default)
                    } else {
                        commit("setAlertMessage", "Your Photo cannot be deleted now, please try again")
                    }

                }
            );


        },


        addModerator({ commit }, payload) {


            var ref = firebase.database().ref('users/' + payload);
            ref.update({
                userType: "2",
            });

            var ref = firebase.database().ref('userProfile/' + payload);
            ref.update({
                userType: "2",
            });

            commit("setAlertMessage", "User Account has been changed to Moderator")
        },

        removeModerator({ commit }, payload) {
            var ref = firebase.database().ref('users/' + payload);
            ref.update({
                userType: "1",
            });

            var ref = firebase.database().ref('userProfile/' + payload);
            ref.update({
                userType: "1",
            });

            commit("setAlertMessage", "Moderator Profile has been removed from your Account")
        },



        async getAllUsersNew({ commit, dispatch }) {

            var ref = firebase.database().ref("/users");
            commit('setDbReference', ref)
            var user_uid = firebase.auth().currentUser.uid
            var pageSize = await dispatch('getUserPageSize')


            var promise = new Promise((resolve, reject) => {
                ref = ref.orderByKey()
                ref = ref.limitToFirst(pageSize + 1)


                ref.once('value')
                    .then(function (snap) {
                        var keys = []
                        var collection = {}

                        // cursor = undefined
                        snap.forEach(function (childSnap) {
                            keys.push(childSnap.key)
                            if (keys.length != pageSize + 1) {
                                if (childSnap.key != user_uid) {
                                    collection[childSnap.key] = childSnap.val()
                                }
                            } else {
                                commit('setDbCursor', childSnap.key);
                            }
                        })
                        commit('setContacts', collection);
                        resolve(collection)
                    })
            })
            return promise
        },

        async getAllUsersForward({ commit, dispatch }, payload) {

            var ref = payload.dbReference
            var dbCursor = payload.cursor
            var user_uid = payload.uid
            var pageSize = payload.pageSize
            ref = ref.orderByKey()
            ref = ref.limitToFirst(pageSize + 1)
            ref = ref.startAt(dbCursor)

            ref.once('value')
                .then(function (snap) {
                    var keys = []
                    var collection = {}
                    if (Object.keys(snap.val()).length) {
                        if (Object.keys(snap.val()).length < pageSize + 1) {
                            // goto top page
                            var mypayload = {}
                            mypayload.ref = ref
                            mypayload.pageSize = pageSize
                            mypayload.uid = user_uid
                            dispatch("gotoBottomPage", mypayload)
                            return
                        }
                        var cnt = 0
                        snap.forEach(function (childSnap) {

                            //if (childSnap.key != "QTXLAfzHv6ekb3CKadr3Mc8x9Cn1") {
                            keys.push(childSnap.key)
                            if (keys.length != pageSize + 1) {
                                if (childSnap.key != user_uid) {
                                    collection[childSnap.key] = childSnap.val()
                                } else {
                                    //the current user
                                    cnt = 1

                                }
                            } else {
                                if (cnt == 1) {

                                    collection[childSnap.key] = childSnap.val()
                                    commit('setDbCursor', childSnap.key);
                                } else {
                                    commit('setDbCursor', childSnap.key);
                                }

                            }
                            //}
                        })
                        commit('setTopPage', true);
                        commit('setBottomPage', true)
                        commit('setForwardPage', true);
                        commit('setBackPage', true);
                        commit('setContacts', collection);
                    } else {
                        //record is null
                        var mypayload = {}
                        mypayload.ref = ref
                        mypayload.pageSize = pageSize
                        mypayload.uid = user_uid
                        dispatch("gotoBottomPage", mypayload)
                        return

                    }
                })
        },

        async getAllUsersBackward({ commit, dispatch }, payload) {
            var ref = payload.dbReference
            var dbCursor = payload.cursor
            var user_uid = payload.uid
            var pageSize = payload.pageSize
            ref = ref.orderByKey()
            ref = ref.limitToLast(pageSize + 1)
            ref = ref.endAt(dbCursor)



            ref.once('value')
                .then(function (snap) {
                    var keys = []
                    var collection = {}
                    if (Object.keys(snap.val()).length) {

                        if (Object.keys(snap.val()).length < pageSize + 1) {
                            // goto top page
                            var mypayload = {}
                            mypayload.ref = ref
                            mypayload.pageSize = pageSize
                            mypayload.uid = user_uid
                            dispatch("gotoTopPage", mypayload)
                            return
                        }

                        //end of top page
                        snap.forEach(function (childSnap) {

                            keys.push(childSnap.key)
                            if (keys.length != 1) {
                                if (childSnap.key != user_uid) {
                                    collection[childSnap.key] = childSnap.val()
                                }
                            } else {
                                commit('setDbCursor', childSnap.key);
                            }
                            //}
                        })
                        commit('setTopPage', true);
                        commit('setBottomPage', true)
                        commit('setBackPage', true)
                        commit('setForwardPage', true);
                        commit('setContacts', collection);
                    } else {
                        //snap value is null
                        var mypayload = {}
                        mypayload.ref = ref
                        mypayload.pageSize = pageSize
                        mypayload.uid = user_uid
                        dispatch("gotoTopPage", mypayload)
                        return

                    }
                })
        },

        gotoTopPage({ commit }, payload) {

            //var ref2 = payload.ref
            var pageSize = payload.pageSize
            var user_uid = payload.uid
            var ref2 = firebase.database().ref("/users");
            ref2 = ref2.orderByKey()
            ref2 = ref2.limitToFirst(pageSize + 1)
            //this.ref = this.ref.endAt(dbCursor)
            ref2.once('value')
                .then(function (snap) {
                    var keys = []
                    var collection = {}
                    if (Object.keys(snap.val()).length) {
                        snap.forEach(function (childSnap) {

                            keys.push(childSnap.key)
                            if (keys.length != pageSize + 1) {
                                if (childSnap.key != user_uid) {
                                    collection[childSnap.key] = childSnap.val()
                                }
                            } else {

                                commit('setDbCursor', childSnap.key);
                            }
                            //}
                        })
                        commit('setTopPage', false);
                        commit('setBottomPage', true);
                        commit('setForwardPage', true);
                        commit('setBackPage', false);
                        commit('setContacts', collection);
                    }
                })
        },

        gotoTopPage({ commit }, payload) {

            //var ref2 = payload.ref
            var pageSize = payload.pageSize
            var user_uid = payload.uid
            var ref2 = firebase.database().ref("/users");
            ref2 = ref2.orderByChild('dateCreated')
            ref2 = ref2.limitToFirst(pageSize + 1)
            //this.ref = this.ref.endAt(dbCursor)
            ref2.once('value')
                .then(function (snap) {
                    var keys = []
                    var collection = {}
                    if (Object.keys(snap.val()).length) {
                        snap.forEach(function (childSnap) {

                            //if (childSnap.key != "QTXLAfzHv6ekb3CKadr3Mc8x9Cn1") {
                            keys.push(childSnap.key)
                            if (keys.length != pageSize + 1) {
                                if (childSnap.key != user_uid) {
                                    collection[childSnap.key] = childSnap.val()
                                }
                            } else {

                                commit('setDbCursor', childSnap.key);
                            }
                            //}
                        })
                        commit('setTopPage', false);
                        commit('setBottomPage', true);
                        commit('setForwardPage', true);
                        commit('setBackPage', false);
                        commit('setContacts', collection);
                    }
                })
        },


        gotoSearchUsers({ commit }, payload) {

            //var ref2 = payload.ref
            var pageSize = payload.pageSize
            var user_uid = payload.uid
            var userStatus = payload.userStatus
            var ref2 = firebase.database().ref("/users");
            ref2 = ref2.orderByKey()
            //ref2 = ref2.limitToFirst(100)
            //this.ref = this.ref.endAt(dbCursor)
            ref2.once('value')
                .then(function (snap) {
                    var keys = []
                    var collection = {}

                    if (Object.keys(snap.val()).length) {
                        commit("setUpdatePreloader", 1)
                        snap.forEach(function (childSnap) {
                            if (childSnap.val() != null) {



                                if (childSnap.key != user_uid) {
                                    //  if (childSnap.val().country == "Nigeria") {
                                    if (childSnap.val().userStatus == userStatus) {

                                        if (childSnap.val().name != undefined) {
                                            collection[childSnap.key] = childSnap.val()
                                            commit("setSearchResult", true)
                                        }
                                    }
                                }
                            }
                        })
                        commit('setTopPage', false);
                        commit('setBottomPage', true);
                        commit('setForwardPage', true);
                        commit('setBackPage', false);
                        commit('setContacts', collection);
                    }

                })
        },

        searchUsersOnline({ commit }, payload) {
            var user_uid = payload.uid
            var ref2 = firebase.database().ref("/users");
            var cnt = 0;
            ref2 = ref2.orderByKey()
            ref2.once('value')
                .then(function (snap) {
                    var collection = {}
                    if (Object.keys(snap.val()).length) {
                        snap.forEach(function (childSnap) {
                            if (childSnap.val() != null) {
                                if (childSnap.key != user_uid) {
                                    if (childSnap.val().userStatus == "online") {
                                        if (childSnap.val().name != undefined) {
                                            collection[childSnap.key] = childSnap.val()
                                            commit("setSearchResult", 1)
                                            cnt++
                                        }
                                    }
                                }
                            }
                        })
                        commit('setSearchContacts', collection);
                        if (cnt === 0) {
                            commit('setSearchResult', 2)
                        }
                    } else {
                        commit("setSearchResult", 2)
                    }

                })
            return cnt
        },


        searchUsersName({ commit }, payload) {
            var user_uid = payload.uid
            var userName = payload.name
            var ref2 = firebase.database().ref("/users");
            var cnt = 0;
            ref2 = ref2.orderByKey()
            ref2.once('value')
                .then(function (snap) {
                    var collection = {}

                    if (Object.keys(snap.val()).length) {
                        snap.forEach(function (childSnap) {
                            if (childSnap.val() != null) {
                                if (childSnap.key != user_uid) {

                                    if (childSnap.val().name == userName) {
                                        if (childSnap.val().name != undefined) {
                                            collection[childSnap.key] = childSnap.val()
                                            commit("setSearchResult", 1)
                                            cnt++
                                        }
                                    }
                                }
                            }
                        })
                        commit('setSearchContacts', collection);
                        if (cnt === 0) {
                            commit('setSearchResult', 2)
                        }
                    } else {
                        commit("setSearchResult", 2)
                    }

                })
            return cnt
        },

        searchUsersLocation({ commit }, payload) {
            var user_uid = payload.uid
            var userLocation = payload.location
            var ref2 = firebase.database().ref("/users");
            var cnt = 0;
            ref2 = ref2.orderByKey()
            ref2.once('value')
                .then(function (snap) {
                    var collection = {}
                    if (Object.keys(snap.val()).length) {
                        snap.forEach(function (childSnap) {
                            if (childSnap.val() != null) {
                                if (childSnap.key != user_uid) {
                                    if (childSnap.val().location == userLocation) {
                                        if (childSnap.val().name != undefined) {
                                            collection[childSnap.key] = childSnap.val()
                                            commit("setSearchResult", 1)
                                            cnt++
                                        }
                                    }
                                }
                            }
                        })
                        commit('setSearchContacts', collection);
                        if (cnt === 0) {
                            commit('setSearchResult', 2)
                        }
                    } else {
                        commit("setSearchResult", 2)
                    }
                })
            return cnt
        },



        searchUsersCountry({ commit }, payload) {
            var user_uid = payload.uid
            var userCountry = payload.country
            var ref2 = firebase.database().ref("/users");
            var cnt = 0;
            ref2 = ref2.orderByKey()
            ref2.once('value')
                .then(function (snap) {
                    var collection = {}
                    if (Object.keys(snap.val()).length) {
                        snap.forEach(function (childSnap) {
                            if (childSnap.val() != null) {
                                if (childSnap.key != user_uid) {
                                    if (childSnap.val().country == userCountry) {
                                        if (childSnap.val().name != undefined) {
                                            collection[childSnap.key] = childSnap.val()
                                            commit("setSearchResult", 1)
                                            cnt++
                                        }
                                    }
                                }
                            }
                        })
                        commit('setSearchContacts', collection);
                        if (cnt === 0) {
                            commit('setSearchResult', 2)
                        }
                    } else {
                        commit("setSearchResult", 2)
                    }
                })
            return cnt
        },

        gotoBottomPage({ commit }, payload) {

            //var ref = payload.ref
            var pageSize = payload.pageSize
            var user_uid = payload.uid

            var ref2 = firebase.database().ref("/users");
            ref2 = ref2.orderByChild("dateCreated")
            ref2 = ref2.limitToLast(pageSize + 1)
            //this.ref = this.ref.endAt(dbCursor)
            ref2.once('value')
                .then(function (snap) {
                    var keys = []
                    var collection = {}
                    if (Object.keys(snap.val()).length) {
                        snap.forEach(function (childSnap) {

                            //if (childSnap.key != "QTXLAfzHv6ekb3CKadr3Mc8x9Cn1") {
                            keys.push(childSnap.key)
                            if (keys.length != 1) {
                                if (childSnap.key != user_uid) {
                                    collection[childSnap.key] = childSnap.val()
                                }
                            } else {

                                commit('setDbCursor', childSnap.key);
                            }
                            //}
                        })
                        commit('setTopPage', true);
                        commit('setBottomPage', false);
                        commit('setForwardPage', false);
                        commit('setBackPage', true);
                        commit('setContacts', collection);
                    }
                })
        },

        getUserPageSize({ }) {
            var promise = new Promise((resolve, reject) => {
                var current_user = firebase.auth().currentUser.uid
                firebase.database().ref("/users").child(current_user).on('value', snapshot => {
                    if (snapshot.val()) {
                        resolve(snapshot.val().pageSize)
                    }
                    else {
                        resolve(3)
                    }
                })

            })
            return promise
        },




        getUserPhotoStatus({ commit }, payload) {


            var promise = new Promise((resolve, reject) => {
                var postData = payload

                Framework7.request.post(
                    "https://penpalamerica.com/penpal/getuserphotostatus.php",
                    postData,
                    function (data) {

                        if (data == "0") {
                            //console.log("was this done*************************")
                            commit("setPhotoStatus", true)

                            resolve(true)
                        }
                        else {
                            commit("setPhotoStatus", false)
                            resolve(false)
                        }

                    }

                );

            })

            return promise
        },



        sendRequest({ commit }, payload) {
            var promise = new Promise((resolve, reject) => {
                db.firerequest.child(payload.recipient).push({ sender: payload.sender })
                    .then(() => {

                        resolve({ success: true })

                    })
                    .catch(err => {
                        reject(err)
                    })
            })
            return promise
        }
    }
};


function ValidateEmail(email) {

  var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;

  if (email.match(validRegex)) {

   
    return true;

  }else{

     return false;

  }
};

function httpPost(postData, key) {

    Framework7.request.post(
        "https://penpalamerica.com/penpal/migrationpenpal.php",
        postData,
        async function (data) {

            if (data == "0") {
                await firebase
                    .database()
                    .ref("users")
                    .child(key)
                    .update({
                        migrated2: true,
                    });
            }

        }
    );

}






export default ChatModule;

Youez - 2016 - github.com/yon3zu
LinuXploit