Class: BaseService

Inherits:
Object
  • Object
show all
Includes:
AfterCommitEverywhere
Defined in:
app/services/base_service.rb

Direct Known Subclasses

Account::Inviter, Activity::AutoChainCloser, Activity::ExpiredActivityCloser, Activity::OpenActivitiesStamper, Activity::Prioritizer, Activity::ResourceList, Address::Creator, Address::RecalculateShipping, Address::Updater, Alert::Daily, Amazon::ExportAmalyticsSnapshot, Amazon::ImageExporter, Amazon::ImportAmalyticsSnapshot, Amazon::MatchBrowseNode, Amazon::MigrateAmazonDataToSpecs, Api::Esignatures, Api::ReviewsIo::InvitationSender, BlogSchemaExtractor, Cache::SiteCrawler, Campaign::AssignCustomersToSubscriberList, Campaign::AssignDripCampaigns, Catalog::AmazonBuyBoxRecoveryService, Catalog::AmazonImageBackfillService, Catalog::AmazonPriceLoweringService, Catalog::AmazonPriceRaisingService, Catalog::AmazonPricingAutomationService, Catalog::AssignCatalogItem, Catalog::AssignCatalogToCustomer, Catalog::CatalogCloner, Catalog::CreateCatalogItem, Catalog::PullAmazonCatalogSuppressionData, Catalog::PullAmazonCatalogsListingsData, Catalog::PushCatalogItemPrice, Catalog::SynchronizeCatalogPrices, Catalog::UpdateCatalog, Catalog::UpdateCatalogItem, Catalog::ValidateCatalogItems, CatalogItem::LegacyPullAmazonCatalogItemListingsData, CatalogItem::LegacySetAmazonCatalogItemPricesFromListingsData, CatalogItem::ScheduledPriceChanger, CatalogPathResolver, Communication::EventParser, Coupon::PromoItemSync, CreditMemo::PdfGenerator, CreditMemo::SubmitToTaxjar, Customer::CustomerAnniversaryMessage, Customer::FillSalesActivity, Customer::GoogleLeadProcessor, Customer::PruneTouchbase, Customer::ResetOpenActivityFlag, Customer::SyncAddressWithTaxjar, Customer::SyncWithTaxjar, Customer::UpdateProfile, Customer::UpdateProfileStats, Customer::Watch, Delivery::Transitions::AfterInvoicedHandler, Delivery::Transitions::ToInvoicedHandler, Delivery::Transitions::ToShippedHandler, Edi::Amazon::JsonListingGenerator::BaseGenerator, Edi::Amazon::Retriever, Edi::AmazonVc::OldRetriever, Edi::AmazonVc::Retriever, Edi::BaseEdiService, Edi::CreditMemoEventProcessor, Edi::Houzz::Retriever, Edi::InvoiceEventProcessor, Edi::MiraklSeller::Retriever, Edi::NullProcessor, Edi::OrderEventProcessor, Edi::Retriever, Edi::RmaEventProcessor, Edi::Sender, Edi::ShipConfirm, Edi::Wayfair::Retriever, EmailTemplate::ContentMigrator, Employee::BirthdayMessage, Employee::WorkAnniversaryMessage, Feed::Google::ListGenerator, Feed::Google::LocalInventoryGenerator, Feed::Google::MerchantUploader, Feed::Google::ReviewGenerator, Feed::ItemBaseGenerator, Feed::Openai::ListGenerator, Feed::ProductTypeGenerator, Feed::ReviewsIo::ProductCatalogGenerator, GetRoomOptions, HeatLoss::ChartExporter, Image::BlogLiquidImageFixer, Image::DragonflyMediaUrlReplacer, Image::ImagekitUrlReplacer, Image::ImagekitUrlWithLocaleReplacer, Image::UploadPdfToImagekit, Inventory::EmptyPromisedDateReminder, Inventory::ItemOnOrder, Inventory::OrderedRemainingItems, Inventory::PastPromisedDateReminder, Inventory::QuotePlanningReminder, Inventory::QuotedRemainingItems, Inventory::ReorderReminder, Inventory::StockShuffler, Inventory::WayfairSkuStockReporter, Invoicing::CombinedPdfGenerator, Invoicing::CreateInvoiceFromDelivery, Invoicing::GoogleConversionReporter, Invoicing::MoveInvoice, Invoicing::PatchDiscount, Invoicing::PdfGenerator, Invoicing::SubmitToTaxjar, Item::AmazonFnskuBarcode, Item::ArchiveItem, Item::ArticleRetriever, Item::Auditor, Item::AvailabilityDateChecker, Item::Cloner, Item::ConvertElectricalSpecs, Item::CopyRelatedItemsFromSiblings, Item::CycleCountPrioritizer, Item::CycleCountScheduler, Item::DataMatrixBarcode, Item::FloorPlanRetriever, Item::ImageLibraryRetriever, Item::ImageRetriever, Item::KitAttributeGenerator, Item::KitComposer, Item::MapSpecToTemplate, Item::MarketingCycleCountScheduler, Item::Materials::BaseCompatibleFinder, Item::Materials::Check, Item::Materials::Checks::CerazorbLimit, Item::Materials::Checks::CerazorbPlatinumInstallKit, Item::Materials::Checks::ControlCapacity, Item::Materials::Checks::EngineeringAlert, Item::Materials::Checks::FloorHeating, Item::Materials::Checks::Membrane, Item::Materials::Checks::Moq, Item::Materials::Checks::RadiantPanel, Item::Materials::Checks::Recommended, Item::Materials::Checks::RoofDeicing, Item::Materials::Checks::RoughinAndInstallKit, Item::Materials::Checks::SnowMelting, Item::Materials::Checks::TowelWarmer, Item::Materials::Checks::TzCableTapeRoll, Item::Materials::Checks::WoodShakeRoof, Item::PopulateItemPopularity, Item::PrepareNewKitComponent, Item::ProductSpecificationsCloner, Item::PublicationRetriever, Item::SpecFixer, Item::SpecificationsMasher, Item::SpecificationsRetriever, Item::SupportQrCode, Item::SynchronizeRefurbSpecs, Item::UpcBarcode, Item::UpcMaker, Item::VideoRetriever, Lead::MidAtlanticScrapper, Lead::NuheatDealerScrapper, Maintenance::AccountMaintenance, Maintenance::ActivityMaintenance, Maintenance::CommunicationMaintenance, Maintenance::CouponMaintenance, Maintenance::CustomerMaintenance, Maintenance::EmbeddingOrphanCleanup, Maintenance::ExportPacketMaintenance, Maintenance::Item::DiscontinueUnusedItems, Maintenance::ItemMaintenance, Maintenance::OpportunityMaintenance, Maintenance::PackingMaintenance, Maintenance::PriceUpdateFromSpreadsheet, Maintenance::PurgeOldTrackingEvents, Maintenance::RmaMaintenance, Maintenance::SmsMaintenance, Maintenance::StaleReportMaintenance, Maintenance::UploadMaintenance, Maintenance::WebhookMaintenance, MultiRoomModel::RoomsLineItemChanger, MultiRoomModel::RoomsQuickReviser, NewLead::LeadActivityAssigner, Opportunity::Merger, Order::BackOrderClientNotification, Order::ContactLookup, Order::CreateVcProcurementOrdersFromCsv, Order::FollowUpScheduler, Order::FraudDetector, Order::Mover, Order::SendAbandonedCartEmails, Party::RecordTimezone, Payment::Apis::Paypal, Payment::Apis::Stripe, Payment::Gateways::BasePaymentGateway, Payment::OrderProcessor, Payment::StrategyResolver, Pdf::Compressor, Pdf::Document::Article, Pdf::Document::BillOfLading, Pdf::Document::Certificate, Pdf::Document::Check, Pdf::Document::CommercialInvoice, Pdf::Document::EdiPackingSlip, Pdf::Document::ElectricalPlan, Pdf::Document::HeatLossReport, Pdf::Document::LetterMaterials, Pdf::Document::PackingSlip, Pdf::Document::PresetJob, Pdf::Document::Quote, Pdf::Document::ReturnInstructions, Pdf::Document::SpeedeeSummary, Pdf::Label::Carton, Pdf::Label::ItemIdentifier, Pdf::Label::LetterShip, Pdf::Label::RmaItem, Pdf::Label::SerialNumber, Pdf::Label::Speedee, Pdf::Label::StorageLocation, Pdf::Label::StorageLocationItem, Phone::BroadcastCallStatus, Phone::CallLogEventToRecordMatcher, Phone::CallLogImporter, Phone::CallLogPartyMatcher, Phone::CallRailImporter, Phone::CallRailPartyMatcher, Phone::CallRecordMatcher, Phone::ImportCallRailData, Pinterest::ApiClient, Pinterest::ConversionReporter, Printers::RefreshPrinters, ProductCategory::CacheFlusher, ProductLine::CacheFlusher, ProductLine::ContentOptimizer, ProductLine::ImageRetriever, ProductLine::PublicationRetriever, ProductLine::SpecificationsMasher, ProductLine::VideoRetriever, Publication::CoverGenerator, Publication::Reviser, Publication::Saver, PurchaseOrder::PdfGenerator, Quote::AssignLargeOppActivity, Quote::CombinedPdfGenerator, Quote::LetterPdfGenerator, Quotes::QuoteExpirationMessage, Quotes::UnopenedQuoteFinder, Receipt::SubmitToTaxjar, Returns::SendChargeNotice, Returns::SendFirstReminder, Returns::SendSecondReminder, ReviewsIoClient, Rma::CodeMerger, Sales::DropRep, Seo::AhrefsSyncService, Seo::ArticleLinkAuditor, Seo::CannibalizationService, Seo::DeparameterizeLinks, Seo::FaInlineSvgRestorer, Seo::Ga4SyncService, Seo::GoogleAdsSyncService, Seo::GscKeywordSyncService, Seo::GscSyncService, Seo::HardcodedImageToLiquid, Seo::HtmlContentSanitizer, Seo::HtmlHeadingSanitizer, Seo::HtmlLinkSanitizer, Seo::HtmlPrettyPrinter, Seo::ImageMissingSizeFiller, Seo::ImageOptimizer, Seo::InternalLinkValidator, Seo::KeywordAnalyzer, Seo::KeywordSyncService, Seo::LegacyUrlMigrator, Seo::LinkAnalyzer, Seo::LinkSanitizer, Seo::PageAnalysisService, Seo::RecommendationExtractorService, Seo::ReplaceLegacyImages, Seo::VisitsSyncService, Shipping::BolGenerator, Shipping::Calculator, Shipping::CartonLabelGenerator, Shipping::CreateSuggestedShipment, Shipping::DeliveryMd5Extractor, Shipping::DeterminePackaging, Shipping::ItemMd5Extractor, Shipping::ItemPackagingDiscrepancyCheck, Shipping::LtlShippingInsurance, Shipping::PackageAuditor, Shipping::PackageShipmentTracking, Shipping::PackageShippingInsurance, Shipping::PackagingImporter, Shipping::PostShippingInstruction, Shipping::PreProcessFedExLabel, Shipping::PreProcessGenericLabel, Shipping::PreProcessLabel, Shipping::PreProcessUpsLabel, Shipping::ReturnShippingInsurance, Shipping::ShippingInsurance, Shipping::ShipsuranceClient, Shipping::SpeedeeManifestGenerator, SiteSearch::RetrieveDocuments, Sitemap::SitemapGenerator, Source::SetInvoiceSource, SpamCheck, Statement::PdfGenerator, Taxes::GetTaxRate, Utilities::PdfSplitter

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ BaseService

