Module: Crystalline::MetadataFields

Included in:
OpenApiSDK::Models::Errors::APIError, OpenApiSDK::Models::Errors::BadRequest, OpenApiSDK::Models::Errors::Conflict, OpenApiSDK::Models::Errors::ConflictError, OpenApiSDK::Models::Errors::Error, OpenApiSDK::Models::Errors::Forbidden, OpenApiSDK::Models::Errors::ForbiddenError, OpenApiSDK::Models::Errors::InternalServerError, OpenApiSDK::Models::Errors::InternalServerErrorError, OpenApiSDK::Models::Errors::InviteExpired, OpenApiSDK::Models::Errors::InviteExpiredError, OpenApiSDK::Models::Errors::NotFound, OpenApiSDK::Models::Errors::NotFoundError, OpenApiSDK::Models::Errors::RateLimitExceeded, OpenApiSDK::Models::Errors::RateLimitExceededError, OpenApiSDK::Models::Errors::Unauthorized, OpenApiSDK::Models::Errors::UnauthorizedError, OpenApiSDK::Models::Errors::UnprocessableEntity, OpenApiSDK::Models::Errors::UnprocessableEntityError, OpenApiSDK::Models::Operations::Application, OpenApiSDK::Models::Operations::ApplicationFormData, OpenApiSDK::Models::Operations::ApproveBountySubmissionFiles, OpenApiSDK::Models::Operations::ApproveBountySubmissionRequest, OpenApiSDK::Models::Operations::ApproveBountySubmissionRequestBody, OpenApiSDK::Models::Operations::ApproveBountySubmissionResponseBody, OpenApiSDK::Models::Operations::ApprovePartnerRequestBody, OpenApiSDK::Models::Operations::ApprovePartnerResponseBody, OpenApiSDK::Models::Operations::BanPartnerRequestBody, OpenApiSDK::Models::Operations::BanPartnerResponseBody, OpenApiSDK::Models::Operations::BulkCreateLinksTagIds, OpenApiSDK::Models::Operations::BulkCreateLinksTagNames, OpenApiSDK::Models::Operations::BulkCreateLinksTestVariants, OpenApiSDK::Models::Operations::BulkDeleteLinksRequest, OpenApiSDK::Models::Operations::BulkDeleteLinksResponseBody, OpenApiSDK::Models::Operations::BulkUpdateCommissionsRequestBody, OpenApiSDK::Models::Operations::BulkUpdateCommissionsResponseBody, OpenApiSDK::Models::Operations::BulkUpdateLinksRequestBody, OpenApiSDK::Models::Operations::BulkUpdateLinksTagIds, OpenApiSDK::Models::Operations::BulkUpdateLinksTagNames, OpenApiSDK::Models::Operations::BulkUpdateLinksTestVariants, OpenApiSDK::Models::Operations::CheckDomainStatusRequest, OpenApiSDK::Models::Operations::CheckDomainStatusResponseBody, OpenApiSDK::Models::Operations::Click, OpenApiSDK::Models::Operations::ClickEvent, OpenApiSDK::Models::Operations::Constraints, OpenApiSDK::Models::Operations::CreateDomainRequestBody, OpenApiSDK::Models::Operations::CreateFolderRequestBody, OpenApiSDK::Models::Operations::CreateLinkRequestBody, OpenApiSDK::Models::Operations::CreatePartnerApplication, OpenApiSDK::Models::Operations::CreatePartnerFields, OpenApiSDK::Models::Operations::CreatePartnerFields1, OpenApiSDK::Models::Operations::CreatePartnerFields2, OpenApiSDK::Models::Operations::CreatePartnerFields3, OpenApiSDK::Models::Operations::CreatePartnerFields4, OpenApiSDK::Models::Operations::CreatePartnerFieldsConstraints, OpenApiSDK::Models::Operations::CreatePartnerFieldsOptions, OpenApiSDK::Models::Operations::CreatePartnerFieldsPartnersConstraints, OpenApiSDK::Models::Operations::CreatePartnerFieldsPartnersOptions, OpenApiSDK::Models::Operations::CreatePartnerLinkLinkProps, OpenApiSDK::Models::Operations::CreatePartnerLinkRequestBody, OpenApiSDK::Models::Operations::CreatePartnerLinkTagIds, OpenApiSDK::Models::Operations::CreatePartnerLinkTagNames, OpenApiSDK::Models::Operations::CreatePartnerLinkTestVariants, OpenApiSDK::Models::Operations::CreatePartnerLinks, OpenApiSDK::Models::Operations::CreatePartnerReferralFormData, OpenApiSDK::Models::Operations::CreatePartnerRequestBody, OpenApiSDK::Models::Operations::CreatePartnerResponseBody, OpenApiSDK::Models::Operations::CreatePartnerTagIds, OpenApiSDK::Models::Operations::CreatePartnerTagNames, OpenApiSDK::Models::Operations::CreatePartnerTestVariants, OpenApiSDK::Models::Operations::CreateReferralsEmbedTokenLinkProps, OpenApiSDK::Models::Operations::CreateReferralsEmbedTokenRequestBody, OpenApiSDK::Models::Operations::CreateReferralsEmbedTokenResponseBody, OpenApiSDK::Models::Operations::CreateReferralsEmbedTokenTagIds, OpenApiSDK::Models::Operations::CreateReferralsEmbedTokenTagNames, OpenApiSDK::Models::Operations::CreateReferralsEmbedTokenTestVariants, OpenApiSDK::Models::Operations::CreateTagRequestBody, OpenApiSDK::Models::Operations::Customer, OpenApiSDK::Models::Operations::Data, OpenApiSDK::Models::Operations::DeactivatePartnerRequestBody, OpenApiSDK::Models::Operations::DeactivatePartnerResponseBody, OpenApiSDK::Models::Operations::DeleteCustomerRequest, OpenApiSDK::Models::Operations::DeleteCustomerResponseBody, OpenApiSDK::Models::Operations::DeleteDomainRequest, OpenApiSDK::Models::Operations::DeleteDomainResponseBody, OpenApiSDK::Models::Operations::DeleteFolderRequest, OpenApiSDK::Models::Operations::DeleteFolderResponseBody, OpenApiSDK::Models::Operations::DeleteLinkRequest, OpenApiSDK::Models::Operations::DeleteLinkResponseBody, OpenApiSDK::Models::Operations::DeleteTagRequest, OpenApiSDK::Models::Operations::DeleteTagResponseBody, OpenApiSDK::Models::Operations::Discount, OpenApiSDK::Models::Operations::Domains, OpenApiSDK::Models::Operations::Eight, OpenApiSDK::Models::Operations::Fields, OpenApiSDK::Models::Operations::Fields1, OpenApiSDK::Models::Operations::Fields2, OpenApiSDK::Models::Operations::Fields3, OpenApiSDK::Models::Operations::Fields4, OpenApiSDK::Models::Operations::Fields5, OpenApiSDK::Models::Operations::Fields6, OpenApiSDK::Models::Operations::Fields7, OpenApiSDK::Models::Operations::Fields8, OpenApiSDK::Models::Operations::FieldsConstraints, OpenApiSDK::Models::Operations::FieldsOptions, OpenApiSDK::Models::Operations::Files, OpenApiSDK::Models::Operations::Five, OpenApiSDK::Models::Operations::GetCustomerDiscount, OpenApiSDK::Models::Operations::GetCustomerLink, OpenApiSDK::Models::Operations::GetCustomerPartner, OpenApiSDK::Models::Operations::GetCustomerRequest, OpenApiSDK::Models::Operations::GetCustomerResponseBody, OpenApiSDK::Models::Operations::GetCustomersLink, OpenApiSDK::Models::Operations::GetCustomersPartner, OpenApiSDK::Models::Operations::GetCustomersRequest, OpenApiSDK::Models::Operations::GetCustomersResponse, OpenApiSDK::Models::Operations::GetCustomersResponseBody, OpenApiSDK::Models::Operations::GetLinkInfoRequest, OpenApiSDK::Models::Operations::GetLinksCountQueryParamTagIds, OpenApiSDK::Models::Operations::GetLinksCountQueryParamTagNames, OpenApiSDK::Models::Operations::GetLinksCountRequest, OpenApiSDK::Models::Operations::GetLinksRequest, OpenApiSDK::Models::Operations::GetLinksResponse, OpenApiSDK::Models::Operations::GetQRCodeRequest, OpenApiSDK::Models::Operations::GetTagsRequest, OpenApiSDK::Models::Operations::GroupBy, OpenApiSDK::Models::Operations::Ids, OpenApiSDK::Models::Operations::LeadEvent, OpenApiSDK::Models::Operations::Link, OpenApiSDK::Models::Operations::LinkProps, OpenApiSDK::Models::Operations::Links, OpenApiSDK::Models::Operations::ListBountySubmissionsRequest, OpenApiSDK::Models::Operations::ListBountySubmissionsResponseBody, OpenApiSDK::Models::Operations::ListCommissionsCustomer, OpenApiSDK::Models::Operations::ListCommissionsPartner, OpenApiSDK::Models::Operations::ListCommissionsRequest, OpenApiSDK::Models::Operations::ListCommissionsResponse, OpenApiSDK::Models::Operations::ListCommissionsResponseBody, OpenApiSDK::Models::Operations::ListDomainsRequest, OpenApiSDK::Models::Operations::ListDomainsResponse, OpenApiSDK::Models::Operations::ListEventsRequest, OpenApiSDK::Models::Operations::ListEventsResponseBody, OpenApiSDK::Models::Operations::ListEventsResponseBodyClick, OpenApiSDK::Models::Operations::ListEventsResponseBodyCustomer, OpenApiSDK::Models::Operations::ListEventsResponseBodyEventsClick, OpenApiSDK::Models::Operations::ListEventsResponseBodyEventsLink, OpenApiSDK::Models::Operations::ListEventsResponseBodyEventsTestVariants, OpenApiSDK::Models::Operations::ListEventsResponseBodyLink, OpenApiSDK::Models::Operations::ListEventsResponseBodyTestVariants, OpenApiSDK::Models::Operations::ListFoldersRequest, OpenApiSDK::Models::Operations::ListPartnerApplicationsPartner, OpenApiSDK::Models::Operations::ListPartnerApplicationsRequest, OpenApiSDK::Models::Operations::ListPartnerApplicationsResponseBody, OpenApiSDK::Models::Operations::ListPartnersRequest, OpenApiSDK::Models::Operations::ListPartnersResponseBody, OpenApiSDK::Models::Operations::ListPayoutsPartner, OpenApiSDK::Models::Operations::ListPayoutsRequest, OpenApiSDK::Models::Operations::ListPayoutsResponseBody, OpenApiSDK::Models::Operations::Options, OpenApiSDK::Models::Operations::Partner, OpenApiSDK::Models::Operations::QueryParamTagIds, OpenApiSDK::Models::Operations::QueryParamTagNames, OpenApiSDK::Models::Operations::ReferralFormData, OpenApiSDK::Models::Operations::RegisterDomainRequestBody, OpenApiSDK::Models::Operations::RegisterDomainResponseBody, OpenApiSDK::Models::Operations::RejectBountySubmissionFiles, OpenApiSDK::Models::Operations::RejectBountySubmissionRequest, OpenApiSDK::Models::Operations::RejectBountySubmissionRequestBody, OpenApiSDK::Models::Operations::RejectBountySubmissionResponseBody, OpenApiSDK::Models::Operations::RejectPartnerRequestBody, OpenApiSDK::Models::Operations::RejectPartnerResponseBody, OpenApiSDK::Models::Operations::RequestBody, OpenApiSDK::Models::Operations::ResponseBody, OpenApiSDK::Models::Operations::ResponseBodyClick, OpenApiSDK::Models::Operations::ResponseBodyCustomer, OpenApiSDK::Models::Operations::ResponseBodyLink, OpenApiSDK::Models::Operations::ResponseBodySale, OpenApiSDK::Models::Operations::ResponseBodyTestVariants, OpenApiSDK::Models::Operations::RetrieveAnalyticsRequest, OpenApiSDK::Models::Operations::RetrieveAnalyticsResponseBody, OpenApiSDK::Models::Operations::RetrieveLinksRequest, OpenApiSDK::Models::Operations::RetrieveLinksResponseBody, OpenApiSDK::Models::Operations::RetrievePartnerAnalyticsRequest, OpenApiSDK::Models::Operations::RetrievePartnerAnalyticsResponseBody, OpenApiSDK::Models::Operations::Sale, OpenApiSDK::Models::Operations::SaleEvent, OpenApiSDK::Models::Operations::Seven, OpenApiSDK::Models::Operations::Six, OpenApiSDK::Models::Operations::TagIds, OpenApiSDK::Models::Operations::TagNames, OpenApiSDK::Models::Operations::TestVariants, OpenApiSDK::Models::Operations::TrackLeadRequestBody, OpenApiSDK::Models::Operations::TrackLeadResponseBody, OpenApiSDK::Models::Operations::TrackSaleCustomer, OpenApiSDK::Models::Operations::TrackSaleRequestBody, OpenApiSDK::Models::Operations::TrackSaleResponseBody, OpenApiSDK::Models::Operations::UpdateCommissionCustomer, OpenApiSDK::Models::Operations::UpdateCommissionPartner, OpenApiSDK::Models::Operations::UpdateCommissionRequest, OpenApiSDK::Models::Operations::UpdateCommissionRequestBody, OpenApiSDK::Models::Operations::UpdateCommissionResponseBody, OpenApiSDK::Models::Operations::UpdateCustomerDiscount, OpenApiSDK::Models::Operations::UpdateCustomerLink, OpenApiSDK::Models::Operations::UpdateCustomerPartner, OpenApiSDK::Models::Operations::UpdateCustomerRequest, OpenApiSDK::Models::Operations::UpdateCustomerRequestBody, OpenApiSDK::Models::Operations::UpdateCustomerResponseBody, OpenApiSDK::Models::Operations::UpdateDomainRequest, OpenApiSDK::Models::Operations::UpdateDomainRequestBody, OpenApiSDK::Models::Operations::UpdateFolderRequest, OpenApiSDK::Models::Operations::UpdateFolderRequestBody, OpenApiSDK::Models::Operations::UpdateLinkRequest, OpenApiSDK::Models::Operations::UpdateLinkRequestBody, OpenApiSDK::Models::Operations::UpdateLinkTagIds, OpenApiSDK::Models::Operations::UpdateLinkTagNames, OpenApiSDK::Models::Operations::UpdateLinkTestVariants, OpenApiSDK::Models::Operations::UpdateTagRequest, OpenApiSDK::Models::Operations::UpdateTagRequestBody, OpenApiSDK::Models::Operations::UpsertLinkRequestBody, OpenApiSDK::Models::Operations::UpsertLinkTagIds, OpenApiSDK::Models::Operations::UpsertLinkTagNames, OpenApiSDK::Models::Operations::UpsertLinkTestVariants, OpenApiSDK::Models::Operations::UpsertPartnerLinkLinkProps, OpenApiSDK::Models::Operations::UpsertPartnerLinkRequestBody, OpenApiSDK::Models::Operations::UpsertPartnerLinkTagIds, OpenApiSDK::Models::Operations::UpsertPartnerLinkTagNames, OpenApiSDK::Models::Operations::UpsertPartnerLinkTestVariants, OpenApiSDK::Models::Operations::User, OpenApiSDK::Models::Shared::AnalyticsBrowsers, OpenApiSDK::Models::Shared::AnalyticsCities, OpenApiSDK::Models::Shared::AnalyticsContinents, OpenApiSDK::Models::Shared::AnalyticsCount, OpenApiSDK::Models::Shared::AnalyticsCountries, OpenApiSDK::Models::Shared::AnalyticsDevices, OpenApiSDK::Models::Shared::AnalyticsOS, OpenApiSDK::Models::Shared::AnalyticsRefererUrls, OpenApiSDK::Models::Shared::AnalyticsReferers, OpenApiSDK::Models::Shared::AnalyticsRegions, OpenApiSDK::Models::Shared::AnalyticsTimeseries, OpenApiSDK::Models::Shared::AnalyticsTopLinks, OpenApiSDK::Models::Shared::AnalyticsTopUrls, OpenApiSDK::Models::Shared::AnalyticsTriggers, OpenApiSDK::Models::Shared::Application, OpenApiSDK::Models::Shared::ApplicationFormData, OpenApiSDK::Models::Shared::Click, OpenApiSDK::Models::Shared::CommissionCreatedEvent, OpenApiSDK::Models::Shared::CommissionCreatedEventCustomer, OpenApiSDK::Models::Shared::CommissionCreatedEventData, OpenApiSDK::Models::Shared::CommissionCreatedEventLink, OpenApiSDK::Models::Shared::CommissionCreatedEventPartner, OpenApiSDK::Models::Shared::Constraints, OpenApiSDK::Models::Shared::Customer, OpenApiSDK::Models::Shared::Data, OpenApiSDK::Models::Shared::DomainSchema, OpenApiSDK::Models::Shared::Eight, OpenApiSDK::Models::Shared::Event, OpenApiSDK::Models::Shared::Fields, OpenApiSDK::Models::Shared::Fields1, OpenApiSDK::Models::Shared::Fields2, OpenApiSDK::Models::Shared::Fields3, OpenApiSDK::Models::Shared::FieldsConstraints, OpenApiSDK::Models::Shared::FieldsOptions, OpenApiSDK::Models::Shared::Five, OpenApiSDK::Models::Shared::FolderSchema, OpenApiSDK::Models::Shared::Four, OpenApiSDK::Models::Shared::LeadCreatedEvent, OpenApiSDK::Models::Shared::LeadCreatedEventClick, OpenApiSDK::Models::Shared::LeadCreatedEventData, OpenApiSDK::Models::Shared::LeadCreatedEventLink, OpenApiSDK::Models::Shared::LeadCreatedEventTestVariants, OpenApiSDK::Models::Shared::Link, OpenApiSDK::Models::Shared::LinkClickedEvent, OpenApiSDK::Models::Shared::LinkClickedEventData, OpenApiSDK::Models::Shared::LinkClickedEventTestVariants, OpenApiSDK::Models::Shared::LinkErrorSchema, OpenApiSDK::Models::Shared::LinkSchema, OpenApiSDK::Models::Shared::LinkTagSchema, OpenApiSDK::Models::Shared::LinkTagSchemaOutput, OpenApiSDK::Models::Shared::LinkWebhookEvent, OpenApiSDK::Models::Shared::LinkWebhookEventTestVariants, OpenApiSDK::Models::Shared::Links, OpenApiSDK::Models::Shared::Options, OpenApiSDK::Models::Shared::Partner, OpenApiSDK::Models::Shared::PartnerAnalyticsCount, OpenApiSDK::Models::Shared::PartnerAnalyticsTimeseries, OpenApiSDK::Models::Shared::PartnerAnalyticsTopLinks, OpenApiSDK::Models::Shared::PartnerApplicationSubmittedEvent, OpenApiSDK::Models::Shared::PartnerApplicationSubmittedEventData, OpenApiSDK::Models::Shared::PartnerApplicationSubmittedEventPartner, OpenApiSDK::Models::Shared::PartnerEnrolledEvent, OpenApiSDK::Models::Shared::PartnerEnrolledEventData, OpenApiSDK::Models::Shared::ReferralFormData, OpenApiSDK::Models::Shared::RegisteredDomain, OpenApiSDK::Models::Shared::Sale, OpenApiSDK::Models::Shared::SaleCreatedEvent, OpenApiSDK::Models::Shared::SaleCreatedEventClick, OpenApiSDK::Models::Shared::SaleCreatedEventCustomer, OpenApiSDK::Models::Shared::SaleCreatedEventData, OpenApiSDK::Models::Shared::SaleCreatedEventLink, OpenApiSDK::Models::Shared::SaleCreatedEventPartner, OpenApiSDK::Models::Shared::SaleCreatedEventTestVariants, OpenApiSDK::Models::Shared::Security, OpenApiSDK::Models::Shared::Seven, OpenApiSDK::Models::Shared::Six, OpenApiSDK::Models::Shared::TestVariants, OpenApiSDK::Models::Shared::WebhookEvent
Defined in:
lib/crystalline/metadata_fields.rb

