| 12345678910111213141516171819202122232425262728293031323334 |
- import type { Query as PiniaOrmQuery } from 'pinia-orm'
- import type { ApiFilter } from '~/types/data'
- import ApiResource from '~/models/ApiResource'
- import { ORDER_BY_DIRECTION } from '~/types/enum/data'
- export default class OrderBy implements ApiFilter {
- field: string
- mode: ORDER_BY_DIRECTION
- /**
- * @param field
- * @param mode
- */
- constructor(
- field: string,
- mode: ORDER_BY_DIRECTION = ORDER_BY_DIRECTION.ASC,
- ) {
- this.field = field
- this.mode = mode
- }
- public applyToPiniaOrmQuery(
- query: PiniaOrmQuery<ApiResource>,
- ): PiniaOrmQuery<ApiResource> {
- return query.orderBy(
- (instance) => instance[this.field].toLowerCase(),
- this.mode,
- )
- }
- public getApiQueryPart(): string {
- return `order[${this.field}]=${this.mode}`
- }
- }
|