Returns a new instance of BaseService.



4
5
6
7
# File 'app/services/base_service.rb', line 4

def initialize(options={})
  @logger = ActiveSupport::TaggedLogging.new(options[:logger] || Rails.logger)
  @options = options
end

Instance Method Details

#log_debug(msg) ⇒ Object (protected)



40
41
42
# File 'app/services/base_service.rb', line 40

def log_debug(msg)
  tagged_logger { logger.debug msg }
end

#log_error(msg) ⇒ Object (protected)



31
32
33
34
# File 'app/services/base_service.rb', line 31

def log_error(msg)
  ErrorReporting.error(msg)
  tagged_logger { logger.error msg }
end

#log_info(msg) ⇒ Object (protected)



27
28
29
# File 'app/services/base_service.rb', line 27

def log_info(msg)
  tagged_logger { logger.info msg }
end

#log_warning(msg) ⇒ Object (protected)



36
37
38
# File 'app/services/base_service.rb', line 36

def log_warning(msg)
  tagged_logger { logger.warn msg }
end

#loggerObject



13
14
15
# File 'app/services/base_service.rb', line 13

def logger
  @logger ||= ActiveSupport::TaggedLogging.new(Rails.logger)
end

#optionsObject



17
18
19
# File 'app/services/base_service.rb', line 17

def options
  @options
end

#processObject



9
10
11
# File 'app/services/base_service.rb', line 9

def process
  raise "Not Implemented"
end

#tagged_loggerObject (protected)



23
24
25
# File 'app/services/base_service.rb', line 23

def tagged_logger
  logger.tagged(Time.current.to_fs(:crm_default)) { logger.tagged(self.class.name) { yield(logger) } }
end