Class: Jpi::V1::Admin::OrganizationsController

Inherits:
BaseResourceController
  • Object
show all
Defined in:
app/controllers/mno_enterprise/jpi/v1/admin/organizations_controller.rb

Instance Method Summary collapse

Instance Method Details

#countObject

GET /mnoe/jpi/v1/admin/organizations/count



35
36
37
38
# File 'app/controllers/mno_enterprise/jpi/v1/admin/organizations_controller.rb', line 35

def count
  organizations_count = MnoEnterprise::Tenant.get('tenant').organizations_count
  render json: {count: organizations_count }
end

#createObject

POST /mnoe/jpi/v1/admin/organizations



41
42
43
44
45
46
47
48
49
50
51
# File 'app/controllers/mno_enterprise/jpi/v1/admin/organizations_controller.rb', line 41

def create
  # Create new organization
  @organization = MnoEnterprise::Organization.create(organization_update_params)

  # OPTIMIZE: move this into a delayed job?
  update_app_list

  @organization_active_apps = @organization.app_instances

  render 'show'
end

#in_arrearsObject

GET /mnoe/jpi/v1/admin/organizations/in_arrears



30
31
32
# File 'app/controllers/mno_enterprise/jpi/v1/admin/organizations_controller.rb', line 30

def in_arrears
  @arrears = MnoEnterprise::ArrearsSituation.all
end

#indexObject

GET /mnoe/jpi/v1/admin/organizations



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'app/controllers/mno_enterprise/jpi/v1/admin/organizations_controller.rb', line 5

def index
  if params[:terms]
    # Search mode
    @organizations = []
    JSON.parse(params[:terms]).map { |t| @organizations = @organizations | MnoEnterprise::Organization.where(Hash[*t]) }
    response.headers['X-Total-Count'] = @organizations.count
  else
    # Index mode
    @organizations = MnoEnterprise::Organization
    @organizations = @organizations.limit(params[:limit]) if params[:limit]
    @organizations = @organizations.skip(params[:offset]) if params[:offset]
    @organizations = @organizations.order_by(params[:order_by]) if params[:order_by]
    @organizations = @organizations.where(params[:where]) if params[:where]
    @organizations = @organizations.all.fetch
    response.headers['X-Total-Count'] = @organizations.[:pagination][:count]
  end
end

#invite_memberObject

POST /mnoe/jpi/v1/admin/organizations/1/users Invite a user to the organization (and create it if needed) This does not send any emails (emails are manually triggered later)



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'app/controllers/mno_enterprise/jpi/v1/admin/organizations_controller.rb', line 68

def invite_member
  @organization = MnoEnterprise::Organization.find(params[:id])

  # Find or create a new user - We create it in the frontend as MnoHub will send confirmation instructions for newly
  # created users
  user = MnoEnterprise::User.find_by(email: user_params[:email]) || create_unconfirmed_user(user_params)

  # Create the invitation
  invite = @organization.org_invites.create(
    user_email: user.email,
    user_role: params[:user][:role],
    referrer_id: current_user.id,
    status: 'staged' # Will be updated to 'accepted' for unconfirmed users
  )

  @user = user.confirmed? ? invite : user.reload
end

#showObject

GET /mnoe/jpi/v1/admin/organizations/1



24
25
26
27
# File 'app/controllers/mno_enterprise/jpi/v1/admin/organizations_controller.rb', line 24

def show
  @organization = MnoEnterprise::Organization.find(params[:id])
  @organization_active_apps = @organization.app_instances.active.to_a
end

#updateObject

PATCH /mnoe/jpi/v1/admin/organizations/1



54
55
56
57
58
59
60
61
62
63
# File 'app/controllers/mno_enterprise/jpi/v1/admin/organizations_controller.rb', line 54

def update
  # get organization
  @organization = MnoEnterprise::Organization.find(params[:id])

  update_app_list

  @organization_active_apps = @organization.app_instances.active

  render 'show'
end