/* eslint-disable class-methods-use-this */ import { post, get, put, _delete } from '@/lin/plugin/axios' export default class Admin { constructor(uPage = 0, uCount = 10, gPage = 0, gCount = 5) { this.uPage = uPage this.uCount = uCount this.lPage = gPage this.gCount = gCount } async increaseUPage() { this.uPage += 1 } async increaseGPage() { this.lPage += 1 } async decreaseUPage() { this.uPage -= 1 if (this.uPage < 0) { this.uPage = 0 } } async decreaseGPage() { this.lPage -= 1 if (this.lPage < 0) { this.lPage = 0 } } static getAllPermissions() { return get('cms/admin/permission') } static async getAdminUsers({ groupId, count = this.uCount, page = this.uPage }) { let res if (groupId) { res = await get('cms/admin/users', { count, page, group_id: groupId, }) } else { res = await get('cms/admin/users', { count, page, }) } return res } async nextUsersPage() { await this.increaseUPage() return this.getAdminUsers({}) } async preUsersPage() { await this.decreaseUPage() return this.getAdminUsers({}) } async getGroupsWithPermissions({ count = this.uCount, page = this.uPage }) { const res = await get('cms/admin/groups', { count, page, }) return res } async nextGroupsPage() { await this.increaseGPage() return this.getGroupsWithPermissions({}) } async preGroupsPage() { await this.decreaseGPage() return this.getGroupsWithPermissions({}) } static async getAllGroups() { const groups = await get('cms/admin/group/all') return groups } static async getOneGroup(id) { const group = await get(`cms/admin/group/${id}`) return group } // eslint-disable-next-line camelcase static async createOneGroup(name, info, permission_ids) { const res = await post('cms/admin/group', { name, info, permission_ids, }) return res } static async updateOneGroup(name, info, id) { const res = await put(`cms/admin/group/${id}`, { name, info, }) return res } static async deleteOneGroup(id) { const res = await _delete(`cms/admin/group/${id}`) return res } static async deleteOneUser(id) { const res = await _delete(`cms/admin/user/${id}`) return res } // eslint-disable-next-line camelcase static async updateOneUser(email,staff_status,show_board_flag,hiredate,unhiredate,send_email_flag, group_ids, id) { const res = await put(`cms/admin/user/${id}`, { email, staff_status, show_board_flag, hiredate, unhiredate, send_email_flag, group_ids, }) return res } // eslint-disable-next-line camelcase static async dispatchPermissions(group_id, permission_ids) { const res = await post('cms/admin/permission/dispatch/batch', { group_id, permission_ids, }) return res } // eslint-disable-next-line camelcase static async changePassword(new_password, confirm_password, id) { const res = await put(`cms/admin/user/${id}/password`, { new_password, confirm_password, }) return res } // eslint-disable-next-line camelcase static async removePermissions(group_id, permission_ids) { const res = await post('cms/admin/permission/remove', { group_id, permission_ids, }) return res } }