/* eslint-disable class-methods-use-this */
import { post, get, put } from '@/lin/plugin/axios'
import Config from '../../config'
import Sse from '../util/sse'

export default class Notify {
  url = null

  events = null

  sse = null

  constructor(url) {
    this.url = url
  }

  async getEvents() {
    const res = await get('cms/notify/events')
    this.events = res.events
  }

  async initSse() {
    await this.getEvents()
    this.sse = new Sse(Config.baseUrl + this.url, this.events)
  }

  /**
   * 创建events
   * @param {number} group_id
   * @param {Array} events
   */
  // eslint-disable-next-line camelcase
  async createEvents(group_id, events) {
    const res = await post('cms/notify/events', { group_id, events })
    return res
  }

  /**
   * 更新events
   * @param {number} group_id
   * @param {Array} events
   */
  // eslint-disable-next-line camelcase
  async updateEvents(group_id, events) {
    const res = await put('cms/notify/events', { group_id, events })
    return res
  }
}