Negligent Pachinko Machine

    @elastic/workplace-search-node

    0.4.0 • Public • Published

    CircleCI build

    A first-party Node.js client for Elastic Workplace Search.

    Contents


    Getting started 🐣

    With npm:

    npm install @elastic/workplace-search-node

    or clone locally:

    git clone git@github.com:elastic/workplace-search-node.git
    cd workplace-search-node
    npm install

    Usage

    Create a new instance of the Elastic Workplace Search Client with your access token:

    const WorkplaceSearchClient = require('@elastic/workplace-search-node')
    const accessToken = '' // your access token
    const client = new WorkplaceSearchClient(accessToken)

    Change API endpoint

    const client = new WorkplaceSearchClient(
      accessToken,
      'https://your-server.example.com/api/ws/v1'
    )

    Indexing Documents

    This example shows how to use the indexDocuments method:

    const contentSourceKey = '' // your content source key
    const documents = [
      {
        id: 1234,
        title: '5 Tips On Finding A Mentor',
        body:
          'The difference between a budding entrepreneur who merely shows promise and one who is already enjoying some success often comes down to mentoring.',
        url: 'https://www.shopify.com/content/5-tips-on-finding-a-mentor'
      },
      {
        id: 1235,
        title: 'How to Profit from Your Passions',
        body:
          'Want to know the secret to starting a successful business? Find a void and fill it.',
        url: 'https://www.shopify.com/content/how-to-profit-from-your-passions'
      }
    ]
    
    client
      .indexDocuments(contentSourceKey, documents)
      .then(results => {
        // handle results
      })
      .catch(error => {
        // handle error
      })

    Destroying Documents

    const contentSourceKey = '' // your content source key
    const documentIds = [1234, 1235]
    
    client
      .destroyDocuments(contentSourceKey, documentIds)
      .then(destroyDocumentsResults => {
        // handle destroy documents results
      })
      .catch(error => {
        // handle error
      })

    Listing all permissions

    const contentSourceKey = '' // your content source key
    const pageParams = { currentPage: 2, pageSize: 20 } // optional argument
    
    client
      .listAllPermissions(contentSourceKey, pageParams)
      .then(response => {
        // handle response
      })
      .catch(error => {
        // handle error
      })

    Getting user permissions

    const contentSourceKey = '' // your content source key
    const user = 'enterprise_search' // username
    
    client
      .getUserPermissions(contentSourceKey, user)
      .then(response => {
        // handle response
      })
      .catch(error => {
        // handle error
      })

    Updating user permissions

    const contentSourceKey = '' // your content source key
    const user = 'enterprise_search' // username
    const permissions = { permissions: ['permission1', 'permission2'] } // permissions to assign to the user
    
    client
      .updateUserPermissions(contentSourceKey, user, permissions)
      .then(response => {
        // handle response
      })
      .catch(error => {
        // handle error
      })

    Adding user permissions

    const contentSourceKey = '' // your content source key
    const user = 'enterprise_search' // username
    const permissions = { permissions: ['permission2'] } // permissions to add to the user
    
    client
      .addUserPermissions(contentSourceKey, user, permissions)
      .then(response => {
        // handle response
      })
      .catch(error => {
        // handle error
      })

    Remove user permissions

    const contentSourceKey = '' // your content source key
    const user = 'enterprise_search' // username
    const permissions = { permissions: ['permission2'] } //permissions to remove from the user
    
    client
      .removeUserPermissions(contentSourceKey, user, permissions)
      .then(response => {
        // handle response
      })
      .catch(error => {
        // handle error
      })

    Running tests

    Run tests via npm:

    $ npm test

    FAQ 🔮

    Where do I report issues with the client?

    If something is not working as expected, please open an issue.

    Contribute 🚀

    We welcome contributors to the project. Before you begin, a couple notes...

    License 📗

    Apache 2.0 © Elastic

    Thank you to all the contributors!

    Keywords

    none

    Install

    npm i @elastic/workplace-search-node

    DownloadsWeekly Downloads

    70

    Version

    0.4.0

    License

    Apache-2.0

    Unpacked Size

    21.4 kB

    Total Files

    6

    Last publish

    Collaborators

    • johnwcambra
    • colleen.mcginnis
    • sethmlarson
    • scottybollinger
    • kyrspl
    • dlemechko
    • kilodelta
    • elasticthomaskim
    • phoey1
    • verogo
    • breehall
    • trevorpierce
    • glitteringkatie
    • chandlerprall
    • jen-huang
    • spalger
    • delvedor
    • courtewing
    • lukasolson
    • ccowan
    • jbudz
    • tylersmalley
    • thomasneirynck
    • weltenwort
    • pugnascotia
    • zinckiwi
    • brandon.kobel
    • nreese
    • mgreau
    • mindbat
    • itsmed
    • tylerjl
    • jonahbull
    • jarpy
    • leathekd
    • crazybus
    • lukeelmers
    • ddillinger
    • joshdover
    • jasonstoltz
    • bamieh
    • markov00
    • ryan.haywood
    • joshmock
    • vignesh.shanmugam
    • watson
    • rhodesjason
    • jmlrt
    • mattkime
    • constancecchen
    • afoucret
    • nickpeihl
    • axw
    • mistic
    • elasticmachine
    • gtback
    • johannes.reuter.elastic
    • pickypg
    • richard.kuzsma
    • alanstorm
    • trentm
    • andrewvc-elastic
    • jorge.sanz
    • stratoula
    • nkammah
    • streamich
    • nickofthyme
    • chloeruka