# Core
In the core directory is where all the tooling is found. Here is all the files and a short description about them.
# Analytics
This is the analytics driver wrapper. This enables us to use the same API for any driver being used. For now, we are only using
the DB adapter, but soon we will use the PowerBI adapter as well.
# Barcode
This class generated the different barcodes for the platform.
# Cache
This class handles the Redis caching if the needs is ever there.
# Controller
The parent class to all other controllers in the system.
# CRM (2.2.0+)
This is the CRM driver wrapper. This enables us to use the same API for any driver being used. For now, we are using SalesForce only and for CSC only.
2.3.0: This has been move to the services directory.
# Currency
This handles currency formatting and tax calculations. There are 2 versions of the tax calculator, version 1 is the legacy version that is still in use by the frontend's call to "estimate taxes". Version 2 is the version used by the billing system when the order is actually passed. At some point, version 1 will be removed.
# Database
This class is in charge of connecting to the database using Mongoose as the ORM.
# Date
This is a date helper to format unix timestamp to string or string to unix timestamp. It also helps with other date
handling things like isWeekendDate, isBefore and formatTZ.
This class handles sending email using the Proxy Application. It handles variable replacement and templates.
# GeoIP
This class handles the communication with MaxMind for GeoIP fetching. This is used for the Waiver system of CSC.
# Log
This is a debugging utility that logs to the database and depending if a customer id was set or not you will be able to view the log either in the system logs or customer profile from the snowstorm portal.
# Marketplace Adapter
MarketplaceAdapter is the interface definition of what a marketplace adapter should implement.
# Marketplace Driver
MarketplaceDriver is the parent class that your marketplace adapter should extend.
class YourAdapter extends MarketplaceDriver implements MarketplaceAdapter
{
//...
}
# Marketplace
Marketplace contains the 'brain' of the marketplace engine, it takes care of doing some shared validation and then hands it off the right marketplace adapter for further validation.
# Model
Model is an empty implementation class. It exists only for future use, if we ever need common features for all models.
# Passcheck
Passcheck is the 'brain' of the PassCheck platform, it handles all card and booking validation.
# Provider
Provider is the base class of all provider classes to provide common functionality. For now it only has the siteName
property, but allows extensibility for later.
# Resolvers Loader
This handles the loading to the Apollo GraphQL format of the queries, mutations and resolvers.
# Rules
This defines the interface for all validation rules.
# Secrets (2.3.0+)
Secrets are special files that are human-readable on your machine, they contain all the access keys/passwords and other configurations needed by the platform.
The thing that is special is that when you build the project for deployment, these files are encrypted with a key generated on the fly for that build. On every build, the key is changed and the files are encrypted again.
These files are protected once on the AWS side and unless you know what to look for and how to handle the decryption, you will never be able to decrypt them.
# Settings
A Provider/Writer (should not be used by anything other than the system calls) for all settings.
# Snowstorm Server
This creates the Apollo instance for the AWS Lambda / Apollo GraphQL server for the whole platform to work.
# SSO
The parent class for all sign in adapters to use. It offset credential handling (password, session, etc.)
# Toolbox
Exactly like the name says, a bunch of miscellaneous helper methods for a bunch of things related to expiration of cards, age calculations among other things.
# Types
Defines all custom types in the platform.
# Writer
Like the Provider class, it provides more features for the writer classes. But unlike the Provider class it offers a few methods related to passwords and id generation (easy id, random integer, etc.).
← Controllers Adapters →