lockstep_rails 0.3.22
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.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +216 -0
- data/Rakefile +31 -0
- data/app/assets/config/lockstep_rails_manifest.js +0 -0
- data/app/concepts/lockstep/active_records/association.rb +78 -0
- data/app/concepts/lockstep/api_record.rb +1118 -0
- data/app/concepts/lockstep/api_records/scopes.rb +20 -0
- data/app/concepts/lockstep/client.rb +162 -0
- data/app/concepts/lockstep/error.rb +50 -0
- data/app/concepts/lockstep/exceptions.rb +4 -0
- data/app/concepts/lockstep/query.rb +409 -0
- data/app/concepts/lockstep/query_methods.rb +75 -0
- data/app/concepts/lockstep/relation_array.rb +100 -0
- data/app/helpers/types.rb +3 -0
- data/app/models/lockstep/account.rb +15 -0
- data/app/models/lockstep/connection.rb +19 -0
- data/app/models/lockstep/contact.rb +9 -0
- data/app/models/lockstep/customer_summary.rb +6 -0
- data/app/models/lockstep/invoice.rb +7 -0
- data/app/models/lockstep/invoice_summary.rb +6 -0
- data/app/models/lockstep/invoices/address.rb +24 -0
- data/app/models/lockstep/note.rb +7 -0
- data/app/models/lockstep/payment.rb +7 -0
- data/app/models/lockstep/payment_summary.rb +6 -0
- data/app/models/lockstep/user.rb +10 -0
- data/app/platform_api/model_template.rb.erb +27 -0
- data/app/platform_api/schema/action_result.rb +15 -0
- data/app/platform_api/schema/activity.rb +141 -0
- data/app/platform_api/schema/activity_fetch_result.rb +26 -0
- data/app/platform_api/schema/activity_stream_item.rb +58 -0
- data/app/platform_api/schema/activity_x_ref.rb +37 -0
- data/app/platform_api/schema/aging.rb +24 -0
- data/app/platform_api/schema/api_key.rb +71 -0
- data/app/platform_api/schema/api_key_fetch_result.rb +26 -0
- data/app/platform_api/schema/app_enrollment.rb +88 -0
- data/app/platform_api/schema/app_enrollment_custom_field.rb +67 -0
- data/app/platform_api/schema/app_enrollment_custom_field_fetch_result.rb +26 -0
- data/app/platform_api/schema/app_enrollment_fetch_result.rb +26 -0
- data/app/platform_api/schema/application.rb +89 -0
- data/app/platform_api/schema/application_fetch_result.rb +26 -0
- data/app/platform_api/schema/ar_aging_header_info.rb +47 -0
- data/app/platform_api/schema/ar_header_info.rb +118 -0
- data/app/platform_api/schema/assembly.rb +68 -0
- data/app/platform_api/schema/at_risk_invoice_summary.rb +90 -0
- data/app/platform_api/schema/at_risk_invoice_summary_fetch_result.rb +26 -0
- data/app/platform_api/schema/attachment.rb +92 -0
- data/app/platform_api/schema/attachment_fetch_result.rb +26 -0
- data/app/platform_api/schema/attachment_header_info.rb +41 -0
- data/app/platform_api/schema/batch_sync.rb +18 -0
- data/app/platform_api/schema/bulk_currency_conversion.rb +19 -0
- data/app/platform_api/schema/cashflow_report.rb +35 -0
- data/app/platform_api/schema/code_definition.rb +58 -0
- data/app/platform_api/schema/code_definition_fetch_result.rb +26 -0
- data/app/platform_api/schema/company.rb +243 -0
- data/app/platform_api/schema/company_fetch_result.rb +26 -0
- data/app/platform_api/schema/company_sync.rb +142 -0
- data/app/platform_api/schema/connector_info.rb +27 -0
- data/app/platform_api/schema/constructor_info.rb +128 -0
- data/app/platform_api/schema/contact.rb +148 -0
- data/app/platform_api/schema/contact_fetch_result.rb +26 -0
- data/app/platform_api/schema/contact_sync.rb +109 -0
- data/app/platform_api/schema/country.rb +62 -0
- data/app/platform_api/schema/country_fetch_result.rb +26 -0
- data/app/platform_api/schema/credit_memo_applied.rb +104 -0
- data/app/platform_api/schema/credit_memo_applied_fetch_result.rb +26 -0
- data/app/platform_api/schema/credit_memo_applied_sync.rb +67 -0
- data/app/platform_api/schema/credit_memo_invoice.rb +77 -0
- data/app/platform_api/schema/currency.rb +31 -0
- data/app/platform_api/schema/currency_fetch_result.rb +26 -0
- data/app/platform_api/schema/currency_rate.rb +28 -0
- data/app/platform_api/schema/custom_attribute_data.rb +18 -0
- data/app/platform_api/schema/custom_attribute_named_argument.rb +24 -0
- data/app/platform_api/schema/custom_attribute_typed_argument.rb +16 -0
- data/app/platform_api/schema/custom_field_definition.rb +76 -0
- data/app/platform_api/schema/custom_field_definition_fetch_result.rb +26 -0
- data/app/platform_api/schema/custom_field_sync.rb +71 -0
- data/app/platform_api/schema/custom_field_value.rb +75 -0
- data/app/platform_api/schema/custom_field_value_fetch_result.rb +26 -0
- data/app/platform_api/schema/customer_details.rb +98 -0
- data/app/platform_api/schema/customer_details_payment.rb +60 -0
- data/app/platform_api/schema/customer_summary.rb +88 -0
- data/app/platform_api/schema/customer_summary_fetch_result.rb +26 -0
- data/app/platform_api/schema/daily_sales_outstanding_report.rb +25 -0
- data/app/platform_api/schema/developer_account_submit.rb +23 -0
- data/app/platform_api/schema/email.rb +160 -0
- data/app/platform_api/schema/email_fetch_result.rb +26 -0
- data/app/platform_api/schema/erp.rb +23 -0
- data/app/platform_api/schema/erp_fetch_result.rb +26 -0
- data/app/platform_api/schema/erp_info.rb +18 -0
- data/app/platform_api/schema/erp_info_data.rb +23 -0
- data/app/platform_api/schema/event_info.rb +59 -0
- data/app/platform_api/schema/exception.rb +41 -0
- data/app/platform_api/schema/field_info.rb +105 -0
- data/app/platform_api/schema/financial_account.rb +90 -0
- data/app/platform_api/schema/financial_account_balance_history.rb +90 -0
- data/app/platform_api/schema/financial_account_balance_history_fetch_result.rb +26 -0
- data/app/platform_api/schema/financial_account_fetch_result.rb +26 -0
- data/app/platform_api/schema/financial_year_setting.rb +74 -0
- data/app/platform_api/schema/financial_year_setting_fetch_result.rb +26 -0
- data/app/platform_api/schema/invite.rb +25 -0
- data/app/platform_api/schema/invite_data.rb +18 -0
- data/app/platform_api/schema/invite_submit.rb +15 -0
- data/app/platform_api/schema/invoice.rb +226 -0
- data/app/platform_api/schema/invoice_address.rb +97 -0
- data/app/platform_api/schema/invoice_fetch_result.rb +29 -0
- data/app/platform_api/schema/invoice_history.rb +188 -0
- data/app/platform_api/schema/invoice_history_fetch_result.rb +26 -0
- data/app/platform_api/schema/invoice_line.rb +142 -0
- data/app/platform_api/schema/invoice_line_sync.rb +208 -0
- data/app/platform_api/schema/invoice_payment_detail.rb +65 -0
- data/app/platform_api/schema/invoice_summary.rb +85 -0
- data/app/platform_api/schema/invoice_summary_fetch_result.rb +26 -0
- data/app/platform_api/schema/invoice_sync.rb +280 -0
- data/app/platform_api/schema/lead.rb +32 -0
- data/app/platform_api/schema/member_info.rb +36 -0
- data/app/platform_api/schema/method_base.rb +128 -0
- data/app/platform_api/schema/method_info.rb +137 -0
- data/app/platform_api/schema/module.rb +44 -0
- data/app/platform_api/schema/module_handle.rb +15 -0
- data/app/platform_api/schema/note.rb +72 -0
- data/app/platform_api/schema/note_fetch_result.rb +26 -0
- data/app/platform_api/schema/parameter_info.rb +64 -0
- data/app/platform_api/schema/payment.rb +147 -0
- data/app/platform_api/schema/payment_applied.rb +95 -0
- data/app/platform_api/schema/payment_applied_fetch_result.rb +26 -0
- data/app/platform_api/schema/payment_applied_sync.rb +74 -0
- data/app/platform_api/schema/payment_detail.rb +110 -0
- data/app/platform_api/schema/payment_detail_fetch_result.rb +26 -0
- data/app/platform_api/schema/payment_detail_header.rb +43 -0
- data/app/platform_api/schema/payment_fetch_result.rb +26 -0
- data/app/platform_api/schema/payment_summary.rb +79 -0
- data/app/platform_api/schema/payment_summary_fetch_result.rb +26 -0
- data/app/platform_api/schema/payment_sync.rb +112 -0
- data/app/platform_api/schema/problem_details.rb +31 -0
- data/app/platform_api/schema/property_info.rb +60 -0
- data/app/platform_api/schema/provisioning.rb +28 -0
- data/app/platform_api/schema/provisioning_finalize_request.rb +28 -0
- data/app/platform_api/schema/provisioning_response.rb +42 -0
- data/app/platform_api/schema/risk_rate.rb +57 -0
- data/app/platform_api/schema/runtime_field_handle.rb +13 -0
- data/app/platform_api/schema/runtime_method_handle.rb +13 -0
- data/app/platform_api/schema/runtime_type_handle.rb +13 -0
- data/app/platform_api/schema/state.rb +22 -0
- data/app/platform_api/schema/state_fetch_result.rb +26 -0
- data/app/platform_api/schema/status.rb +72 -0
- data/app/platform_api/schema/struct_layout_attribute.rb +16 -0
- data/app/platform_api/schema/sync_entity_result.rb +34 -0
- data/app/platform_api/schema/sync_request.rb +71 -0
- data/app/platform_api/schema/sync_request_fetch_result.rb +26 -0
- data/app/platform_api/schema/sync_submit.rb +15 -0
- data/app/platform_api/schema/test_argument_exception.rb +41 -0
- data/app/platform_api/schema/test_timeout_exception.rb +41 -0
- data/app/platform_api/schema/transfer_owner.rb +16 -0
- data/app/platform_api/schema/transfer_owner_submit.rb +15 -0
- data/app/platform_api/schema/type.rb +278 -0
- data/app/platform_api/schema/type_info.rb +287 -0
- data/app/platform_api/schema/uri.rb +15 -0
- data/app/platform_api/schema/user_account.rb +152 -0
- data/app/platform_api/schema/user_account_fetch_result.rb +26 -0
- data/app/platform_api/schema/user_role.rb +50 -0
- data/app/platform_api/schema/user_role_fetch_result.rb +26 -0
- data/app/platform_api/schema/webhook.rb +96 -0
- data/app/platform_api/schema/webhook_fetch_result.rb +26 -0
- data/app/platform_api/schema/webhook_history_table_storage.rb +64 -0
- data/app/platform_api/schema/webhook_history_table_storage_fetch_result.rb +26 -0
- data/app/platform_api/swagger.json +22056 -0
- data/config/routes.rb +2 -0
- data/lib/lockstep_rails/engine.rb +4 -0
- data/lib/lockstep_rails/version.rb +3 -0
- data/lib/lockstep_rails.rb +5 -0
- data/lib/tasks/lockstep_rails_tasks.rake +4 -0
- data/lib/tasks/update_api_schema.rake +159 -0
- metadata +230 -0
@@ -0,0 +1,75 @@
|
|
1
|
+
#require 'parse_resource'
|
2
|
+
require "lockstep/query"
|
3
|
+
|
4
|
+
module Lockstep
|
5
|
+
module QueryMethods
|
6
|
+
module ClassMethods
|
7
|
+
def query_builder
|
8
|
+
@query_builder = Query.new(self)
|
9
|
+
unless scopes[:default_scope].nil?
|
10
|
+
@query_builder.criteria.deep_merge!(Lockstep::ApiRecord.instance_exec(&scopes[:default_scope]).criteria)
|
11
|
+
end
|
12
|
+
|
13
|
+
@query_builder
|
14
|
+
end
|
15
|
+
|
16
|
+
def unscoped
|
17
|
+
Query.new(self)
|
18
|
+
end
|
19
|
+
|
20
|
+
def none
|
21
|
+
query_builder.none
|
22
|
+
end
|
23
|
+
|
24
|
+
# Include the attributes of a parent ojbect in the results
|
25
|
+
# Similar to ActiveRecord eager loading
|
26
|
+
#
|
27
|
+
def include_object(*associations)
|
28
|
+
query_builder.include_object(*associations)
|
29
|
+
end
|
30
|
+
|
31
|
+
# Add this at the end of a method chain to get the count of objects, instead of an Array of objects
|
32
|
+
def count
|
33
|
+
#https://www.parse.com/docs/rest#queries-counting
|
34
|
+
query_builder.count
|
35
|
+
end
|
36
|
+
|
37
|
+
# Find all Lockstep::ApiRecord objects for that model.
|
38
|
+
#
|
39
|
+
# @return [Array] an `Array` of objects that subclass `Lockstep::ApiRecord`.
|
40
|
+
def all
|
41
|
+
query_builder.all
|
42
|
+
end
|
43
|
+
|
44
|
+
# Find the first object. Fairly random, not based on any specific condition.
|
45
|
+
#
|
46
|
+
def first
|
47
|
+
query_builder.limit(1).first
|
48
|
+
end
|
49
|
+
|
50
|
+
# Limits the number of objects returned
|
51
|
+
#
|
52
|
+
def limit(n)
|
53
|
+
query_builder.limit(n)
|
54
|
+
end
|
55
|
+
|
56
|
+
# Skip the number of objects
|
57
|
+
#
|
58
|
+
def page(n)
|
59
|
+
query_builder.page(n)
|
60
|
+
end
|
61
|
+
|
62
|
+
def order(*attr)
|
63
|
+
query_builder.order(*attr)
|
64
|
+
end
|
65
|
+
|
66
|
+
def reorder(*attr)
|
67
|
+
query_builder.reorder(*attr)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def self.included(base)
|
72
|
+
base.extend(ClassMethods)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,100 @@
|
|
1
|
+
class Lockstep::RelationArray < Array
|
2
|
+
attr_accessor :delegate, :key, :class_name
|
3
|
+
|
4
|
+
def initialize(delegate, items, key, class_name)
|
5
|
+
super(items)
|
6
|
+
self.delegate = delegate
|
7
|
+
self.key = key
|
8
|
+
self.class_name = class_name
|
9
|
+
|
10
|
+
class_eval do
|
11
|
+
define_method("#{key}_ids") do
|
12
|
+
each.map { |item| item.id }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def create(attributes_hash = {})
|
18
|
+
object = new(attributes_hash)
|
19
|
+
return false unless object.save
|
20
|
+
|
21
|
+
object
|
22
|
+
end
|
23
|
+
|
24
|
+
def new(attributes_hash = {})
|
25
|
+
# Assign the parent records primary_key to the foreign_key of the association
|
26
|
+
relation_config = delegate.class.lockstep_has_many_relations[key]
|
27
|
+
foreign_key = relation_config[:foreign_key]
|
28
|
+
primary_key = relation_config[:primary_key]
|
29
|
+
attributes_hash[foreign_key] = delegate.send(primary_key)
|
30
|
+
if relation_config[:polymorphic]
|
31
|
+
polymorphic_config = Lockstep::RelationArray.has_many_polymorphic_attributes(self, relation_config[:polymorphic])
|
32
|
+
attributes_hash.merge!(polymorphic_config) if polymorphic_config.is_a?(Hash)
|
33
|
+
end
|
34
|
+
object = self.class_name.constantize.new(attributes_hash)
|
35
|
+
self.push object
|
36
|
+
|
37
|
+
object
|
38
|
+
end
|
39
|
+
|
40
|
+
# @has_many_associations polymorphic properties builder.
|
41
|
+
# Polymorphic properties is used to further scope down the has_many association while querying or creating
|
42
|
+
#
|
43
|
+
def self.has_many_polymorphic_attributes(record, polymorphic_config)
|
44
|
+
return polymorphic_config if polymorphic_config.is_a?(Hash)
|
45
|
+
return record.instance_eval record, &polymorphic_config if polymorphic_config.is_a?(Proc)
|
46
|
+
|
47
|
+
nil
|
48
|
+
end
|
49
|
+
|
50
|
+
def <<(object)
|
51
|
+
if object.is_a? Hash
|
52
|
+
create(object)
|
53
|
+
return object
|
54
|
+
end
|
55
|
+
|
56
|
+
raise Exception.new("This relation only stores objects of type #{class_name.to_s.constantize}") if !object.is_a? class_name.to_s.constantize
|
57
|
+
|
58
|
+
super(object)
|
59
|
+
object
|
60
|
+
end
|
61
|
+
|
62
|
+
def push(object)
|
63
|
+
self << object
|
64
|
+
end
|
65
|
+
|
66
|
+
def delete(object)
|
67
|
+
if object.is_a? Hash
|
68
|
+
object_id = object["objectId"]
|
69
|
+
elsif object.is_a? String
|
70
|
+
object_id = object
|
71
|
+
else
|
72
|
+
object_id = object.id
|
73
|
+
end
|
74
|
+
|
75
|
+
self.each { |item| super(item) if item.id == object_id }
|
76
|
+
end
|
77
|
+
|
78
|
+
def contains?(object)
|
79
|
+
self.each { |item| return true if item.attributes == object.attributes }
|
80
|
+
false
|
81
|
+
end
|
82
|
+
|
83
|
+
def exists?(query)
|
84
|
+
each do |item|
|
85
|
+
conditions_met = true
|
86
|
+
item.attributes.each do |key, value|
|
87
|
+
conditions_met = false if query.has_key?(key) and query[key] != value
|
88
|
+
break
|
89
|
+
end
|
90
|
+
return true if conditions_met
|
91
|
+
end
|
92
|
+
false
|
93
|
+
end
|
94
|
+
|
95
|
+
def find(id_to_find)
|
96
|
+
each do |item|
|
97
|
+
return item if id_to_find == item.id
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class Lockstep::Account < Lockstep::ApiRecord
|
2
|
+
self.model_name_uri = "v1/Companies"
|
3
|
+
self.id_ref = "company_id"
|
4
|
+
load_schema(Schema::Company)
|
5
|
+
|
6
|
+
enum company_type: %w(Group)
|
7
|
+
|
8
|
+
has_many :connections, class_name: "Lockstep::Connection", included: false, loader: ->(account) { Lockstep::Connection.all }
|
9
|
+
has_many :contacts, class_name: "Lockstep::Contact", included: false, loader: ->(account) { Lockstep::Contact.all }
|
10
|
+
has_many :users, class_name: "Lockstep::User", included: false
|
11
|
+
|
12
|
+
validates :company_name, presence: true
|
13
|
+
|
14
|
+
default_scope { where(company_type: %w(Group)) }
|
15
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class Lockstep::Connection < Lockstep::ApiRecord
|
2
|
+
self.model_name_uri = "v1/Companies"
|
3
|
+
self.id_ref = "company_id"
|
4
|
+
load_schema(Schema::Company)
|
5
|
+
|
6
|
+
enum company_type: %w(Customer Vendor)
|
7
|
+
|
8
|
+
has_many :contacts, class_name: "Lockstep::Contact", included: true
|
9
|
+
belongs_to :created_user, class_name: "Lockstep::User", foreign_key: :created_user_id, primary_key: :user_id
|
10
|
+
belongs_to :modified_user, class_name: "Lockstep::User", foreign_key: :modified_user_id, primary_key: :user_id
|
11
|
+
|
12
|
+
validates :company_name, presence: true
|
13
|
+
|
14
|
+
default_scope { where(company_type: %w(Customer Vendor)).or(where(company_type: nil)) }
|
15
|
+
|
16
|
+
scope :customers, -> { where(company_type: "Customer") }
|
17
|
+
scope :vendors, -> { where(company_type: "Vendor") }
|
18
|
+
scope :company_type_null, -> { where(company_type: nil) }
|
19
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
class Lockstep::Contact < Lockstep::ApiRecord
|
2
|
+
self.model_name_uri = "v1/Contacts"
|
3
|
+
self.id_ref = "contact_id"
|
4
|
+
load_schema(Schema::Contact)
|
5
|
+
|
6
|
+
validates :email_address, presence: true
|
7
|
+
|
8
|
+
belongs_to :connection, class_name: "Lockstep::Connection", included: false
|
9
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
class Lockstep::Invoices::Address < Lockstep::ApiRecord
|
2
|
+
self.id_ref = "invoice_address_id"
|
3
|
+
|
4
|
+
field :invoice_address_id
|
5
|
+
field :group_key
|
6
|
+
field :invoice_id
|
7
|
+
field :line1
|
8
|
+
field :line2
|
9
|
+
field :line3
|
10
|
+
field :city
|
11
|
+
field :region
|
12
|
+
field :postal_code
|
13
|
+
field :country
|
14
|
+
field :latitude
|
15
|
+
field :longitude
|
16
|
+
field :created, Types::Params::DateTime
|
17
|
+
field :created_user_id
|
18
|
+
field :modified, Types::Params::DateTime
|
19
|
+
field :modified_user_id
|
20
|
+
field :app_enrollment_id
|
21
|
+
|
22
|
+
belongs_to :created_user, class_name: "Lockstep::User", foreign_key: :created_user_id, primary_key: :user_id
|
23
|
+
belongs_to :modified_user, class_name: "Lockstep::User", foreign_key: :modified_user_id, primary_key: :user_id
|
24
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
class Lockstep::User < Lockstep::ApiRecord
|
2
|
+
self.model_name_uri = "v1/UserAccounts"
|
3
|
+
self.id_ref = "user_id"
|
4
|
+
load_schema(Schema::UserAccount)
|
5
|
+
|
6
|
+
# # Load the first account
|
7
|
+
belongs_to :account, class_name: "Lockstep::Account", loader: ->(user) { Lockstep::Account.first }
|
8
|
+
|
9
|
+
alias_attribute :last_logged_in, :b2_c_last_logged_in
|
10
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class Schema::<%= class_name %> < Lockstep::ApiRecord
|
2
|
+
|
3
|
+
# ApiRecord will crash unless `id_ref` is defined
|
4
|
+
def self.id_ref
|
5
|
+
nil
|
6
|
+
end
|
7
|
+
|
8
|
+
<% fields.each do |field_name, config| -%>
|
9
|
+
<%= config["description"].nil? ? nil : "# #{config['description'].gsub("\n", "\n # ")}"%>
|
10
|
+
<% if !config["type"].nil? -%>
|
11
|
+
# @type: <%= config["type"] %>
|
12
|
+
<%end -%>
|
13
|
+
<% if !config["format"].nil? -%>
|
14
|
+
# @format: <%= config["format"] %>
|
15
|
+
<%end -%>
|
16
|
+
field :<%= field_name %><%= config["value_type"].nil? ? nil : ", #{config["value_type"]}" %>
|
17
|
+
|
18
|
+
<%end -%>
|
19
|
+
<% belongs_to_relations.each do |relation, config| -%>
|
20
|
+
belongs_to :<%= relation %>, <%= config %>
|
21
|
+
<%end -%>
|
22
|
+
|
23
|
+
<% has_many_relations.each do |relation, config| -%>
|
24
|
+
has_many :<%= relation %>, <%= config %>
|
25
|
+
<%end -%>
|
26
|
+
|
27
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class Schema::ActionResult < Lockstep::ApiRecord
|
2
|
+
|
3
|
+
# ApiRecord will crash unless `id_ref` is defined
|
4
|
+
def self.id_ref
|
5
|
+
nil
|
6
|
+
end
|
7
|
+
|
8
|
+
# If the API call produced messages, this element will contain a list of user-visible
|
9
|
+
# text strings that contain information about what work occurred in the API.
|
10
|
+
# @type: array
|
11
|
+
field :messages
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,141 @@
|
|
1
|
+
class Schema::Activity < Lockstep::ApiRecord
|
2
|
+
|
3
|
+
# ApiRecord will crash unless `id_ref` is defined
|
4
|
+
def self.id_ref
|
5
|
+
nil
|
6
|
+
end
|
7
|
+
|
8
|
+
# The unique ID of this record, automatically assigned by Lockstep when this record is
|
9
|
+
# added to the Lockstep platform.
|
10
|
+
# @type: string
|
11
|
+
# @format: uuid
|
12
|
+
field :activity_id
|
13
|
+
|
14
|
+
# The GroupKey uniquely identifies a single Lockstep Platform account. All records for this
|
15
|
+
# account will share the same GroupKey value. GroupKey values cannot be changed once created.
|
16
|
+
#
|
17
|
+
# For more information, see [Accounts and GroupKeys](https://developer.lockstep.io/docs/accounts-and-groupkeys).
|
18
|
+
# @type: string
|
19
|
+
# @format: uuid
|
20
|
+
field :group_key
|
21
|
+
|
22
|
+
# The ID of the company to which this activity belongs.
|
23
|
+
# @type: string
|
24
|
+
# @format: uuid
|
25
|
+
field :company_id
|
26
|
+
|
27
|
+
# The type code of the activity
|
28
|
+
# @type: string
|
29
|
+
field :activity_type_code
|
30
|
+
|
31
|
+
# The name of the activity. The name is a short name provided by the
|
32
|
+
# person who created the activity that can be displayed in a list.
|
33
|
+
# @type: string
|
34
|
+
field :activity_name
|
35
|
+
|
36
|
+
# A description of the activity. This field contains more detailed text about the
|
37
|
+
# activity and can be lengthy.
|
38
|
+
# @type: string
|
39
|
+
field :activity_description
|
40
|
+
|
41
|
+
# The status of the activity.
|
42
|
+
# @type: string
|
43
|
+
field :activity_status
|
44
|
+
|
45
|
+
# True if this activity is currently "open", which indicates that the activity is
|
46
|
+
# currently in progress.
|
47
|
+
# @type: boolean
|
48
|
+
field :is_open
|
49
|
+
|
50
|
+
# The priority of the activity.
|
51
|
+
# @type: string
|
52
|
+
field :priority
|
53
|
+
|
54
|
+
# The ID of the user the activity is assigned to.
|
55
|
+
# @type: string
|
56
|
+
# @format: uuid
|
57
|
+
field :user_assigned_to
|
58
|
+
|
59
|
+
# The date the activity was assigned.
|
60
|
+
# @type: string
|
61
|
+
# @format: date-time
|
62
|
+
field :date_assigned, Types::Params::DateTime
|
63
|
+
|
64
|
+
# The date the activity was closed.
|
65
|
+
# @type: string
|
66
|
+
# @format: date-time
|
67
|
+
field :date_closed, Types::Params::DateTime
|
68
|
+
|
69
|
+
# If this activity has been "snoozed", this field will be non-null and will contain
|
70
|
+
# the date when the activity will be displayed. Until that date arrives, the activity
|
71
|
+
# will remain hidden.
|
72
|
+
# @type: string
|
73
|
+
# @format: date-time
|
74
|
+
field :snooze_until_date, Types::Params::DateTime
|
75
|
+
|
76
|
+
# The date on which this activity was created.
|
77
|
+
# @type: string
|
78
|
+
# @format: date-time
|
79
|
+
field :created, Types::Params::DateTime
|
80
|
+
|
81
|
+
# The ID of the user who created this activity.
|
82
|
+
# @type: string
|
83
|
+
# @format: uuid
|
84
|
+
field :created_user_id
|
85
|
+
|
86
|
+
# The date on which this activity was last modified.
|
87
|
+
# @type: string
|
88
|
+
# @format: date-time
|
89
|
+
field :modified, Types::Params::DateTime
|
90
|
+
|
91
|
+
# The ID of the user who last modified this activity.
|
92
|
+
# @type: string
|
93
|
+
# @format: uuid
|
94
|
+
field :modified_user_id
|
95
|
+
|
96
|
+
# Amount collected (if any) for the activity.
|
97
|
+
# @type: number
|
98
|
+
# @format: double
|
99
|
+
field :amount_collected
|
100
|
+
|
101
|
+
# Amount paid (if any) for the activity.
|
102
|
+
# @type: number
|
103
|
+
# @format: double
|
104
|
+
field :amount_paid
|
105
|
+
|
106
|
+
# Credit given (if any) for the activity.
|
107
|
+
# @type: number
|
108
|
+
# @format: double
|
109
|
+
field :credit_given
|
110
|
+
|
111
|
+
# True if this activity is to be shown in an "unread" state. When an activity
|
112
|
+
# is read by a person it is assigned to, this flag is set to false.
|
113
|
+
# @type: boolean
|
114
|
+
field :is_unread
|
115
|
+
|
116
|
+
# Activities may be archived when they should be hidden from the user. When
|
117
|
+
# this flag is true, this activity should be hidden.
|
118
|
+
# @type: boolean
|
119
|
+
field :is_archived
|
120
|
+
|
121
|
+
# The company associated with the activity
|
122
|
+
#
|
123
|
+
# To retrieve this collection, specify `Company` in the "Include" parameter for your query.
|
124
|
+
field :company
|
125
|
+
|
126
|
+
# The name of the user the activity is assigned to
|
127
|
+
# @type: string
|
128
|
+
field :user_assigned_to_name
|
129
|
+
|
130
|
+
belongs_to :company, {:class_name=>"Lockstep::Account", :primary_key=>:company_id, :foreign_key=>"company_id"}
|
131
|
+
belongs_to :account, {:class_name=>"Lockstep::Account", :primary_key=>:company_id, :foreign_key=>"company_id"}
|
132
|
+
belongs_to :created_user, {:class_name=>"Lockstep::User", :primary_key=>:user_id, :foreign_key=>"created_user_id"}
|
133
|
+
belongs_to :modified_user, {:class_name=>"Lockstep::User", :primary_key=>:user_id, :foreign_key=>"modified_user_id"}
|
134
|
+
|
135
|
+
has_many :attachments, {:class_name=>"Schema::Attachment", :included=>true}
|
136
|
+
has_many :notes, {:class_name=>"Lockstep::Note", :included=>true, :foreign_key=>:object_key, :polymorphic=>{:table_key=>"Activity"}}
|
137
|
+
has_many :custom_field_definitions, {:class_name=>"Schema::CustomFieldDefinition", :included=>true}
|
138
|
+
has_many :custom_field_values, {:class_name=>"Schema::CustomFieldValue", :included=>true}
|
139
|
+
has_many :references, {:class_name=>"Schema::ActivityXRef", :included=>true}
|
140
|
+
|
141
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
class Schema::ActivityFetchResult < Lockstep::ApiRecord
|
2
|
+
|
3
|
+
# ApiRecord will crash unless `id_ref` is defined
|
4
|
+
def self.id_ref
|
5
|
+
nil
|
6
|
+
end
|
7
|
+
|
8
|
+
|
9
|
+
# @type: integer
|
10
|
+
# @format: int32
|
11
|
+
field :total_count
|
12
|
+
|
13
|
+
|
14
|
+
# @type: integer
|
15
|
+
# @format: int32
|
16
|
+
field :page_size
|
17
|
+
|
18
|
+
|
19
|
+
# @type: integer
|
20
|
+
# @format: int32
|
21
|
+
field :page_number
|
22
|
+
|
23
|
+
|
24
|
+
has_many :records, {:class_name=>"Schema::Activity", :included=>true}
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
class Schema::ActivityStreamItem < Lockstep::ApiRecord
|
2
|
+
|
3
|
+
# ApiRecord will crash unless `id_ref` is defined
|
4
|
+
def self.id_ref
|
5
|
+
nil
|
6
|
+
end
|
7
|
+
|
8
|
+
# The object key of the activity stream item.
|
9
|
+
# @type: string
|
10
|
+
# @format: uuid
|
11
|
+
field :object_key
|
12
|
+
|
13
|
+
# The type code of the activity stream item.
|
14
|
+
# @type: string
|
15
|
+
field :activity_stream_type
|
16
|
+
|
17
|
+
# The text body description for this Activity Stream Item.
|
18
|
+
# @type: string
|
19
|
+
field :text_value
|
20
|
+
|
21
|
+
# The date on which this activity stream item was created.
|
22
|
+
# @type: string
|
23
|
+
# @format: date-time
|
24
|
+
field :created, Types::Params::DateTime
|
25
|
+
|
26
|
+
# The ID of the user who created this activity.
|
27
|
+
# @type: string
|
28
|
+
# @format: uuid
|
29
|
+
field :created_user_id
|
30
|
+
|
31
|
+
# The GroupKey uniquely identifies a single Lockstep Platform account. All records for this
|
32
|
+
# account will share the same GroupKey value. GroupKey values cannot be changed once created.
|
33
|
+
#
|
34
|
+
# For more information, see [Accounts and GroupKeys](https://developer.lockstep.io/docs/accounts-and-groupkeys).
|
35
|
+
# @type: string
|
36
|
+
# @format: uuid
|
37
|
+
field :group_key
|
38
|
+
|
39
|
+
# The sender's email address if activity stream item is an Email.
|
40
|
+
# @type: string
|
41
|
+
field :from_email_address
|
42
|
+
|
43
|
+
# The recipient's email address if activity stream item is an Email.
|
44
|
+
# @type: string
|
45
|
+
field :to_email_address
|
46
|
+
|
47
|
+
# The name of the contact sending the activity otherwise null.
|
48
|
+
# @type: string
|
49
|
+
field :from_contact_name
|
50
|
+
|
51
|
+
# The name of the contact sending the activity otherwise null.
|
52
|
+
# @type: string
|
53
|
+
field :to_contact_name
|
54
|
+
|
55
|
+
belongs_to :created_user, {:class_name=>"Lockstep::User", :primary_key=>:user_id, :foreign_key=>"created_user_id"}
|
56
|
+
|
57
|
+
|
58
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
class Schema::ActivityXRef < Lockstep::ApiRecord
|
2
|
+
|
3
|
+
# ApiRecord will crash unless `id_ref` is defined
|
4
|
+
def self.id_ref
|
5
|
+
nil
|
6
|
+
end
|
7
|
+
|
8
|
+
# The unique ID of this record, automatically assigned by Lockstep when this is
|
9
|
+
# added to the Lockstep platform.
|
10
|
+
# @type: string
|
11
|
+
# @format: uuid
|
12
|
+
field :activity_x_ref_id
|
13
|
+
|
14
|
+
# The ID of the activity to which this reference belongs.
|
15
|
+
# @type: string
|
16
|
+
# @format: uuid
|
17
|
+
field :activity_id
|
18
|
+
|
19
|
+
# The GroupKey uniquely identifies a single Lockstep Platform account. All records for this
|
20
|
+
# account will share the same GroupKey value. GroupKey values cannot be changed once created.
|
21
|
+
#
|
22
|
+
# For more information, see [Accounts and GroupKeys](https://developer.lockstep.io/docs/accounts-and-groupkeys).
|
23
|
+
# @type: string
|
24
|
+
# @format: uuid
|
25
|
+
field :group_key
|
26
|
+
|
27
|
+
# The name of the table the activity reference is associated with
|
28
|
+
# @type: string
|
29
|
+
field :table_key
|
30
|
+
|
31
|
+
# The ID of the object the activity reference is associated with
|
32
|
+
# @type: string
|
33
|
+
field :object_key
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
class Schema::Aging < Lockstep::ApiRecord
|
2
|
+
|
3
|
+
# ApiRecord will crash unless `id_ref` is defined
|
4
|
+
def self.id_ref
|
5
|
+
nil
|
6
|
+
end
|
7
|
+
|
8
|
+
# Aging bucket of outstanding balance data (days past due date of invoice)
|
9
|
+
# @type: integer
|
10
|
+
# @format: int32
|
11
|
+
field :bucket
|
12
|
+
|
13
|
+
# Currency code of aging bucket
|
14
|
+
# @type: string
|
15
|
+
field :currency_code
|
16
|
+
|
17
|
+
# Outstanding balance for the given aging bucket
|
18
|
+
# @type: number
|
19
|
+
# @format: double
|
20
|
+
field :outstanding_balance
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
end
|