atomic_admin 1.1.1 → 2.0.0.beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/atomic_admin/api/admin/v1/application_instances_controller.rb +3 -0
  3. data/app/controllers/atomic_admin/api/admin/v1/applications_controller.rb +3 -0
  4. data/app/controllers/atomic_admin/api/admin/v1/lti_installs_controller.rb +3 -0
  5. data/app/controllers/atomic_admin/api/admin/v1/lti_platforms_controller.rb +3 -0
  6. data/app/controllers/atomic_admin/api/admin/v1/sites_controller.rb +3 -0
  7. data/app/controllers/atomic_admin/api/admin/v1/tenant_client_id_strategies_controller.rb +3 -0
  8. data/app/controllers/atomic_admin/api/admin/v1/tenant_deployments_controller.rb +3 -0
  9. data/app/controllers/atomic_admin/api/admin/v1/tenant_platform_guid_strategies_controller.rb +3 -0
  10. data/app/controllers/atomic_admin/v1/admin_controller.rb +49 -0
  11. data/app/controllers/atomic_admin/v1/application_instances_controller.rb +127 -0
  12. data/app/controllers/atomic_admin/v1/applications_controller.rb +49 -0
  13. data/app/controllers/atomic_admin/{atomic_lti_install_controller.rb → v1/lti_installs_controller.rb} +18 -12
  14. data/app/controllers/atomic_admin/v1/lti_platforms_controller.rb +50 -0
  15. data/app/controllers/atomic_admin/v1/sites_controller.rb +46 -0
  16. data/app/controllers/atomic_admin/v1/tenant_client_id_strategies_controller.rb +48 -0
  17. data/app/controllers/atomic_admin/v1/tenant_deployments_controller.rb +47 -0
  18. data/app/controllers/atomic_admin/v1/tenant_platform_guid_strategies_controller.rb +63 -0
  19. data/app/controllers/concerns/filtering.rb +54 -0
  20. data/app/controllers/concerns/require_jwt_token.rb +77 -0
  21. data/config/routes.rb +25 -9
  22. data/lib/atomic_admin/interaction.rb +48 -0
  23. data/lib/atomic_admin/jwt_token/jwks_decoder.rb +41 -0
  24. data/lib/atomic_admin/jwt_token/secret_decoder.rb +29 -0
  25. data/lib/atomic_admin/jwt_token.rb +5 -65
  26. data/lib/atomic_admin/schema/application_instance_configuration_schema.rb +61 -0
  27. data/lib/atomic_admin/schema/application_instance_create_schema.rb +77 -0
  28. data/lib/atomic_admin/schema/application_instance_general_settings_schema.rb +156 -0
  29. data/lib/atomic_admin/schema/application_instance_license_details_schema.rb +99 -0
  30. data/lib/atomic_admin/schema/application_instance_schema.rb +18 -0
  31. data/lib/atomic_admin/schema/application_instance_trial_details_schema.rb +67 -0
  32. data/lib/atomic_admin/schema/application_instance_xml_config_schema.rb +66 -0
  33. data/lib/atomic_admin/schema/atomic_application_update_schema.rb +57 -0
  34. data/lib/atomic_admin/schema.rb +13 -0
  35. data/lib/atomic_admin/version.rb +1 -1
  36. data/lib/atomic_admin.rb +10 -6
  37. metadata +35 -10
  38. data/app/controllers/atomic_admin/application_controller.rb +0 -10
  39. data/app/controllers/atomic_admin/atomic_lti_platform_controller.rb +0 -43
  40. data/app/controllers/atomic_admin/atomic_tenant_client_id_strategy_controller.rb +0 -59
  41. data/app/controllers/atomic_admin/atomic_tenant_deployment_controller.rb +0 -79
  42. data/app/controllers/atomic_admin/atomic_tenant_platform_guid_strategy_controller.rb +0 -58
