Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@janiscommerce/account-process

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@janiscommerce/account-process

Creates or Updates a Process of Janis Commerce Service Account

  • 3.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Account Process

Build Status Coverage Status npm version

Creates or Updates a Process of Janis Commerce Service Account

:arrow_down: Installation

npm install @janiscommerce/account-process

:new: Changes from v3.0.0

Using @janiscommerce/lambda with version 6.x.y to use AWS SDK in V3.

:new: Changes from v2.0.0

service field

Env variable JANIS_SERVICE_NAME is required for saving and AccountProcess.

Using Lambda instead of Api

Now the package uses Commerce Lambda function SaveAccountProcess instead of old Api.

Response

The response of send() has changed cause now we are using lambda instead of microservice-call.

Response 200 Example

Previous response

{
    "statusCode": 200,
    "body": {
        "id": "5dea9fc691240d0008408000",
    }
}

Current response

{
    "statusCode": 200,
    "payload": {
        "code": 200,
        "accountProcess": {
            "id": "5dea9fc691240d0008408000",
            "service": "my-service-name",
            "process": "import-readme",
            "accountId": "5dea9fc691240d00084083f8",
            "status": "pending"
        }
    }
}
Response 404 Example

Previous response

{
    "statusCode": 404,
    "body": {
        "message": "Account not found",
    }
}

Current response

{
    "statusCode": 200,
    "payload": {
        "code": 404,
        "errorMessage": "Account not found for ID '5dea9fc691240d0008408000'"
    }
}

:wrench: Configuration

:warning: This package need to be instance with API-Session, before use.

JANIS_SERVICE_NAME (required): The name of the service that will create the AccountProcess.

:x: Wrong:

const { AccountProcess } = require('@janiscommerce/account-process');
const accountProcess = new AccountProcess();

:heavy_check_mark: Good:

const { AccountProcess } = require('@janiscommerce/account-process');
const { ApiSession } = require('@janiscommerce/api-session');

const accountProcess = session.getSessionInstance(AccountProcess);

:calling: API

  • send(accountId, processName, status, content, options)
    • Async
    • Description: Update processName for accountId in Commerce with status.
    • Parameters:
      • accountId : ObjectId Account ID in Commerce
      • processName : String name of the process
      • status : String new Status for that process
      • content : Object, OPTIONAL, Extra Data you want to add for that process, whatever you want to save, for example a message, or an error stack, etc.
      • options : Object, OPTIONAL, To add the Start Date or an End Date.
        • dateStart: Boolean true or Date Object
        • dateEnd: Boolean true or Date Object
    • Returns: Object
      • statusCode: Status code response from the Commerce Lambda SaveAccountProcess
      • payload: Object
        • code: Number. Status code with the process response
        • accountProcess: Object. The AccountProcess saved in Commerce Service

:spades: Statuses

You can get the valid Statuses using:

  • statuses
    • static getter
    • Returns: Object
      • pending
      • processing
      • success
      • error
StatusUsing packageView in Commerce Service
pendingAccountProcess.statuses.pendingaccount-process-status-pending
processingAccountProcess.statuses.processingaccount-process-status-processing
successAccountProcess.statuses.successaccount-process-status-success
errorAccountProcess.statuses.erroraccount-process-status-error

Content

This is used to keep an extra information in Account Process API, like a log.

In the process:

await accountProcess.send(
    '5dea9fc691240d00084083f8',
    'import-readme',
    AccountProcess.statuses.pending,
    { message: 'Start Importing Categories from ' } // CONTENT
);

In Commerce:

account-process-content

:clock1: Options

Now, there are 2 options

  • startDate: Boolean true or specific Date Object, to add an Date-Now ISO-String, to indicate the start of the process
  • endDate: Boolean true or specific Date Object, to add an Date-Now ISO-String, to indicate the end of the process

This is use to set in Account-Process API these properties.

In the process:


const accountProcess = this.session.getSessionInstance(AccountProcess);

// Start the process in current date
await accountProcess.send(
    '5dea9fc691240d00084083f8',
    'import-readme',
    AccountProcess.statuses.pending,
    null,
    { startDate: true }
);

// Start the process in a specific date
await accountProcess.send(
    '5dea9fc691240d00084083f8',
    'import-readme',
    AccountProcess.statuses.pending,
    null,
    { startDate: myStoredStartDate }
);

// Finish the process in current date
await accountProcess.send(
    '5dea9fc691240d00084083f8',
    'import-readme',
    AccountProcess.statuses.success,
    null,
    { endDate: true }
);

// Finish the process in specific date
await accountProcess.send(
    '5dea9fc691240d00084083f8',
    'import-readme',
    AccountProcess.statuses.success,
    null,
    { endDate: myStoredEndDate }
);

:arrow_forward: Usage

  • Send with minimal data, and pending status, and create a process in Commerce

const accountProcess = this.session.getSessionInstance(AccountProcess);

const response = await accountProcess.send(
    '5dea9fc691240d00084083f8',
    'import-readme',
    AccountProcess.statuses.pending
)

/*
Response: {
    statusCode: 200,
    payload: {
        code: 200,
        accountProcess: {
            id: '5dea9fc691240d0008408000', // the id of the AccountProcess created or updated
            service: 'my-service-name',
            process: 'import-readme',
            accountId: '5dea9fc691240d00084083f8',
            status: 'pending'
        }
    }
}

*/

  • Send with content, and processing status, and Account is not found in Commerce

const accountProcess = this.session.getSessionInstance(AccountProcess);

const response = await accountProcess.send(
    '5dea9fc691240d00084083f8',
    'import-readme',
    AccountProcess.statuses.processing,
    { itemsImported: 10, itemsNotModified: 1 }
);

/*
Response: {
    statusCode: 200,
    payload: {
        code: 404,
        errorMessage: 'Account not found for ID \'5dea9fc691240d00084083f8\''
    }
}

*/

  • Send with a Start Date and error status, and Commerce is failing

const accountProcess = this.session.getSessionInstance(AccountProcess);

const response = await accountProcess.send(
    '5dea9fc691240d00084083f8',
    'import-readme',
    AccountProcess.statuses.error,
    null // No Content,
    { startDate: true }
);

/*
Response: {
    statusCode: 503
}

*/

  • Send with an End Date, and success status, and update an existing process in Commerce

const accountProcess = this.session.getSessionInstance(AccountProcess);

const response = await accountProcess.send(
    '5dea9fc691240d00084083f8',
    'import-readme',
    AccountProcess.statuses.success,
    { importedCount: 56400 },
    { endDate: true }
);

/*
Response: {
    statusCode: 200,
    payload: {
        code: 200,
        accountProcess: {
            id: '5dea9fc691240d0008408000',
            service: 'my-service-name',
            process: 'import-readme',
            accountId: '5dea9fc691240d00084083f8',
            status: 'success'
            endDate: '2022-05-13T13:26:25.414Z',
            content: { importedCount: 56400 }
        }
    }
}

*/

:x: Errors

The errors are informed with a AccountProcessError. This object has a code that can be useful for a debugging or error handling. The codes are the following:

CodeDescription
1No Session
2Invalid Account Id
3Invalid Process Name
4Invalid Status
5Invalid Content
6Invalid Options

Keywords

FAQs

Package last updated on 13 Jul 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc