// Copyright IBM Corp. 2013,2018. All Rights Reserved. // Node module: loopback-datasource-juggler // This file is licensed under the MIT License. // License text available at https://opensource.org/licenses/MIT 'use strict'; const DataSource = require('../../loopback-datasource-juggler').DataSource; const ModelBuilder = require('../../loopback-datasource-juggler').ModelBuilder; const introspectType = require('../lib/introspection')(ModelBuilder); const ds = new DataSource('memory'); // Create a open model that doesn't require a schema const Application = ds.createModel('Schemaless', {}, {strict: false}); const application = { owner: 'rfeng', name: 'MyApp1', description: 'My first app', pushSettings: [ {'platform': 'apns', 'apns': { 'pushOptions': { 'gateway': 'gateway.sandbox.push.apple.com', 'cert': 'credentials/apns_cert_dev.pem', 'key': 'credentials/apns_key_dev.pem', }, 'feedbackOptions': { 'gateway': 'feedback.sandbox.push.apple.com', 'cert': 'credentials/apns_cert_dev.pem', 'key': 'credentials/apns_key_dev.pem', 'batchFeedback': true, 'interval': 300, }, }}, ]}; console.log(new Application(application).toObject()); Application.create(application, function(err, app1) { console.log('Created: ', app1.toObject()); Application.findById(app1.id, function(err, app2) { console.log('Found: ', app2.toObject()); }); }); // Instance JSON document const user = { name: 'Joe', age: 30, birthday: new Date(), vip: true, address: { street: '1 Main St', city: 'San Jose', state: 'CA', zipcode: '95131', country: 'US', }, friends: ['John', 'Mary'], emails: [ {label: 'work', id: 'x@sample.com'}, {label: 'home', id: 'x@home.com'}, ], tags: [], }; // Introspect the JSON document to generate a schema const schema = introspectType(user); // Create a model for the generated schema const User = ds.createModel('User', schema, {idInjection: true}); // Use the model for CRUD const obj = new User(user); console.log(obj.toObject()); User.create(user, function(err, u1) { console.log('Created: ', u1.toObject()); User.findById(u1.id, function(err, u2) { console.log('Found: ', u2.toObject()); }); });