socialreviews-apm

Nodejs client to apm

Usage no npm install needed!

<script type="module">
  import socialreviewsApm from 'https://cdn.skypack.dev/socialreviews-apm';
</script>

README

client wrapper

Allows easier communication with the APM service.

Usage

const clientWrapper = require('socialreviews-apm');

const baseUrl = 'http://localhost:8080'

const client = clientWrapper({ baseUrl })

Note

Before we continue. There are a few things that are important to mention.

  • The API acts as a proxy for requests through to APM.
  • A response via callback or async/await got cycle.

Profiles

  1. CreateNewProfile

    This method creates a profile.

    const client = clientWrapper({ baseUrl })
    
    const profile = await client.createNewProfile(profile)
    

    The profile object above should contain the following properties. i.e.

    {
        external_platform_domain: string, // Required
        access_token: string, // Required
        external_shop_id: string, // Required
        email: string, // Required
        business_id: ObjectId, // Required
        platform: string, // Current only available options 'shopify'
        business_name: string // Optional
    }
    

    The response body should contain the following properties. Response Body

  2. fetchProfileById

    This method fetches a profile by id provided.

    const client = clientWrapper({ baseUrl })
    
    const profile = await client.fetchProfileById('profile_id')
    

    The response body should contain the following properties. Response Body

  3. toggleProfileStatus

    This method changes the activation/deactivation status of a given profile.

    const client = clientWrapper({ baseUrl })
    
    const toggleStatus = await client.toggleProfileStatus({
      profileId: 'someid',
      status: 'D'
    })
    
    // 'A' for activated and 'D' for deactivated
    

    The response body should contain the following properties. Response Body

Businesses

  1. getProfilesByBusinessId

    This fetches profiles related to a given business using the business_id field.

    const client = clientWrapper({ baseUrl })
    
    const profile = await client.getProfilesByBusinessId('somebusinessid')
    

    The response body should contain the following properties. Response Body

Errors

Any response errors that occur will be in the following formats

  • Profile does not exist error
{
  "error": {
      "message": "profile does not exist"
  },
  "status": 404
}
  • Profile already exists error
{
  "error": {
      "message": "profile already exist"
  },
  "status": 400
}
  • Validation error
 {
   "error": {
     "details": [
       {
         "message": "\"business_id\" is not allowed to be empty",
         "param": "business_id"
       }
   ],
   "message": "error validating req parameters"
 },
 "status": 400
 }
  • Internal server error
{
  "error": {
    "message": "internal server error"
    },
  "status": 500
}