@@ -0,0 +1,99 @@
1
+
2
+ module AtomicAdmin::Schema
3
+ class ApplicationInstanceLicenseDetailsSchema < ApplicationInstanceSchema
4
+
5
+ def schema
6
+ {
7
+ type: "object",
8
+ properties: {
9
+ is_paid: {
10
+ type: "boolean",
11
+ title: "Paid Account"
12
+ },
13
+ license_start_date: {
14
+ type: ["string", "null"],
15
+ format: "date",
16
+ },
17
+ license_end_date: {
18
+ type: ["string", "null"],
19
+ format: "date",
20
+ },
21
+ licensed_users: {
22
+ type: ["number", "null"],
23
+ minimum: 0,
24
+ },
25
+ license_type: {
26
+ type: ["string", "null"],
27
+ oneOf: [
28
+ {
29
+ title: "Monthly",
30
+ const: "monthly",
31
+ },
32
+ {
33
+ title: "Yearly",
34
+ const: "yearly",
35
+ },
36
+ {
37
+ title: "FTE",
38
+ const: "fte",
39
+ },
40
+ ],
41
+ },
42
+ license_notes: {
43
+ type: ["string", "null"],
44
+ },
45
+ },
46
+ }
47
+ end
48
+
49
+ def uischema
50
+ {
51
+ type: "Group",
52
+ label: "License Details",
53
+ elements: [
54
+ {
55
+ type: "VerticalLayout",
56
+ elements: [
57
+ {
58
+ type: "Control",
59
+ scope: "#/properties/is_paid",
60
+ },
61
+ {
62
+ type: "Control",
63
+ scope: "#/properties/license_start_date",
64
+ options: {
65
+ format: "date",
66
+ },
67
+ },
68
+ {
69
+ type: "Control",
70
+ scope: "#/properties/license_end_date",
71
+ options: {
72
+ format: "date",
73
+ },
74
+ },
75
+ {
76
+ type: "Control",
77
+ scope: "#/properties/licensed_users",
78
+ },
79
+ {
80
+ type: "Control",
81
+ scope: "#/properties/license_type",
82
+ options: {
83
+ format: "radio",
84
+ },
85
+ },
86
+ {
87
+ type: "Control",
88
+ scope: "#/properties/license_notes",
89
+ options: {
90
+ format: "textarea",
91
+ },
92
+ },
93
+ ],
94
+ },
95
+ ],
96
+ }
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,18 @@
1
+
2
+ module AtomicAdmin::Schema
3
+ class ApplicationInstanceSchema
4
+ attr_reader :application_instance
5
+
6
+ def initialize(application_instance:)
7
+ @application_instance = application_instance
8
+ end
9
+
10
+ def schema
11
+ raise "Not implemented"
12
+ end
13
+
14
+ def uischema
15
+ raise "Not implemented"
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,67 @@
1
+
2
+ module AtomicAdmin::Schema
3
+ class ApplicationInstanceTrialDetailsSchema < ApplicationInstanceSchema
4
+
5
+ def schema
6
+ {
7
+ type: "object",
8
+ properties: {
9
+ trial_start_date: {
10
+ type: ["string", "null"],
11
+ format: "date",
12
+ },
13
+ trial_end_date: {
14
+ type: ["string", "null"],
15
+ format: "date",
16
+ },
17
+ trial_users: {
18
+ type: ["number", "null"],
19
+ minimum: 0,
20
+ },
21
+ trial_notes: {
22
+ type: ["string", "null"],
23
+ },
24
+ },
25
+ }
26
+ end
27
+
28
+ def uischema
29
+ {
30
+ type: "Group",
31
+ label: "License Details",
32
+ elements: [
33
+ {
34
+ type: "VerticalLayout",
35
+ elements: [
36
+ {
37
+ type: "Control",
38
+ scope: "#/properties/trial_start_date",
39
+ options: {
40
+ format: "date",
41
+ },
42
+ },
43
+ {
44
+ type: "Control",
45
+ scope: "#/properties/trial_end_date",
46
+ options: {
47
+ format: "date",
48
+ },
49
+ },
50
+ {
51
+ type: "Control",
52
+ scope: "#/properties/trial_users",
53
+ },
54
+ {
55
+ type: "Control",
56
+ scope: "#/properties/trial_notes",
57
+ options: {
58
+ format: "textarea",
59
+ },
60
+ },
61
+ ],
62
+ },
63
+ ],
64
+ }
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,66 @@
1
+ module AtomicAdmin::Schema
2
+ class ApplicationInstanceXmlConfigSchema < ApplicationInstanceSchema
3
+ def schema
4
+ {
5
+ type: "object",
6
+ properties: {
7
+ lti_key: {
8
+ type: "string",
9
+ },
10
+ lti_secret: {
11
+ type: "string",
12
+ },
13
+ lti_config_xml: {
14
+ type: "string",
15
+ },
16
+ }
17
+ }
18
+ end
19
+
20
+ def uischema
21
+ {
22
+ type: "Group",
23
+ label: "LTI 1.1",
24
+ elements: [
25
+ {
26
+ type: "VerticalLayout",
27
+ elements: [
28
+ {
29
+ type: "Control",
30
+ scope: "#/properties/lti_key",
31
+ options: {
32
+ props: {
33
+ label: "LTI Key",
34
+ isReadOnly: true,
35
+ },
36
+ },
37
+ },
38
+ {
39
+ type: "Control",
40
+ scope: "#/properties/lti_secret",
41
+ options: {
42
+ props: {
43
+ label: "LTI Secret",
44
+ },
45
+ },
46
+ },
47
+ {
48
+ type: "Control",
49
+ scope: "#/properties/lti_config_xml",
50
+ options: {
51
+ format: "textarea",
52
+ props: {
53
+ label: "LTI Config XML",
54
+ isReadOnly: true,
55
+ size: "full",
56
+ rows: 20,
57
+ },
58
+ },
59
+ },
60
+ ],
61
+ },
62
+ ],
63
+ }
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,57 @@
1
+ module AtomicAdmin::Schema
2
+ class AtomicApplicationUpdateSchema
3
+ attr_accessor :application
4
+
5
+ def initialize(application)
6
+ @application = application
7
+ end
8
+
9
+ def schema
10
+ {
11
+ type: "object",
12
+ properties: {
13
+ description: {
14
+ type: "string",
15
+ },
16
+ oauth_key: {
17
+ type: ["string", "null"],
18
+ },
19
+ oauth_secret: {
20
+ type: ["string", "null"],
21
+ secret: {
22
+ preview: "ouath_secret_preview",
23
+ value: "oauth_secret"
24
+ }
25
+ },
26
+ }
27
+ }
28
+ end
29
+
30
+ def uischema
31
+ {
32
+ type: "VerticalLayout",
33
+ elements: [
34
+ {
35
+ type: "Control",
36
+ scope: "#/properties/description",
37
+ options: {
38
+ format: "textarea",
39
+ props: {
40
+ size: "full",
41
+ resize: "vertical"
42
+ }
43
+ }
44
+ },
45
+ {
46
+ type: "Control",
47
+ scope: "#/properties/oauth_key",
48
+ },
49
+ {
50
+ type: "Control",
51
+ scope: "#/properties/oauth_secret",
52
+ },
53
+ ]
54
+ }
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,13 @@
1
+ require_relative "schema/atomic_application_update_schema"
2
+ require_relative "schema/application_instance_create_schema"
3
+ require_relative "schema/application_instance_schema"
4
+ require_relative "schema/application_instance_configuration_schema"
5
+ require_relative "schema/application_instance_general_settings_schema"
6
+ require_relative "schema/application_instance_xml_config_schema"
7
+ require_relative "schema/application_instance_trial_details_schema"
8
+ require_relative "schema/application_instance_license_details_schema"
9
+
10
+ module AtomicAdmin
11
+ module Schema
12
+ end
13
+ end
@@ -1,3 +1,3 @@
1
1
  module AtomicAdmin
