// Copyright (c) Cratis. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. import { ObservableQueryFor } from '../../ObservableQueryFor'; import { Constructor } from '@cratis/fundamentals'; import { ParameterDescriptor } from '../../../reflection/ParameterDescriptor'; export class TestObservableQuery extends ObservableQueryFor { readonly route = '/api/test/{id}'; readonly defaultValue = ''; readonly parameterDescriptors: ParameterDescriptor[] = [ new ParameterDescriptor('id', String as Constructor) ]; get requiredRequestParameters(): string[] { return ['id']; } constructor() { super(String as Constructor, false); } } export class TestEnumerableQuery extends ObservableQueryFor { readonly route = '/api/items/{category}'; readonly defaultValue: string[] = []; readonly parameterDescriptors: ParameterDescriptor[] = [ new ParameterDescriptor('category', String as Constructor) ]; get requiredRequestParameters(): string[] { return ['category']; } constructor() { super(String as Constructor, true); } } export class TestObservableQueryWithParameterDescriptorValues extends ObservableQueryFor { readonly route = '/api/search'; readonly defaultValue = ''; readonly parameterDescriptors: ParameterDescriptor[] = [ new ParameterDescriptor('filter', String as Constructor), new ParameterDescriptor('limit', Number as Constructor) ]; filter?: string; limit?: number; get requiredRequestParameters(): string[] { return []; } constructor() { super(String as Constructor, false); } }