本文整理汇总了TypeScript中@eg/core/pcrud.service.PcrudService.search方法的典型用法代码示例。如果您正苦于以下问题:TypeScript service.PcrudService.search方法的具体用法?TypeScript service.PcrudService.search怎么用?TypeScript service.PcrudService.search使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类@eg/core/pcrud.service.PcrudService
的用法示例。
在下文中一共展示了service.PcrudService.search方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: Number
.subscribe(summary => {
summary.metabibId = Number(metabib.id());
summary.metabibRecords =
metabib.source_maps().map(m => Number(m.source()));
let promise;
if (relatedBibIds.length > 0) {
// Grab data for MR bib summary augmentation
promise = this.pcrud.search('mraf', {id: relatedBibIds})
.pipe(tap(attr => summary.record.mattrs().push(attr)))
.toPromise();
} else {
// Metarecord has only one constituent bib.
promise = Promise.resolve();
}
promise.then(() => {
// Re-compile with augmented data
summary.compileRecordAttrs();
// Fetch holdings data for the metarecord
this.getHoldingsSummary(metabib.id(), orgId, orgDepth, true)
.then(holdingsSummary => {
summary.holdingsSummary = holdingsSummary;
observer.next(summary);
observer.complete();
});
});
});
示例2: getBibSummary
// Note when multiple IDs are provided, responses are emitted in order
// of receipt, not necessarily in the requested ID order.
getBibSummary(bibIds: number | number[],
orgId?: number, orgDepth?: number): Observable<BibRecordSummary> {
const ids = [].concat(bibIds);
if (ids.length === 0) {
return from([]);
}
return this.pcrud.search('bre', {id: ids},
{ flesh: 1,
flesh_fields: {bre: ['flat_display_entries', 'mattrs']},
select: {bre : this.fetchableBreFields()}
},
{anonymous: true} // skip unneccesary auth
).pipe(mergeMap(bib => {
const summary = new BibRecordSummary(bib, orgId, orgDepth);
summary.net = this.net; // inject
summary.ingest();
return this.getHoldingsSummary(bib.id(), orgId, orgDepth)
.then(holdingsSummary => {
summary.holdingsSummary = holdingsSummary;
return summary;
});
}));
}
示例3: mergeParts
mergeParts() {
console.log('Merging parts into lead part ', this.leadPart);
if (!this.leadPart) { return; }
this.leadPart = Number(this.leadPart);
// 1. Migrate copy maps to the lead part.
const partIds = this.parts
.filter(p => Number(p.id()) !== this.leadPart)
.map(p => Number(p.id()));
const maps = [];
this.pcrud.search('acpm', {part: partIds})
.subscribe(
map => {
map.part(this.leadPart);
map.ischanged(true);
maps.push(map);
},
err => {},
() => {
// 2. Delete the now-empty subordinate parts. Note the
// delete must come after the part map changes are committed.
if (maps.length > 0) {
this.pcrud.autoApply(maps)
.toPromise().then(() => this.deleteParts());
} else {
this.deleteParts();
}
}
);
}
示例4: fleshBibUsers
// Flesh the creator and editor fields.
// Handling this separately lets us pull from the cache and
// avoids the requirement that the main bib query use a staff
// (VIEW_USER) auth token.
fleshBibUsers(records: IdlObject[]): Promise<void> {
const search = [];
records.forEach(rec => {
['creator', 'editor'].forEach(field => {
const id = rec[field]();
if (Number.isInteger(id)) {
if (this.userCache[id]) {
rec[field](this.userCache[id]);
} else if (!search.includes(id)) {
search.push(id);
}
}
});
});
if (search.length === 0) {
return Promise.resolve();
}
return this.pcrud.search('au', {id: search})
.pipe(map(user => {
this.userCache[user.id()] = user;
records.forEach(rec => {
if (user.id() === rec.creator()) {
rec.creator(user);
}
if (user.id() === rec.editor()) {
rec.editor(user);
}
});
})).toPromise();
}
示例5:
this.gridSource.getRows = (pager: Pager) => {
const orgs = this.org.ancestors(this.contextOrg, true);
return this.pcrud.search('vms', {owner: orgs}, {
order_by: {vms: ['name']},
limit: pager.limit,
offset: pager.offset
});
};
示例6: refreshTree
refreshTree(): Promise<any> {
if (!this.matchSet_) { return Promise.resolve(); }
return this.pcrud.search('vmsp',
{match_set: this.matchSet_.id()}, {},
{atomic: true, authoritative: true}
).toPromise().then(points => this.ingestMatchPoints(points));
}
示例7: supportedLocales
// Returns i18n_l objects matching the locales supported
// in the current environment.
supportedLocales(): Observable<IdlObject> {
const locales = this.supportedLocaleCodes();
if (locales.length === 0) {
return of();
}
return this.pcrud.search('i18n_l', {code: locales});
}
示例8: getItemImportDefs
getItemImportDefs(): Promise<IdlObject[]> {
if (this.importItemAttrDefs) {
return Promise.resolve(this.importItemAttrDefs);
}
const owners = this.org.ancestors(this.auth.user().ws_ou(), true);
return this.pcrud.search('viiad', {owner: owners}, {}, {atomic: true})
.toPromise().then(defs => {
this.importItemAttrDefs = defs;
return defs;
});
}
示例9:
this.org.settings('sms.enable').then(sets => {
this.smsEnabled = sets['sms.enable'];
if (!this.smsEnabled) { return; }
this.pcrud.search('csc', {active: 't'}, {order_by: {csc: 'name'}})
.subscribe(carrier => {
this.smsCarriers.push({
id: carrier.id(),
label: carrier.name()
});
});
});
示例10: getMergeProfiles
getMergeProfiles(): Promise<IdlObject[]> {
if (this.mergeProfiles) {
return Promise.resolve(this.mergeProfiles);
}
const owners = this.org.ancestors(this.auth.user().ws_ou(), true);
return this.pcrud.search('vmp',
{owner: owners}, {order_by: {vmp: ['name']}}, {atomic: true})
.toPromise().then(profiles => {
this.mergeProfiles = profiles;
return profiles;
});
}