2
- VERSION = "1.1.1"
2
+ VERSION = "2.0.0.beta.2".freeze
3
3
  end
data/lib/atomic_admin.rb CHANGED
@@ -1,13 +1,17 @@
1
1
  require "atomic_admin/version"
2
2
  require "atomic_admin/engine"
3
3
  require "atomic_admin/jwt_token"
4
+ require "atomic_admin/schema"
5
+ require "atomic_admin/interaction"
4
6
 
5
7
  module AtomicAdmin
6
- # Base controller class to inherit from. If this is set it is responsible for
7
- # all authentication
8
- mattr_accessor :authenticating_base_controller_class, default: nil
8
+ mattr_accessor :admin_jwks_url
9
+ mattr_accessor :audience
10
+ mattr_accessor :internal_secret
11
+ mattr_accessor :application_interactions, default: AtomicAdmin::Interaction::Manager.new
12
+ mattr_accessor :application_instance_interactions, default: AtomicAdmin::Interaction::Manager.new
9
13
 
10
- # Before action hooks to allow custom validation
11
- mattr_accessor :client_id_strategy_before_action, default: nil
12
- mattr_accessor :platform_guid_strategy_before_action, default: nil
14
+ def self.configure
15
+ yield self
16
+ end
13
17
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: atomic_admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 2.0.0.beta.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Benoit
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-05-02 00:00:00.000000000 Z
11
+ date: 2025-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -40,20 +40,45 @@ files:
40
40
  - MIT-LICENSE