Defined Under Namespace

Modules: ClassMethods Classes: Field

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



202
203
204
# File 'lib/crystalline/metadata_fields.rb', line 202

def self.included(base)
  base.extend(ClassMethods)
end

Instance Method Details

#field(field_name) ⇒ Object



210
211
212
213
214
# File 'lib/crystalline/metadata_fields.rb', line 210

def field(field_name)
  fields.each do |f|
    return f if f.name == field_name
  end
end

#fieldsObject



206
207
208
# File 'lib/crystalline/metadata_fields.rb', line 206

def fields
  self.class.fields
end

#initializeObject



196
197
198
199
200
# File 'lib/crystalline/metadata_fields.rb', line 196

def initialize
  instance = allocate
  fields.each { |mod| instance.singleton_class.include(mod) }
  instance.send(:initialize)
end

#marshal_single(field) ⇒ Object



216
217
218
219
220
221
222
223
224
225
226
# File 'lib/crystalline/metadata_fields.rb', line 216

def marshal_single(field)
  if field.class.include? ::Crystalline::MetadataFields
    field.to_dict
  else
    if ::Crystalline.needs_string_conversion field
      ::Crystalline.json_encode field
    else
      field
    end
  end
end

#to_dictObject



228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
# File 'lib/crystalline/metadata_fields.rb', line 228

def to_dict
  result = {}
  fields.sort_by(&:name).each do |field|
    format_json_meta = field.[:format_json]
    required = !format_json_meta.nil? && format_json_meta.include?(:required)
    is_additional_props = !format_json_meta.nil? && format_json_meta.fetch(:additional_properties, false)

    if !format_json_meta.nil? && format_json_meta.include?(:letter_case)
      key = format_json_meta[:letter_case].call(field.name)
    else
      key = field.name
    end

    f = send(field.name)
    next if f.nil? && !required
    result[key] = nil if f.nil? && required

    # Flatten additional properties into the parent object
    if is_additional_props && f.is_a?(::Hash)
      f.each { |k, v| result[k] = marshal_single(v) }
    elsif f.is_a? ::Array
      result[key] = f.map { |o| marshal_single(o) }
    elsif f.is_a? ::Hash
      result[key] = f.transform_values { |v| marshal_single(v) }
    else
      result[key] = marshal_single(f)
    end
  end
  result
end

#to_json(*args) ⇒ Object



259
260
261
# File 'lib/crystalline/metadata_fields.rb', line 259

def to_json(*args)
  JSON.generate(to_dict, *args)
end