linguaielts-api / fronted /src /services /authService.js
AnhviNguyen
fix: move startup tasks to background, lazy import NeuralProphet/matplotlib
1e7cc3a
Raw
History Blame Contribute Delete
2.44 kB
import apiClient from '@/api/client.js'
export class AuthService {
async register(payload) {
const { data } = await apiClient.post('/auth/register', payload)
return data
}
async verifyEmail(email, code) {
const { data } = await apiClient.post('/auth/verify-email', { email, code })
return data
}
async resendVerification(email) {
const { data } = await apiClient.post('/auth/resend-verification', { email })
return data
}
async googleAuth(code, redirectUri) {
const { data } = await apiClient.post(
'/auth/google',
{ code, redirect_uri: redirectUri },
{ timeout: 80000 },
)
return data
}
async login(payload) {
const { data } = await apiClient.post('/auth/login', payload)
return data
}
async refresh() {
const { data } = await apiClient.post('/auth/refresh', {})
return data
}
async getProfile() {
const { data } = await apiClient.get('/users/me')
return data
}
async updateProfile(payload) {
const { data } = await apiClient.patch('/users/me', payload)
return data
}
/** Upload avatar — multipart form */
async uploadAvatar(file) {
const form = new FormData()
form.append('file', file)
const { data } = await apiClient.put('/users/me/avatar', form)
return data
}
/** Ping activity để cập nhật streak khi user mở app */
async activityPing() {
const { data } = await apiClient.post('/users/me/activity-ping')
return data
}
async changePassword(currentPassword, newPassword) {
const { data } = await apiClient.post('/users/me/change-password', {
current_password: currentPassword,
new_password: newPassword,
})
return data
}
async getAiSettings() {
const { data } = await apiClient.get('/users/me/ai-settings')
return data
}
async updateAiSettings(payload) {
const { data } = await apiClient.put('/users/me/ai-settings', payload)
return data
}
async forgotPassword(email) {
const { data } = await apiClient.post('/auth/forgot-password', { email })
return data
}
async resetPassword(token, newPassword) {
const { data } = await apiClient.post('/auth/reset-password', {
token,
new_password: newPassword,
})
return data
}
async logout() {
const { data } = await apiClient.post('/auth/logout', {})
return data
}
}
export const authService = new AuthService()