當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript rev-models.ModelManager類代碼示例

本文整理匯總了TypeScript中rev-models.ModelManager的典型用法代碼示例。如果您正苦於以下問題:TypeScript ModelManager類的具體用法?TypeScript ModelManager怎麽用?TypeScript ModelManager使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了ModelManager類的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: beforeEach

 beforeEach(() => {
     models = new rev.ModelManager();
     models.registerBackend('default', new rev.InMemoryBackend());
     models.register(TestDecoratedModel);
     models.register(TestModel);
     apiManager = new ModelApiManager(models);
 });
開發者ID:RevFramework,項目名稱:rev-framework,代碼行數:7,代碼來源:meta.tests.ts

示例2: MongoDBBackend

(async () => {

    // Create a MongoDBBackend and connect to MongoDB

    const mongo = new MongoDBBackend({
        url: 'mongodb://localhost:27017',
        dbName: 'example_db'
    });
    await mongo.connect();

    // Create a ModelManager, and assign MongoDB as the default backend

    const modelManager = new ModelManager();
    modelManager.registerBackend('default', mongo);
    modelManager.register(TestModel);

    // Create some data, then disconnect afterwards

    await modelManager.create(new TestModel({
        name: 'data from RevJS!',
        description: 'This beautiful record was created by RevJS',
        score: 110
    }));
    console.log('Data successfully created in MongoDB!');

    await mongo.disconnect();

})();
開發者ID:RevFramework,項目名稱:rev-framework,代碼行數:28,代碼來源:using_a_mongodb_backend.ts

示例3:

 /**
  * @private
  */
 async create<T extends IModel>(manager: ModelManager, model: T, options: ICreateOptions, result: ModelOperationResult<T, ICreateMeta>): Promise<ModelOperationResult<T, ICreateMeta>> {
     const meta = manager.getModelMeta(model);
     const data = this._buildGraphQLModelData(manager, meta, model);
     const mutationName = meta.name + '_create';
     const query = {
         mutation: {
             [mutationName]: {
                 __args: {
                     model: data
                 }
             }
         }
     };
     const httpResult = await this._getGraphQLQueryResult(query);
     if (!httpResult.data.data
         || !httpResult.data.data[mutationName]) {
         throw this._createHttpError('GraphQL response did not contain the expected operation results', httpResult);
     }
     const createResult: ModelOperationResult<any, ICreateMeta> = httpResult.data.data[mutationName];
     result.success = createResult.success;
     result.validation = createResult.validation;
     if (createResult.result) {
         result.result = manager.hydrate(meta.ctor, createResult.result);
     }
     return result;
 }
開發者ID:RevFramework,項目名稱:rev-framework,代碼行數:29,代碼來源:backend.ts

示例4: if

    /**
     * @private
     */
    async create<T extends IModel>(manager: ModelManager, model: T, params: ICreateParams, result: ModelOperationResult<T, ICreateMeta>): Promise<ModelOperationResult<T, ICreateMeta>> {
        const meta = manager.getModelMeta(model);

        const document: IKeyMap<number> = {};
        let fieldList = Object.keys(meta.fieldsByName);
        for (let fieldName of fieldList) {
            let field = meta.fieldsByName[fieldName];
            if (field.options.stored) {
                if (field instanceof fields.AutoNumberField
                        && typeof model[fieldName] == 'undefined') {
                    document[fieldName] = await this._getNextAutoNumberValue(meta.name, fieldName);
                }
                else if (typeof model[fieldName] != 'undefined') {
                    let value = field.toBackendValue(manager, model[fieldName]);
                    if (typeof value != 'undefined') {
                        document[fieldName] = value;
                    }
                }
            }
        }

        const colName = this._getCollectionName(meta);
        const createResult = await this.db.collection(colName).insertOne(document);
        if (createResult.insertedCount != 1) {
            throw new Error('mongodb insert failed'); // TODO: Something nicer
        }

        result.result = manager.hydrate(meta.ctor, document);
        return result;
    }
開發者ID:RevFramework,項目名稱:rev-framework,代碼行數:33,代碼來源:backend.ts

示例5: beforeEach

        beforeEach(async () => {
            modelManager = models.getModelManager();
            apiManager = new ModelApiManager(modelManager);
            apiManager.register(models.Post, { operations: ['read', 'update'] });
            apiManager.register(models.User, { operations: ['read'] });
            apiManager.register(models.Comment, { operations: ['read'] });
            api = new GraphQLApi(apiManager);
            schema = api.getSchema();

            existingPost = new models.Post({
                id: 10,
                title: 'Existing Post',
                body: 'This post has already been created',
                published: true,
                post_date: '2017-12-23T09:30:21'
            });
            existingPost2 = new models.Post({
                id: 11,
                title: 'Another Post',
                body: 'This is another post',
                published: true,
                post_date: '2018-01-05T12:23:34'
            });
            await modelManager.create(existingPost);
            await modelManager.create(existingPost2);
        });
