This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/models/invite.js
2014-10-07 01:43:17 +05:30

57 lines
1.2 KiB
JavaScript

/**
A data model representing an Invite
@class Invite
@extends Discourse.Model
@namespace Discourse
@module Discourse
**/
Discourse.Invite = Discourse.Model.extend({
rescind: function() {
Discourse.ajax('/invites', {
type: 'DELETE',
data: { email: this.get('email') }
});
this.set('rescinded', true);
},
reinvite: function() {
Discourse.ajax('/invites/reinvite', {
type: 'POST',
data: { email: this.get('email') }
});
this.set('reinvited', true);
}
});
Discourse.Invite.reopenClass({
create: function() {
var result = this._super.apply(this, arguments);
if (result.user) {
result.user = Discourse.User.create(result.user);
}
return result;
},
findInvitedBy: function(user, filter, offset) {
if (!user) { return Em.RSVP.resolve(); }
var data = {};
if (!Em.isNone(filter)) { data.filter = filter; }
data.offset = offset || 0;
return Discourse.ajax("/users/" + user.get('username_lower') + "/invited.json", {data: data}).then(function (result) {
result.invites = result.invites.map(function (i) {
return Discourse.Invite.create(i);
});
return Em.Object.create(result);
});
}
});