Sha256: 3e9d6fab8f7eddc004a290c393877552076c7f666bf2dc801f2da76bbc36cfd0
Contents?: true
Size: 1.5 KB
Versions: 3
Compression:
Stored size: 1.5 KB
Contents
module TaskHelper class Form < Base data_member :app_id, :name, :desc, :post_action, :position, :sort_by, :asc, :per_page, :allow_delete, :new_widget, :records_widget, :target_page, :allow_database, :send_emails, :settings def self.all Database.all.lazy.flat_map { |db| db.forms } end def self.find_by(search) if response = get(route: 'apps/search/entities/search.json', params: search) new response['form'] if response['form'] end end def self.find(database:, form:) if response = get(route: "apps/#{database}/entities/#{form}.json") new response['form'] if response['form'] end end def initialize(args = {}, database: nil, **params) @database = database super(args.merge(params)) end def database @database ||= Database.find(app_id) end def fields @fields ||= Field.get( route: "apps/#{app_id}/entities/#{id}/properties.json")['fields'] .map { |field| Field.new(field, form: self) } end def records if fields.any? @records ||= (1..page_count).lazy.flat_map do |page| record_page(page).lazy.map { |record| Record.new(record, form: self) } end end end private def page_count database.dtypes_count / per_page + 1 end def record_page(page = 1) Record.get(route: "apps/#{app_id}/dtypes/entity/#{id}.json", params: { page: page })['records'] end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
task_helper-0.0.3 | lib/task_helper/form.rb |
task_helper-0.0.2 | lib/task_helper/form.rb |
task_helper-0.0.1 | lib/task_helper/form.rb |