diff --git a/addons/api/mirage/config.js b/addons/api/mirage/config.js index 9b4c92e37..b8d71212d 100644 --- a/addons/api/mirage/config.js +++ b/addons/api/mirage/config.js @@ -622,6 +622,17 @@ export default function () { this.patch('/managed-groups/:id'); this.del('/managed-groups/:id'); + // worker + + this.get( + '/workers', + ({ workers }, { queryParams: { scope_id: scopeId } }) => { + return workers.where({ scopeId }); + } + ); + this.get('/worker/:id'); + this.patch('/worker/:id'); + /* Uncomment the following line and the Response import above * Then change the response code to simulate error responses. * this.get('/scopes', () => new Response(505)); diff --git a/addons/api/mirage/factories/worker.js b/addons/api/mirage/factories/worker.js new file mode 100644 index 000000000..b54f1155d --- /dev/null +++ b/addons/api/mirage/factories/worker.js @@ -0,0 +1,25 @@ +import factory from '../generated/factories/user'; +import permissions from '../helpers/permissions'; +import generateId from '../helpers/id'; +import { random } from 'faker'; + +const types = ['pki', 'kms']; +const tags = ['dev', random.word(), random.word()]; + +export default factory.extend({ + id: () => generateId('w_'), + authorized_actions: () => + permissions.authorizedActionsFor('worker') || [ + 'no-op', + 'read', + 'update', + 'delete', + ], + type: (i) => types[i % types.length], + canonical_tags: () => ({ + type: tags, + }), + config_tags: () => ({ + type: tags, + }), +}); diff --git a/addons/api/mirage/generated/factories/worker.js b/addons/api/mirage/generated/factories/worker.js new file mode 100644 index 000000000..d9b3cff54 --- /dev/null +++ b/addons/api/mirage/generated/factories/worker.js @@ -0,0 +1,17 @@ +import { Factory } from 'ember-cli-mirage'; +import { random, date, datatype, internet } from 'faker'; + +/** + * GeneratedUserModelFactory + * User contains all fields related to a User resource + */ +export default Factory.extend({ + name: () => random.words(), + description: () => random.words(), + created_time: () => date.recent(), + updated_time: () => date.recent(), + version: () => datatype.number(), + address: () => `${internet.ipv6()}${internet.port()}`, + last_status_time: () => date.recent(), + active_connection_count: () => datatype.number(), +}); diff --git a/addons/api/mirage/models/worker.js b/addons/api/mirage/models/worker.js new file mode 100644 index 000000000..0cc6532df --- /dev/null +++ b/addons/api/mirage/models/worker.js @@ -0,0 +1,6 @@ +import { belongsTo } from 'ember-cli-mirage'; +import Model from './base'; + +export default Model.extend({ + scope: belongsTo(), +}); diff --git a/addons/api/mirage/serializers/worker.js b/addons/api/mirage/serializers/worker.js new file mode 100644 index 000000000..a359a2386 --- /dev/null +++ b/addons/api/mirage/serializers/worker.js @@ -0,0 +1,5 @@ +import ApplicationSerializer from './application'; + +export default ApplicationSerializer.extend({ + modelName: 'worker', +});