UNPKG

soda-angular

Version:
46 lines (45 loc) 1.44 kB
import { FluentQuery } from '../fluent-query/fluent-query'; import { resourceMetadataKey } from './soda-dataset-decorator'; export class SodaResource { constructor(TDatasetClass, context) { const resourceIdMetadata = Reflect.getMetadata(resourceMetadataKey, TDatasetClass); if (!resourceIdMetadata) { throw new Error(`Class '${TDatasetClass.name}' must have a SodaDatasetId decorator`); } this.Id = resourceIdMetadata; this.Context = context; } getUrl() { return `${this.Context.Host}resource/${this.Id}.json`; } observable() { return this.Context.Client.getResource(this); } get(query) { return this.Context.Client.getResource(this, query); } select(column) { return this.createQuery().select(column); } where(column) { return this.createQuery().where(column); } location(column) { return this.createQuery().location(column); } geometry(column) { return this.createQuery().geometry(column); } limit(records) { return this.createQuery().limit(records); } offset(records) { return this.createQuery().offset(records); } orderBy(column, descending) { return this.createQuery().orderBy(column, descending); } createQuery() { return new FluentQuery(this); } }