UNPKG

esoftplay-event

Version:

event module on esoftplay framework

262 lines (235 loc) 9.41 kB
// // noPage // // useLibs // import { getAuth } from '@react-native-firebase/auth'; // import { get, getDatabase, onValue, ref, set } from '@react-native-firebase/database'; // import { collection, getCountFromServer, getDocs, getFirestore, orderBy, query, where } from '@react-native-firebase/firestore'; // import { EventTms_homeProperty } from 'esoftplay/cache/event/tms_home/import'; // import { LibCurl } from 'esoftplay/cache/lib/curl/import'; // import { LibObject } from 'esoftplay/cache/lib/object/import'; // import { LibToastProperty } from 'esoftplay/cache/lib/toast/import'; // import esp from 'esoftplay/esp'; // import useGlobalState from 'esoftplay/global'; // import { createTimeout, useInterval } from 'esoftplay/timeout'; // function getEventPath() { // return "event" + (esp.isDebug("cc") ? "BBT" : "BBO") // } // function getRandomSuffix(time: number): number { // return Number(time + "" + (Math.floor(Math.random() * 9000) + 1000)) // } // export const eventIdQueue = useGlobalState(0) // export const eventQueueConfig = useGlobalState<any>({}) // const state = useGlobalState(0) // export const lastKeyInPages = useGlobalState<string[]>([]) // export const userIdKeyReplacer = useGlobalState<any>({}) // export default function useFirebaseSocket() { // const [status] = state.useState() // const isDirect = EventTms_homeProperty.state() // function isInLocal(state: any[], code: string) { // const encodedCode = encodeURIComponent(code) // return state.findIndex(([url, post]) => (post.qr == encodedCode || post.user_qr == encodedCode)) == -1 ? false : true // } // const auth = () => { // return getAuth() // } // const db = () => { // return getDatabase() // } // const signInAnonym = () => { } // // ini get yang di live // async function _get(path: string, gate_id: string, onDone: (res: any) => void) { // let hasDone = false // if (isDirect.get()) { // new LibCurl('gate_check/' + path + '?t=' + new Date().getTime(), { gate_id }, (res) => { // hasDone = true // onDone(res) // }, (res) => { // onDone(res) // hasDone = true // }, 1) // return // } // get(ref(getDatabase(), path)) // .then((sn) => { // hasDone = true // if (sn.exists()) { // onDone(sn.val()) // } else { // onDone(null) // } // }) // .catch((e) => { // // if (e && !hasDone) { // // getBackup(path, (res) => { // // if (res) { // // onDone(res) // // } else { // // onDone(null) // // } // // }) // // } // }) // } // function listenChangeTime(merchant_id: string, callback: (params: any) => void): () => void { // const onChildChange = onValue(ref(getDatabase(), 'merchant_offline/' + merchant_id), (sn) => { // if (sn.exists()) { // callback(sn.val()); // } // }) // return () => onChildChange // } // async function _set(path: string, data: any, onDone?: (res: any) => void) { // const timeout = createTimeout() // if (state.get() == 1) // set(ref(getDatabase(), path), data) // else // timeout.set(() => { // _set(path, data,) // timeout.clear() // }, 300); // } // function path(...paths: any[]): string { // return paths.join('/') // } // function addQueue(path: string, event_id: string, onSuccess?: () => void) { // const instance: any = esp.mod("firestore/index")().instance() // const db = getFirestore(instance) // if (userIdKeyReplacer.get()?.priority == 1) { // const coll = collection(db, [getEventPath(), path, event_id].join('/')); // const q = query(coll, orderBy('t', 'asc'), where("t", "==", userIdKeyReplacer.get().t)); // getDocs(q).then((doc) => { // if (doc.size == 0) { // LibToastProperty.show(esp.lang("event/firebase_socket", "priority_queue_used")) // userIdKeyReplacer.set(LibObject.set(userIdKeyReplacer.get(), 0)('priority')) // addQueue(path, event_id, onSuccess) // } else if (doc.size == 1) { // // console.log("SIJI") // doc.forEach((d) => { // userIdKeyReplacer.set(LibObject.set(userIdKeyReplacer.get(), d.id)('id')) // updateQueueExp(path, event_id) // new LibCurl('event_booking_waiting_allotment_use', { event_id: event_id }) // if (onSuccess) onSuccess?.() // }) // } else { // LibToastProperty.show("Antrian lebih dari 1", doc.size) // } // // console.log("SIZE", doc.size) // }) // } else { // // console.log("ora") // if (userIdKeyReplacer.get()?.id) // esp.mod("firestore/index")().deleteDocument?.(instance, [getEventPath?.(), path, event_id, userIdKeyReplacer.get()?.id], () => { }, (e) => { }) // const ctime = getDateTimebyGmt7().getTime() // const time = getRandomSuffix(ctime) // const data = { t: ctime, s: time } // // console.log(data) // esp.mod("firestore/index")().addCollection?.(instance, [getEventPath?.(), path, event_id], data, (dt) => { // // console.log("KENE",) // userIdKeyReplacer.set?.({ // id: dt?.id, // ...data // }) // if (onSuccess) onSuccess?.() // }, (err) => { // // console.log(err) // }) // } // } // function getDateTimebyGmt7() { // const ori = new Date() // // const gmt = setTimeOffset(ori) // return ori // } // // get weather function // function getQueue(path: string, event_id: string, _limit: number, cb: (idx: number, key: string) => void) { // const instance: any = esp.mod("firestore/index")().instance() // const db = getFirestore(instance) // const coll = collection(db, [getEventPath(), path, event_id].join('/')); // const q = query(coll, orderBy('s', 'asc'), where("s", "<", userIdKeyReplacer.get().s)); // getCountFromServer(q).then((v) => { // cb(v.data().count, userIdKeyReplacer.get().id) // }).catch((e) => { // getQueue(path, event_id, _limit, cb) // console.log({ e }) // }) // // /* cleanup */ // // const cdate = getDateTimebyGmt7().getTime() // // if (!cdate) { // // LibToastProperty.show(esp.lang("lib/firebase_socket", "something_wrong_1")) // // return // // } // // if (!_limit) { // // LibToastProperty.show(esp.lang("lib/firebase_socket", "something_wrong_2")) // // return // // } // // if (!userIdKeyReplacer?.get()?.s) { // // LibToastProperty.show(esp.lang("lib/firebase_socket", "something_wrong_3")) // // return // // } // // const exp = query(collection(instance, [getEventPath(), path, event_id].join('/')), where("t", "<", cdate - _limit), orderBy('t', 'asc'), limit(10)); // // const batch = writeBatch(instance); // // getDocs(exp).then((expd) => { // // expd.forEach((doc) => { // // if (Number(doc.data().s) < Number(userIdKeyReplacer.get().s)) // // batch.delete(doc.ref) // // // console.log(doc.data().t < cdate - limit, doc.data().t, cdate - limit, cdate - limit - doc.data().t) // // // console.log('->' + moment(new Date(Number(doc.data().t))).localeFormat('DD MMMM YYYY HH:mm:ss')) // // // console.log('-->' + moment(new Date(cdate - limit)).localeFormat('DD MMMM YYYY HH:mm:ss') + '\n\n') // // }) // // batch.commit() // // }) // // /* end cleanup */ // } // function updateQueueExp(path: string, event_id: string) { // const instance: any = esp.mod("firestore/index")().instance() // esp.mod("firestore/index")().updateDocument(instance, [getEventPath(), path, event_id, userIdKeyReplacer.get().id], [{ key: 't', value: getDateTimebyGmt7().getTime() }], () => { }, (e) => { // // updateQueueExp(path, event_id, key) // }) // } // function doneQueue(path: string, event_id: string, key: string, cb: Function) { // if (key) { // const instance: any = esp.mod("firestore/index")().instance() // esp.mod("firestore/index")().deleteDocument(instance, [getEventPath(), path, event_id, key], () => { // cb() // userIdKeyReplacer.reset() // }, (e) => { // console.warn(e) // }) // } // } // function isInPricingQueueConfig(event_id: string) { // return eventQueueConfig.get(event_id) && eventQueueConfig.get(event_id).limit > 0 // } // function useQueueConfigListener() { // function action() { // fetch(esp.config("events", "queue") + "?t=" + new Date().getTime(), { "method": "GET" }) // .then(res => res.json()) // .then((re) => { // eventQueueConfig.set(re) // }) // } // const timeout = useInterval() // action() // timeout(() => { // action() // }, 10000) // } // return { // status, // auth, // db, // signInAnonymously: signInAnonym, // get: _get, // set: _set, // isInLocal, // // getQueueConfig, // isInPricingQueueConfig, // useQueueConfigListener, // // isInBookingQueueConfig, // addQueue, // getQueue, // doneQueue, // updateQueueExp, // listenChangeTime, // path // } // }