hummingbird-me/kitsu-web

View on GitHub
app/components/admin/report-item.js

Summary

Maintainability
A
0 mins
Test Coverage
F
0%
import Component from '@ember/component';
import { get, set } from '@ember/object';
import { inject as service } from '@ember/service';
import { task, taskGroup } from 'ember-concurrency';
import errorMessages from 'client/utils/error-messages';

export default Component.extend({
  tagName: 'tr',
  notify: service(),
  reportTask: taskGroup().drop(),

  updateReport: task(function* (status) {
    const report = get(this, 'report');
    set(report, 'status', status);
    set(report, 'moderator', get(this, 'session.account'));
    yield report.save()
      .then(() => get(this, 'notify').success(`Report was marked as ${status}.`))
      .catch(err => {
        report.rollbackAttributes();
        get(this, 'notify').error(errorMessages(err));
      });
  }).drop(),

  actions: {
    changeStatus(status) {
      get(this, 'updateReport').perform(status);
    }
  }
});