Class: Admin::Config::FlagsController

Inherits:
AdminController
  • Object
show all
Defined in:
app/controllers/admin/config/flags_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'app/controllers/admin/config/flags_controller.rb', line 28

def create
  Flags::CreateFlag.call(service_params) do
    on_success do |flag:|
      Discourse.request_refresh!
      render json: flag, serializer: FlagSerializer, used_flag_ids: Flag.used_flag_ids
    end
    on_failure { render(json: failed_json, status: 422) }
    on_failed_policy(:invalid_access) { raise Discourse::InvalidAccess }
    on_failed_policy(:unique_name) { render_json_error(I18n.t("flags.errors.unique_name")) }
    on_failed_contract do |contract|
      render(json: failed_json.merge(errors: contract.errors.full_messages), status: 400)
    end
  end
end

#destroyObject



77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'app/controllers/admin/config/flags_controller.rb', line 77

def destroy
  Flags::DestroyFlag.call(service_params) do
    on_success do
      Discourse.request_refresh!
      render(json: success_json)
    end
    on_failure { render(json: failed_json, status: 422) }
    on_failed_policy(:not_system) { render_json_error(I18n.t("flags.errors.system")) }
    on_failed_policy(:not_used) { render_json_error(I18n.t("flags.errors.used")) }
    on_failed_policy(:invalid_access) { raise Discourse::InvalidAccess }
    on_failed_contract do |contract|
      render(json: failed_json.merge(errors: contract.errors.full_messages), status: 400)
    end
  end
end

#editObject



25
26
# File 'app/controllers/admin/config/flags_controller.rb', line 25

def edit
end

#indexObject



19
20
# File 'app/controllers/admin/config/flags_controller.rb', line 19

def index
end

#newObject



22
23
# File 'app/controllers/admin/config/flags_controller.rb', line 22

def new
end

#reorderObject



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'app/controllers/admin/config/flags_controller.rb', line 61

def reorder
  Flags::ReorderFlag.call(service_params) do
    on_success do
      Discourse.request_refresh!
      render(json: success_json)
    end
    on_failure { render(json: failed_json, status: 422) }
    on_model_not_found(:message) { raise Discourse::NotFound }
    on_failed_policy(:invalid_access) { raise Discourse::InvalidAccess }
    on_failed_policy(:invalid_move) { render_json_error(I18n.t("flags.errors.wrong_move")) }
    on_failed_contract do |contract|
      render(json: failed_json.merge(errors: contract.errors.full_messages), status: 400)
    end
  end
end

#toggleObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'app/controllers/admin/config/flags_controller.rb', line 4

def toggle
  Flags::ToggleFlag.call(service_params) do
    on_success do
      Discourse.request_refresh!
      render(json: success_json)
    end
    on_failure { render(json: failed_json, status: 422) }
    on_model_not_found(:message) { raise Discourse::NotFound }
    on_failed_policy(:invalid_access) { raise Discourse::InvalidAccess }
    on_failed_contract do |contract|
      render(json: failed_json.merge(errors: contract.errors.full_messages), status: 400)
    end
  end
end

#updateObject



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'app/controllers/admin/config/flags_controller.rb', line 43

def update
  Flags::UpdateFlag.call(service_params) do
    on_success do |flag:|
      Discourse.request_refresh!
      render json: flag, serializer: FlagSerializer, used_flag_ids: Flag.used_flag_ids
    end
    on_failure { render(json: failed_json, status: 422) }
    on_model_not_found(:message) { raise Discourse::NotFound }
    on_failed_policy(:not_system) { render_json_error(I18n.t("flags.errors.system")) }
    on_failed_policy(:not_used) { render_json_error(I18n.t("flags.errors.used")) }
    on_failed_policy(:invalid_access) { raise Discourse::InvalidAccess }
    on_failed_policy(:unique_name) { render_json_error(I18n.t("flags.errors.unique_name")) }
    on_failed_contract do |contract|
      render(json: failed_json.merge(errors: contract.errors.full_messages), status: 400)
    end
  end
end