js/datas/providers/record_provider.js
-
- // NPM IMPORTS
- import assert from 'assert'
-
- // COMMON IMPORTS
- import T from '../../utils/types'
-
-
- /**
- * Contextual constant for this file logs.
- * @private
- */
- const context = 'common/datas/providers/record_provider'
-
-
-
- /**
- * Record provider base class.
- * @abstract
- * @author Luc BORIES
- * @license Apache-2.0
- */
- export default class RecordProvider
- {
- /**
- * Create a record provider instance
- */
- constructor(arg_settings)
- {
- assert( T.isObject(arg_settings), context + ':bad settings object')
- /**
- * Record provider settings.
- * @type {object}
- */
- this.$settings = T.isFunction(arg_settings.toJS) ? arg_settings.toJS() : arg_settings
- }
-
-
- /**
- * Build a query to fetch datas.
- * @param {object|undefined} arg_query - optional query context
- * @returns {Promise} datas record promise
- */
- build_query(arg_query)
- {
- // logs.debug(context, 'build_query:not implemented')
-
- return arg_query
- }
-
-
- /**
- * Provide all datas records
- * @abstract
- * @param {object|undefined} arg_query - optional query context
- * @returns {Promise} datas record promise
- */
- find_all_records(/*arg_query*/)
- {
- // logs.debug(context, 'find_all_records:not implemented')
- return Promise.resolve(null)
- }
-
-
- /**
- * Find a record by its id.
- * @abstract
- * @param {string|number} arg_id - record id
- * @param {object|undefined} arg_query - optional query context
- * @returns {Promise} - promise of found record or null
- */
- find_records_by_id(arg_id, arg_query)
- {
- // logs.debug(context, 'find_records_by_id:not implemented')
- assert( T.isString(arg_id) || T.isNumber(arg_id), context + ':find_records_by_id:bad id string or number')
-
- // TO IMPLEMENT IN SUBCLASSES
-
- return Promise.resolve(null)
- }
-
-
- /**
- * Find a record with a set of values.
- * @abstract
- * @param {object} arg_values_map - values map
- * @param {object|undefined} arg_query - optional query context
- * @returns {Promise} - promise of found record or null
- */
- find_records_by_values(arg_values_map/*, arg_query*/)
- {
- // logs.debug(context, 'find_records_by_values:not implemented')
- assert( T.isObject(arg_values_map), context + ':find_records_by_id:bad values object')
-
- // TO IMPLEMENT IN SUBCLASSES
-
- return Promise.resolve(null)
- }
- }