開發者ID:RevFramework,項目名稱:rev-framework,代碼行數:26,代碼來源:update.tests.ts

示例6: getModelManager

export function getModelManager() {
    const modelManager = new ModelManager();
    modelManager.registerBackend('default', new InMemoryBackend());
    modelManager.register(User);
    modelManager.register(Post);
    modelManager.register(Comment);
    return modelManager;
}
開發者ID:RevFramework,項目名稱:rev-framework,代碼行數:8,代碼來源:models.ts

示例7: before

    before(async () => {
        // Create an in-memory model manager for API data
        const apiModelManager = new ModelManager();
        apiModelManager.registerBackend('default', new InMemoryBackend());
        registerModels(apiModelManager);

        // Create a mock Axios client for querying the API
        const mockHttpClient = getMockApiHttpClient(apiModelManager);

        // Create the backend ready for testing
        backend = new ModelApiBackend('/api', mockHttpClient);
        config.backend = backend;

    });
開發者ID:RevFramework,項目名稱:rev-framework,代碼行數:14,代碼來源:backend.tests.ts

示例8: _hydrateRecordWithRelated

    private _hydrateRecordWithRelated(manager: ModelManager, meta: IModelMeta<any>, recordData: any, related?: string[]) {
        const model = manager.hydrate(meta.ctor, recordData);
        if (related) {
            const relFieldNames = getOwnRelatedFieldNames(related);
            meta.fields.forEach((field) => {
                if (relFieldNames.indexOf(field.name) > -1 && typeof recordData[field.name] != 'undefined') {

                    const relMeta = manager.getModelMeta(field.options.model);
                    const childRelFieldNames = getChildRelatedFieldNames(field.name, related);

                    if (field instanceof fields.RelatedModelField) {
                        if (recordData[field.name] == null) {
                            model[field.name] = null;
                        }
                        else {
                            model[field.name] = this._hydrateRecordWithRelated(manager, relMeta, recordData[field.name], childRelFieldNames);
                        }
                    }
                    else if (field instanceof fields.RelatedModelListField && recordData[field.name] instanceof Array) {
                        model[field.name] = [];
                        recordData[field.name].forEach((record: any) => {
                            model[field.name].push(this._hydrateRecordWithRelated(manager, relMeta, record, childRelFieldNames));
                        });
                    }
                }
            });
        }
        return model;
    }
開發者ID:RevFramework,項目名稱:rev-framework,代碼行數:29,代碼來源:backend.ts

示例9: Error

    /**
     * @private
     */
    async update<T extends IModel>(manager: ModelManager, model: T, options: IUpdateOptions, result: ModelOperationResult<T, IUpdateMeta>): Promise<ModelOperationResult<T, IUpdateMeta>> {

        if (!options.where) {
            throw new Error(`update() requires the 'where' option to be set.`);
        }

        const meta = manager.getModelMeta(model);
        const data = this._buildGraphQLModelData(manager, meta, model, options.fields);
        const mutationName = meta.name + '_update';
        let args: any = {
            model: data
        };
        if (options.where) {
            args.where = options.where;
        }
        const query = {
            mutation: {
                [mutationName]: {
                    __args: args
                }
            }
        };
        const httpResult = await this._getGraphQLQueryResult(query);
        if (!httpResult.data.data
            || !httpResult.data.data[mutationName]) {
            throw this._createHttpError('GraphQL response did not contain the expected operation results', httpResult);
        }
        const updateResult: ModelOperationResult<any, IUpdateMeta> = httpResult.data.data[mutationName];
        result.success = updateResult.success;
        result.validation = updateResult.validation;
        result.meta = updateResult.meta;
        return result;
    }
開發者ID:RevFramework,項目名稱:rev-framework,代碼行數:36,代碼來源:backend.ts

示例10: Post

(async () => {

    // Create some data

    await modelManager.create(new Post({
        title: 'My First Post',
        body: 'This is a really cool post made in RevJS',
        status: 'draft'
    }));

    await modelManager.create(new Post({
        title: 'RevJS is awesome!',
        body: 'I should use it for ALL TEH THINGZZZ!',
        status: 'published'
    }));

    // Read it back

    const res = await modelManager.read(Post, {
        where: {
            _or: [
                { title: { _like: '%RevJS%' }},
                { body: { _like: '%RevJS%' }}
            ]
        }
    });

    console.log(res.results);

})();
開發者ID:RevFramework,項目名稱:rev-framework,代碼行數:30,代碼來源:creating_and_reading_a_model.ts


注:本文中的rev-models.ModelManager類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。