@redseat/api 0.0.16 → 0.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -324,6 +324,15 @@ export declare enum SqlOrder {
324
324
  ASC = "ASC",
325
325
  DESC = "DESC"
326
326
  }
327
+ export declare enum RsSort {
328
+ Modified = "modified",
329
+ Added = "added",
330
+ Created = "created",
331
+ Rating = "rating",
332
+ Name = "name",
333
+ Size = "size"
334
+ }
335
+ export type MovieSort = 'modified' | 'added' | 'created' | 'name' | 'digitalairdate';
327
336
  export interface DeletedQuery {
328
337
  after?: number;
329
338
  kind?: ElementType;
@@ -53,3 +53,12 @@ export var SqlOrder;
53
53
  SqlOrder["ASC"] = "ASC";
54
54
  SqlOrder["DESC"] = "DESC";
55
55
  })(SqlOrder || (SqlOrder = {}));
56
+ export var RsSort;
57
+ (function (RsSort) {
58
+ RsSort["Modified"] = "modified";
59
+ RsSort["Added"] = "added";
60
+ RsSort["Created"] = "created";
61
+ RsSort["Rating"] = "rating";
62
+ RsSort["Name"] = "name";
63
+ RsSort["Size"] = "size";
64
+ })(RsSort || (RsSort = {}));
package/dist/library.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { IFile, ITag, IPerson, ISerie, IMovie, MediaRequest, IEpisode, ExternalImage, IBackupFile, ILibrary, SerieInMedia, DeletedQuery, RsDeleted } from './interfaces.js';
1
+ import { IFile, ITag, IPerson, ISerie, IMovie, MediaRequest, IEpisode, ExternalImage, IBackupFile, ILibrary, SerieInMedia, DeletedQuery, RsDeleted, MovieSort, RsSort, SqlOrder } from './interfaces.js';
2
2
  import { EncryptFileOptions, EncryptedFile } from './encryption.js';
3
3
  export interface MediaForUpdate {
4
4
  name?: string;
@@ -92,8 +92,19 @@ export declare class LibraryApi {
92
92
  name?: string;
93
93
  after?: number;
94
94
  }): Promise<IPerson[]>;
95
- getSeries(): Promise<ISerie[]>;
96
- getMovies(): Promise<IMovie[]>;
95
+ getSeries(query?: {
96
+ after?: number;
97
+ name?: string;
98
+ watched?: boolean;
99
+ sort?: RsSort;
100
+ order?: SqlOrder;
101
+ }): Promise<ISerie[]>;
102
+ getMovies(query?: {
103
+ after?: number;
104
+ inDigital?: boolean;
105
+ watched?: boolean;
106
+ sort?: MovieSort;
107
+ }): Promise<IMovie[]>;
97
108
  getMedias(filter?: MediaRequest): Promise<IFile[]>;
98
109
  countMedias(filter?: MediaRequest): Promise<{
99
110
  count: number;
package/dist/library.js CHANGED
@@ -95,14 +95,46 @@ export class LibraryApi {
95
95
  const res = await this.client.get(this.getUrl('/people'), { params });
96
96
  return res.data;
97
97
  }
98
- async getSeries() {
99
- const res = await this.client.get(this.getUrl('/series'), {
100
- params: { sort: 'name', order: 'ASC' }
101
- });
98
+ async getSeries(query) {
99
+ const params = {};
100
+ if (query) {
101
+ if (query.after !== undefined) {
102
+ params.after = query.after;
103
+ }
104
+ if (query.name !== undefined) {
105
+ params.name = query.name;
106
+ }
107
+ if (query.watched !== undefined) {
108
+ params.watched = query.watched;
109
+ }
110
+ if (query.sort !== undefined) {
111
+ params.sort = query.sort;
112
+ }
113
+ if (query.order !== undefined) {
114
+ params.order = query.order;
115
+ }
116
+ }
117
+ // Defaults { sort: 'name', order: 'ASC' } have been removed
118
+ const res = await this.client.get(this.getUrl('/series'), { params });
102
119
  return res.data;
103
120
  }
104
- async getMovies() {
105
- const res = await this.client.get(this.getUrl('/movies'));
121
+ async getMovies(query) {
122
+ const params = {};
123
+ if (query) {
124
+ if (query.after !== undefined) {
125
+ params.after = query.after;
126
+ }
127
+ if (query.inDigital !== undefined) {
128
+ params.inDigital = query.inDigital;
129
+ }
130
+ if (query.watched !== undefined) {
131
+ params.watched = query.watched;
132
+ }
133
+ if (query.sort !== undefined) {
134
+ params.sort = query.sort;
135
+ }
136
+ }
137
+ const res = await this.client.get(this.getUrl('/movies'), { params });
106
138
  return res.data;
107
139
  }
108
140
  async getMedias(filter) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redseat/api",
3
- "version": "0.0.16",
3
+ "version": "0.0.17",
4
4
  "description": "TypeScript API client library for interacting with Redseat servers",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",