meilisearch-admin/app/services/meilisearch.js
2022-09-16 15:32:08 +03:00

59 lines
1.2 KiB
JavaScript

import Service from '@ember/service';
import Index from '../models/index';
import Task from '../models/task';
import query from '../utils/query';
export default class MeilisearchService extends Service {
getIndexes() {
return query('indexes').then((data) => {
data.results = data.results.map((item) => new Index(item));
return data;
});
}
getIndex(index_uid) {
return query(`indexes/${index_uid}`).then((item) => new Index(item));
}
deleteIndex(index_uid) {
return query(`indexes/${index_uid}`, {
method: 'DELETE',
});
}
getHealth() {
return query('health');
}
getVersion() {
return query('version');
}
getStats() {
return query('stats');
}
getKeys() {
return query('keys');
}
getKey(uid) {
return query(`keys/${uid}`);
}
getTasks(params, options = {}) {
// Clear from undefined fields
Object.keys(params).forEach((key) => params[key] ?? delete params[key]);
return query(`tasks?${new URLSearchParams(params)}`, options).then(
(data) => {
data.results = data.results.map((item) => new Task(item));
return data;
}
);
}
getTask(uid) {
return query(`tasks/${uid}`).then((item) => new Task(item));
}
}