| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- import { ref } from 'vue'
- import { defineStore } from 'pinia'
- import { http } from '@/plugins/http'
- import { AppsFlyer } from 'appsflyer-capacitor-plugin'
- import { Capacitor } from '@capacitor/core'
- import { Facebook, PixelEventNames } from 'capacitor-facebook'
- async function setAfCuid(cuid) {
- // if (Capacitor.isNativePlatform()) {
- // AppsFlyer.setCustomerUserId({ cuid })
- // }
- }
- async function logLogin() {
- if (Capacitor.isNativePlatform()) {
- AppsFlyer.logEvent({ eventName: 'af_login' })
- } else {
- Facebook.logEvent({
- name: 'Login'
- })
- }
- }
- async function logRegistraion(methods = 'username') {
- if (Capacitor.isNativePlatform()) {
- AppsFlyer.logEvent({
- eventName: 'af_complete_registration',
- eventValue: {
- af_registration_method: methods,
- af_currency: 'PHP'
- }
- })
- } else {
- Facebook.logEvent({
- name: PixelEventNames.CompleteRegistration
- })
- }
- }
- export const useUserStore = defineStore('user', () => {
- const user = ref(null)
- const login = (username, password) => {
- return new Promise((resolve, reject) => {
- http.post('/auth/v1/login', { username, password })
- .then(res => {
- http.setToken(res.token)
- user.value = res.user
- setAfCuid(res.user.id)
- logLogin()
- if (res.newRegister) logRegistraion()
- resolve(res)
- })
- .catch(e => {
- reject(e)
- })
- })
- }
- const loginByCode = (phone, code, invitor) => {
- return new Promise((resolve, reject) => {
- http.post('/auth/v1/phoneLogin', { phone, code, invitor })
- .then(res => {
- http.setToken(res.token)
- user.value = res.user
- setAfCuid(res.user.id)
- logLogin()
- if (res.newRegister) logRegistraion()
- resolve(res)
- })
- .catch(e => {
- reject(e)
- })
- })
- }
- const register = (username, code, password, invitor) => {
- return new Promise((resolve, reject) => {
- http.post('/auth/v1/userRegister', { username, password, invitor })
- .then(res => {
- http.setToken(res.token)
- user.value = res.user
- setAfCuid(res.user.id)
- logLogin()
- if (res.newRegister) logRegistraion()
- resolve(res)
- })
- .catch(e => {
- reject(e)
- })
- })
- }
- const get = async () => {
- if (!http.token.value) return Promise.reject()
- return http.get('/user/my').then(res => {
- setAfCuid(res.id)
- user.value = res
- })
- }
- const logout = () => {
- http.setToken(null)
- user.value = null
- }
- return { user, login, get, loginByCode, register, logout }
- })
|