linguaielts-api / fronted /src /services /adminService.js
AnhviNguyen
Merge remote master: resolve cache and admin UI conflicts
8a2ed19
Raw
History Blame Contribute Delete
8.74 kB
import apiClient from '@/api/client.js'
export const adminService = {
getOverview() {
return apiClient.get('/admin/overview').then(r => r.data)
},
listUsers(params = {}) {
return apiClient.get('/admin/users', { params }).then(r => r.data)
},
createUser(body) {
return apiClient.post('/admin/users', body).then(r => r.data)
},
getUser(id) {
return apiClient.get(`/admin/users/${id}`).then(r => r.data)
},
updateUserStatus(id, body) {
return apiClient.patch(`/admin/users/${id}/status`, body).then(r => r.data)
},
updateUserRole(id, body) {
return apiClient.patch(`/admin/users/${id}/role`, body).then(r => r.data)
},
resetXpStreak(id, body) {
return apiClient.post(`/admin/users/${id}/reset-xp-streak`, body).then(r => r.data)
},
updateLeaderboard(id, body) {
return apiClient.patch(`/admin/users/${id}/leaderboard`, body).then(r => r.data)
},
listLeaderboard(params = {}) {
return apiClient.get('/admin/leaderboard', { params }).then(r => r.data)
},
listAnomalies() {
return apiClient.get('/admin/leaderboard/anomalies').then(r => r.data)
},
listSystemVocabTopics(params = {}) {
return apiClient.get('/admin/system-vocab/topics', { params }).then(r => r.data)
},
createSystemVocabTopic(body) {
return apiClient.post('/admin/system-vocab/topics', body).then(r => r.data)
},
getSystemVocabTopic(id) {
return apiClient.get(`/admin/system-vocab/topics/${id}`).then(r => r.data)
},
updateSystemVocabTopic(id, body) {
return apiClient.patch(`/admin/system-vocab/topics/${id}`, body).then(r => r.data)
},
deleteSystemVocabTopic(id) {
return apiClient.delete(`/admin/system-vocab/topics/${id}`).then(r => r.data)
},
createSystemVocabWord(topicId, body) {
return apiClient.post(`/admin/system-vocab/topics/${topicId}/words`, body).then(r => r.data)
},
updateSystemVocabWord(topicId, wordId, body) {
return apiClient.patch(`/admin/system-vocab/topics/${topicId}/words/${wordId}`, body).then(r => r.data)
},
deleteSystemVocabWord(topicId, wordId) {
return apiClient.delete(`/admin/system-vocab/topics/${topicId}/words/${wordId}`).then(r => r.data)
},
copySystemVocabToUser(topicId, body) {
return apiClient.post(`/admin/system-vocab/topics/${topicId}/copy-to-user`, body).then(r => r.data)
},
listConversationTopics(params = {}) {
return apiClient.get('/admin/conversation/topics', { params }).then(r => r.data)
},
createConversationTopic(body) {
return apiClient.post('/admin/conversation/topics', body).then(r => r.data)
},
getConversationTopic(id) {
return apiClient.get(`/admin/conversation/topics/${id}`).then(r => r.data)
},
updateConversationTopic(id, body) {
return apiClient.patch(`/admin/conversation/topics/${id}`, body).then(r => r.data)
},
archiveConversationTopic(id) {
return apiClient.delete(`/admin/conversation/topics/${id}`).then(r => r.data)
},
listTranslationSteps(params = {}) {
return apiClient.get('/admin/translation/steps', { params }).then(r => r.data)
},
createTranslationStep(body) {
return apiClient.post('/admin/translation/steps', body).then(r => r.data)
},
getTranslationStep(id) {
return apiClient.get(`/admin/translation/steps/${id}`).then(r => r.data)
},
updateTranslationStep(id, body) {
return apiClient.patch(`/admin/translation/steps/${id}`, body).then(r => r.data)
},
archiveTranslationStep(id) {
return apiClient.delete(`/admin/translation/steps/${id}`).then(r => r.data)
},
deleteTranslationStep(id) {
return apiClient.delete(`/admin/translation/steps/${id}`).then(r => r.data)
},
createTranslationTopic(stepId, body) {
return apiClient.post(`/admin/translation/steps/${stepId}/topics`, body).then(r => r.data)
},
getTranslationTopic(id) {
return apiClient.get(`/admin/translation/topics/${id}`).then(r => r.data)
},
updateTranslationTopic(id, body) {
return apiClient.patch(`/admin/translation/topics/${id}`, body).then(r => r.data)
},
archiveTranslationTopic(id) {
return apiClient.delete(`/admin/translation/topics/${id}`).then(r => r.data)
},
deleteTranslationTopic(id) {
return apiClient.delete(`/admin/translation/topics/${id}`).then(r => r.data)
},
createTranslationSentence(topicId, body) {
return apiClient.post(`/admin/translation/topics/${topicId}/sentences`, body).then(r => r.data)
},
updateTranslationSentence(id, body) {
return apiClient.patch(`/admin/translation/sentences/${id}`, body).then(r => r.data)
},
archiveTranslationSentence(id) {
return apiClient.delete(`/admin/translation/sentences/${id}`).then(r => r.data)
},
deleteTranslationSentence(id) {
return apiClient.delete(`/admin/translation/sentences/${id}`).then(r => r.data)
},
listWritingTopics(params = {}) {
return apiClient.get('/admin/content/writing-topics', { params }).then(r => r.data)
},
getWritingTopic(id) {
return apiClient.get(`/admin/content/writing-topics/${id}`).then(r => r.data)
},
createWritingTopic(rawJson) {
return apiClient.post('/admin/content/writing-topics', { raw_json: rawJson }).then(r => r.data)
},
updateWritingTopic(id, rawJson) {
return apiClient.patch(`/admin/content/writing-topics/${id}`, { raw_json: rawJson }).then(r => r.data)
},
archiveWritingTopic(id) {
return apiClient.delete(`/admin/content/writing-topics/${id}`).then(r => r.data)
},
restoreWritingTopic(id) {
return apiClient.post(`/admin/content/writing-topics/${id}/restore`).then(r => r.data)
},
listMockTests(params = {}) {
return apiClient.get('/admin/content/mock-tests', { params }).then(r => r.data)
},
getMockTest(id) {
return apiClient.get(`/admin/content/mock-tests/${id}`).then(r => r.data)
},
createMockTest(rawJson) {
return apiClient.post('/admin/content/mock-tests', { raw_json: rawJson }).then(r => r.data)
},
updateMockTest(id, rawJson) {
return apiClient.patch(`/admin/content/mock-tests/${id}`, { raw_json: rawJson }).then(r => r.data)
},
archiveMockTest(id) {
return apiClient.delete(`/admin/content/mock-tests/${id}`).then(r => r.data)
},
restoreMockTest(id) {
return apiClient.post(`/admin/content/mock-tests/${id}/restore`).then(r => r.data)
},
uploadAdminImage(file) {
const body = new FormData()
body.append('file', file)
return apiClient.post('/admin/assets/images', body, {
headers: { 'Content-Type': 'multipart/form-data' },
}).then(r => r.data)
},
uploadAdminAudio(file) {
const body = new FormData()
body.append('file', file)
return apiClient.post('/admin/assets/audio', body, {
headers: { 'Content-Type': 'multipart/form-data' },
}).then(r => r.data)
},
createReadingMockTestBuilder(body) {
return apiClient.post('/admin/content/reading-mock-tests', body).then(r => r.data)
},
getReadingMockTestBuilder(id) {
return apiClient.get(`/admin/content/reading-mock-tests/${id}/builder`).then(r => r.data)
},
updateReadingMockTestBuilder(id, body) {
return apiClient.patch(`/admin/content/reading-mock-tests/${id}`, body).then(r => r.data)
},
createListeningMockTestBuilder(body) {
return apiClient.post('/admin/content/listening-mock-tests', body).then(r => r.data)
},
getListeningMockTestBuilder(id) {
return apiClient.get(`/admin/content/listening-mock-tests/${id}/builder`).then(r => r.data)
},
updateListeningMockTestBuilder(id, body) {
return apiClient.patch(`/admin/content/listening-mock-tests/${id}`, body).then(r => r.data)
},
createSpeakingMockTestBuilder(body) {
return apiClient.post('/admin/content/speaking-mock-tests', body).then(r => r.data)
},
getSpeakingMockTestBuilder(id) {
return apiClient.get(`/admin/content/speaking-mock-tests/${id}/builder`).then(r => r.data)
},
updateSpeakingMockTestBuilder(id, body) {
return apiClient.patch(`/admin/content/speaking-mock-tests/${id}`, body).then(r => r.data)
},
listQuizzes(params = {}) {
return apiClient.get('/admin/content/quizzes', { params }).then(r => r.data)
},
getQuiz(id) {
return apiClient.get(`/admin/content/quizzes/${id}`).then(r => r.data)
},
createQuiz(rawJson) {
return apiClient.post('/admin/content/quizzes', { raw_json: rawJson }).then(r => r.data)
},
updateQuiz(id, rawJson) {
return apiClient.patch(`/admin/content/quizzes/${id}`, { raw_json: rawJson }).then(r => r.data)
},
archiveQuiz(id) {
return apiClient.delete(`/admin/content/quizzes/${id}`).then(r => r.data)
},
restoreQuiz(id) {
return apiClient.post(`/admin/content/quizzes/${id}/restore`).then(r => r.data)
},
}