After
unknown
typescript
4 years ago
4.3 kB
8
Indexable
import axios from 'axios'
import { GPSCoordinates } from '@/types'
import { apiUrl, authStorage } from '@/store/config'
const TASK_STATUS_PROBLEM = 7
const tasks = {
namespaced: true,
state () {
return {}
},
actions: {
/**
* Get list of Tasks for given Statuses
* @param statuses
*/
async getTasksList (statuses: number[]): Promise {
const auth = await authStorage()
return axios.get(`${apiUrl}/api/support-app/tasks?token=${auth.token}&statusId=${statuses}`)
.then(({ data }) => resolve(data.items))
.catch(() => reject())
},
/**
* Get detailed information about the Task
* @param taskId
*/
async getTaskDetails (taskId: any): Promise {
const auth = await authStorage()
return axios.get(`${apiURL}/api/support-app/tasks/${taskId}?token=${auth.token}`)
.then(({ data }) => resolve(data))
.catch(() => reject())
},
/**
* Updates Task's status for given one
* @param taskId
* @param statusId
*/
async markTaskAs (taskId: number, statusId: number): Promise {
const auth = await authStorage()
const data = { statusId }
return axios.post(`${apiUrl}/api/support-app/tasks/${taskId}?token=${auth.token}`, data)
.then(({ data }) => resolve(data))
.catch(() => reject())
},
/**
* Updates Task's status for Problem
* @param taskId
* @param photos
* @param comment
*/
async markTaskAsProblem (taskId: number, photos: object, comment?: string): Promise {
const auth = await authStorage()
const data = {
statusId: TASK_STATUS_PROBLEM,
comment: comment,
image: photos,
}
return axios.post(`${apiUrl}/api/support-app/tasks/${taskId}?token=${auth.token}`, data)
.then(({ data }) => resolve(data))
.catch(() => reject())
},
/**
* Get list of Statuses dictionary
*/
async getStatuses (): Promise {
const auth = await authStorage()
return axios.get(`${apiUrl}/api/support-app/dict/statuses?token=${auth.token}`)
.then(({ data }) => resolve(data.items))
.catch(() => reject())
},
/**
* Get list of Categories dictionary
*/
async getCategories (): Promise {
const auth = await authStorage()
return axios.get(`${apiUrl}/api/support-app/dict/categories?token=${auth.token}`)
.then(({ data }) => resolve(data.items))
.catch(() => reject())
},
/**
* Get list of Problem Reasons dictionary
*/
async getProblemReasons (): Promise {
const auth = await authStorage()
return axios.get(`${apiUrl}/api/support-app/dict/categories?token=${auth.token}`)
.then(({ data }) => resolve(data.item))
.catch(() => reject())
},
/**
* Send SMS for Accept Works
* @param body
*/
async acceptWorksSMSend (body: any): Promise {
const auth = await authStorage()
return axios.post(`${apiUrl}/api/support-app/client-accept-works/send/?token=${auth.token}`, body)
.then(({ data }) => resolve(data.success))
.catch(() => reject())
},
/**
* Check SMS for Accept Works
* @param body
*/
async acceptWorksSMSCheck (body: any): Promise {
const auth = await authStorage()
return axios.post(`${apiUrl}/api/support-app/client-accept-works/check/?token=${auth.token}`, body)
.then(({ data }) => resolve(data.success))
.catch(() => reject())
},
/**
* Subscribes TVcom for the Client
* @param taskId
*/
async subscribeTvCom (taskId: any): Promise {
const auth = await authStorage()
return axios.post(`${apiUrl}/api/support-app/tasks/${taskId}/tvcom-subscription?token=${auth.token}`)
.then(() => resolve(true))
.catch(() => reject(false))
},
/**
* Send GPS coordinates to the server
* @param coordinates
*/
async sendCoordinates (coordinates: GPSCoordinates): Promise {
const auth = await authStorage()
const data = { ...coordinates, uid: auth.uid }
return axios.post(`${apiUrl}/api/support-app/gps-trace?token=${auth.token}`, data)
}
}
}
export default tasks
Editor is loading...