41
41
  - README.md
42
42
  - Rakefile
43
- - app/controllers/atomic_admin/application_controller.rb
44
- - app/controllers/atomic_admin/atomic_lti_install_controller.rb
45
- - app/controllers/atomic_admin/atomic_lti_platform_controller.rb
46
- - app/controllers/atomic_admin/atomic_tenant_client_id_strategy_controller.rb
47
- - app/controllers/atomic_admin/atomic_tenant_deployment_controller.rb
48
- - app/controllers/atomic_admin/atomic_tenant_platform_guid_strategy_controller.rb
43
+ - app/controllers/atomic_admin/api/admin/v1/application_instances_controller.rb
44
+ - app/controllers/atomic_admin/api/admin/v1/applications_controller.rb
45
+ - app/controllers/atomic_admin/api/admin/v1/lti_installs_controller.rb
46
+ - app/controllers/atomic_admin/api/admin/v1/lti_platforms_controller.rb
47
+ - app/controllers/atomic_admin/api/admin/v1/sites_controller.rb
48
+ - app/controllers/atomic_admin/api/admin/v1/tenant_client_id_strategies_controller.rb
49
+ - app/controllers/atomic_admin/api/admin/v1/tenant_deployments_controller.rb
50
+ - app/controllers/atomic_admin/api/admin/v1/tenant_platform_guid_strategies_controller.rb
49
51
  - app/controllers/atomic_admin/authenticating_application_controller.rb
52
+ - app/controllers/atomic_admin/v1/admin_controller.rb
53
+ - app/controllers/atomic_admin/v1/application_instances_controller.rb
54
+ - app/controllers/atomic_admin/v1/applications_controller.rb
55
+ - app/controllers/atomic_admin/v1/lti_installs_controller.rb
56
+ - app/controllers/atomic_admin/v1/lti_platforms_controller.rb
57
+ - app/controllers/atomic_admin/v1/sites_controller.rb
58
+ - app/controllers/atomic_admin/v1/tenant_client_id_strategies_controller.rb
59
+ - app/controllers/atomic_admin/v1/tenant_deployments_controller.rb
60
+ - app/controllers/atomic_admin/v1/tenant_platform_guid_strategies_controller.rb
61
+ - app/controllers/concerns/filtering.rb
62
+ - app/controllers/concerns/require_jwt_token.rb
50
63
  - app/jobs/atomic_admin/application_job.rb
51
64
  - app/mailers/atomic_admin/application_mailer.rb
52
65
  - app/models/atomic_admin/application_record.rb
53
66
  - config/routes.rb
54
67
  - lib/atomic_admin.rb
55
68
  - lib/atomic_admin/engine.rb
69
+ - lib/atomic_admin/interaction.rb
56
70
  - lib/atomic_admin/jwt_token.rb
71
+ - lib/atomic_admin/jwt_token/jwks_decoder.rb
72
+ - lib/atomic_admin/jwt_token/secret_decoder.rb
73
+ - lib/atomic_admin/schema.rb
74
+ - lib/atomic_admin/schema/application_instance_configuration_schema.rb
75
+ - lib/atomic_admin/schema/application_instance_create_schema.rb
76
+ - lib/atomic_admin/schema/application_instance_general_settings_schema.rb
77
+ - lib/atomic_admin/schema/application_instance_license_details_schema.rb
78
+ - lib/atomic_admin/schema/application_instance_schema.rb
79
+ - lib/atomic_admin/schema/application_instance_trial_details_schema.rb
80
+ - lib/atomic_admin/schema/application_instance_xml_config_schema.rb
81
+ - lib/atomic_admin/schema/atomic_application_update_schema.rb
57
82
  - lib/atomic_admin/version.rb
58
83
  - lib/tasks/atomic_admin_tasks.rake
59
84
  homepage: https://github.com/atomicjolt/atomic_admin/
@@ -74,9 +99,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
74
99
  version: '0'
75
100
  required_rubygems_version: !ruby/object:Gem::Requirement
76
101
  requirements:
