@eluvio/elv-utils-js
Version:
Utilities for the Eluvio Content Fabric
40 lines (32 loc) • 976 B
JavaScript
// code related to Access Groups
const sortBy = require('@eluvio/elv-js-helpers/Functional/sortBy')
const Client = require('./Client')
const Logger = require('./Logger')
const blueprint = {
name: 'AccessGroup',
concerns: [Logger, Client]
}
const New = context => {
// returns an object keyed by group address
const index = async () => {
const client = await context.concerns.Client.get()
const response = await client.ListAccessGroups()
return Object.fromEntries(response.map(g => [g.address, {name: g.meta?.public?.name}]))
}
// returns an array
const list = async () => {
const client = await context.concerns.Client.get()
const response = await client.ListAccessGroups()
const nameSort = sortBy(x => x.name?.toLowerCase())
return nameSort(response.map(g=> new Object({address: g.address, name: g.meta?.public?.name})))
}
// instance interface
return {
index,
list
}
}
module.exports = {
blueprint,
New
}