77
- - - ">="
102
+ - - ">"
78
103
  - !ruby/object:Gem::Version
79
- version: '0'
104
+ version: 1.3.1
80
105
  requirements: []
81
106
  rubygems_version: 3.4.10
82
107
  signing_key:
@@ -1,10 +0,0 @@
1
- module AtomicAdmin
2
- BASE_CONTROLLER = if AtomicAdmin.authenticating_base_controller_class
3
- AtomicAdmin.authenticating_base_controller_class.constantize
4
- else
5
- AtomicAdmin::AuthenticatingApplicationController
6
- end
7
-
8
- class ApplicationController < BASE_CONTROLLER
9
- end
10
- end
@@ -1,43 +0,0 @@
1
- module AtomicAdmin
2
- class AtomicLtiPlatformController < ApplicationController
3
- def platform_params
4
- params.permit(:iss, :jwks_url, :token_url, :oidc_url)
5
- end
6
-
7
- def find_platform
8
- AtomicLti::Platform.find_by(id: params[:id])
9
- end
10
-
11
- def index
12
- page = AtomicLti::Platform.all.order(:id).paginate(page: params[:page], per_page: 30)
13
-
14
- render json: {
15
- platforms: page,
16
- page: params[:page],
17
- total_pages: page.total_pages
18
- }
19
- end
20
-
21
- def create
22
- platform = AtomicLti::Platform.create!(platform_params)
23
- render json: { platform: platform }
24
- end
25
-
26
- def show
27
- platform = find_platform
28
- render json: platform
29
- end
30
-
31
- def update
32
- platform = find_platform
33
- platform.update!(platform_params)
34
- render json: { platform: find_platform }
35
- end
36
-
37
- def destroy
38
- platform = find_platform
39
- platform.destroy
40
- render json: platform
41
- end
42
- end
43
- end
@@ -1,59 +0,0 @@
1
- module AtomicAdmin
2
- class AtomicTenantClientIdStrategyController < ApplicationController
3
-
4
- if AtomicAdmin.client_id_strategy_before_action.present?
5
- before_action AtomicAdmin.client_id_strategy_before_action, only: [:create, :update]
6
- end
7
-
8
- def pinned_client_id_params
9
- params.permit(:iss, :client_id, :application_instance_id)
10
- end
11
-
12
- def find_pinned_client_id
13
- AtomicTenant::PinnedClientId.find_by(id: params[:id])
14
- end
15
-
16
- def search
17
- page = AtomicTenant::PinnedClientId
18
- .where(application_instance_id: params[:application_instance_id])
19
- .order(:id).paginate(page: params[:page], per_page: 30)
20
- render json: {
21
- pinned_client_ids: page,
22
- page: params[:page],
23
- total_pages: page.total_pages
24
- }
25
- end
26
-
27
- # def index
28
- # page = AtomicTenant::PinnedClientId.all.order(:id).paginate(page: params[:page], per_page: 30)
29
- # render json: {
30
- # pinned_client_ids: page,
31
- # page: params[:page],
32
- # total_pages: page.total_pages
33
- # }
34
- # end
35
-
36
- def create
37
- result = AtomicTenant::PinnedClientId.create!(pinned_client_id_params)
38
- render json: { pinned_client_id: result }
39
- end
40
-
41
- def show
42
- pinned_client_id = find_pinned_client_id
43
- render json: {pinned_client_id: pinned_client_id}
44
- end
45
-
46
- # def update
47
- # pinned_client_id = find_pinned_client_id
48
- # pinned_client_id.update!(pinned_client_id_params)
49
-
50
- # render json: {pinned_client_id: find_pinned_client_id}
51
- # end
52
-
53
- def destroy
54
- pinned_client_id = find_pinned_client_id
55
- pinned_client_id.destroy
56
- render json: { pinned_client_id: pinned_client_id }
57
- end
58
- end
59
- end
@@ -1,79 +0,0 @@
1
- module AtomicAdmin
2
- class AtomicTenantDeploymentController < ApplicationController
3
- def deployment_params
4
- params.permit(:iss, :deployment_id, :application_instance_id)
5
- end
6
-
7
- def find_deployment
8
- AtomicTenant::LtiDeployment.find_by(id: params[:id])
9
- end
10
-
11
- def search
12
- tenant_deployments = AtomicTenant::LtiDeployment.
13
- where(application_instance_id: params[:application_instance_id]).
14
- joins("LEFT OUTER JOIN public.atomic_lti_deployments"\
15
- " ON atomic_tenant_lti_deployments.iss = atomic_lti_deployments.iss"\
16
- " AND atomic_tenant_lti_deployments.deployment_id = atomic_lti_deployments.deployment_id").
17
- order(:id).
18
- paginate(page: params[:page], per_page: 30)
19
-
20
- rows = tenant_deployments.pluck(
21
- "atomic_tenant_lti_deployments.id",
22
- "atomic_tenant_lti_deployments.iss",
23
- "atomic_tenant_lti_deployments.deployment_id",
24
- "atomic_tenant_lti_deployments.application_instance_id",
25
- "atomic_lti_deployments.client_id",
26
- "atomic_lti_deployments.platform_guid",
27
- )
28
-
29
- page = rows.map do |row|
30
- {
31
- id: row[0],
32
- iss: row[1],
33
- deployment_id: row[2],
34
- application_instance_id: row[3],
35
- client_id: row[4],
36
- platform_guid: row[5],
37
- }
38
- end
39
-
40
- render json: {
41
- deployments: page,
42
- page: params[:page],
43
- total_pages: tenant_deployments.total_pages,
44
- }
45
- end
46
-
47
- # def index
48
- # page = AtomicTenant::LtiDeployment.all.order(:id).paginate(page: params[:page], per_page: 30)
49
- # render json: {
50
- # deployments: page,
51
- # page: params[:page],
52
- # total_pages: page.total_pages
53
- # }
54
- # end
55
-
56
- def create
57
- result = AtomicTenant::LtiDeployment.create!(deployment_params)
58
- render json: { deployment: result }
59
- end
60
-
61
- def show
62
- deployment = find_deployment
63
- render json: { deployment: deployment }
64
- end
65
-
66
- # def update
67
- # deployment = find_deployment
68
- # deployment.update!(deployment_params)
69
-
70
- # render json: {deployment: find_deployment}
71
- # end
72
-
73
- def destroy
74
- deployment = find_deployment
75
- deployment.destroy
76
- render json: { deployment: deployment }
77
- end
78
- end
79
- end
@@ -1,58 +0,0 @@
1
- module AtomicAdmin
2
- class AtomicTenantPlatformGuidStrategyController < ApplicationController
3
- if AtomicAdmin.platform_guid_strategy_before_action.present?
4
- before_action AtomicAdmin.platform_guid_strategy_before_action, only: [:create, :update]
5
- end
6
-
7
- def pinned_platform_guid_params
8
- params.permit(:iss, :platform_guid, :application_id, :application_instance_id)
9
- end
10
-
11
- def find_pinned_platform_guid
12
- AtomicTenant::PinnedPlatformGuid.find(params[:id])
13
- end
14
-
15
- def search
16
- page = AtomicTenant::PinnedPlatformGuid
17
- .where(application_instance_id: params[:application_instance_id])
18
- .order(:id).paginate(page: params[:page], per_page: 30)
19
- render json: {
20
- pinned_platform_guids: page,
21
- page: params[:page],
22
- total_pages: page.total_pages
23
- }
24
- end
25
-
26
- # def index
27
- # page = AtomicTenant::PinnedPlatformGuid.all.order(:id).paginate(page: params[:page], per_page: 30)
28
- # render json: {
29
- # pinned_platform_guids: page,
30
- # page: params[:page],
31
- # total_pages: page.total_pages
32
- # }
33
- # end
34
-
35
- def create
36
- result = AtomicTenant::PinnedPlatformGuid.create!(pinned_platform_guid_params)
37
- render json: { pinned_platform_guid: result }
38
- end
39
-
40
- def show
41
- pinned_platform_guid = find_pinned_platform_guid
42
- render json: {pinned_platform_guid: pinned_platform_guid}
43
- end
44
-
45
- def update
46
- pinned_platform_guid = find_pinned_platform_guid
47
- pinned_platform_guid.update!(pinned_platform_guid_params)
48
-
49
- render json: {pinned_platform_guid: find_pinned_platform_guid}
50
- end
51
-
52
- def destroy
53
- pinned_platform_guid = find_pinned_platform_guid
54
- pinned_platform_guid.destroy
55
- render json: { pinned_platform_guid: pinned_platform_guid }
56
- end
57
- end
58
- end