2.5.40 • Published 2 months ago

@smartcloud/compliance v2.5.40

Weekly downloads
118
License
ISC
Repository
-
Last release
2 months ago

SmartCloud Compliance SDK

Installation

It is recommended to use the latest version of this SDK. To install:

npm install @smartcloud/compliance@latest

Getting started

To intialise the client, either apiSecret or a tokenGetter function must be supplied in order to be authenticated.

const client = new ComplianceClient(config);

Configuration:

interface ComplianceBaseConfig {
    basePath: string; // SmartCloud API base path
    apiKey: string; // Your SmartCloud API key
    // Optional override for getting user
    user?: {
        id: string; // Your SmartCloud user ID
        email?: string;
        name?: string;
        alias?: string; // Your name alias
    }
    // At least one of either
    apiSecret: string;  // Your SmartCloud API secret
    tokenGetter: () => Promise<string>; // Getter function to get your Firebase Token periodically
}

Features

Cases

To access cases from an organization.

const cases = client.cases(orgId);

Cases returned by the SDK are wrapped in a Case class with unique features depending on the type of case

Get cases by modification date

Cases returned are ordered where the most recently updated case is returned first.

const caseStream = cases.getCasesByModification({ latest: Date.now(), oldest: 0, fullCase: false });
caseStream.on('data', (caseList) => {
    // Do something with case list
});
caseStream.on('end', () => {
    // Finished
});

Get cases by creation date

Cases returned are ordered where the most recent case is returned first.

const caseStream = cases.getCasesByCreation({ latest: Date.now(), oldest: 0, fullCase: false });
caseStream.on('data', (caseList) => {
    // Do something with case list
});
caseStream.on('end', () => {
    // Finished
});

Get cases by URI

Get up to 40 cases by URI

const caseList = await cases.getCasesByURI(['uri1', 'uri2', 'uri3'], fullCase: false);

Case

The case class can be used to directly modify a case and/or it's events. Currently the only supported case type is Parking, though a generic class can be used to manage custom cases. Supported cases may have unique methods or handle specific use cases differently

Event getters

Getter methods for specific known event types are available

  • Metadata getMetadataEvent
  • Case ID getCaseIdEvent
  • Cancel getCancelledEvent
  • Close getClosedEvent
  • Breach getBreachEvent
  • Breach Appeal getBreachAppealEvents
  • Breach Reminder getBreachReminder

Additionally, you may get a specific event through these methods:

  • Get event by type:
const event = await case.getEventByType(type);
  • Get event by ID:
const event = await case.getEventById(eventId);

Case Updaters

Updater methods can be used to update case metadata information. Methods: assignOfficer updateGroups updateSiteLocation updateLocation addNotes editNotes deleteNotes updatePriority

Case Actions

Actions can be taken upon a case that may result in changing it's state or events. Methods: issueBreach closeCase openCase cancelCase

🚘 Parking Case

Methods: getParkingSessionEvent

Parking Session Event

Methods: getOffenses getParkingSessionVersion

Events

Each case may have multiple events which hold specific data relating to that event type Methods: updateEvent Event.createUnpublished

To publish a new event to a case:

const event = await case.postNewEvent(newEvent);

Similarly, an event can also be deleted from a case:

await case.deleteEvents(eventIds);

Example Code

const cases = client.cases('org1');
const myCase = await cases.createCase<ParkingCase>('Parking', [{
    type: 'Metadata',
    data: {
        groups: ['org1#org1', 'org1#region1', 'region1#site1'],
        metadata: {
            location: {
                latitude: 0,
                longitude: 0,
                openLocationCode: 'xxxxx',
            }
            priority: 1,
        }
    }
  }
]);
await myCase.addNotes({ text: 'My first note' });

const metadataEvent = myCase.getMetadataEvent();
await metadataEvent.updateEvent({
    ...metadataEvent.data,
    metadata: {
        ...metadataEvent.metadata,
        custom: {
            foo: 'bar',
        }
    }
  }
);

await myCase.closeCase('special-circumstance');

Compliance Configuration

To access compliance configuration for an organization:

const configuration = await client.configuration(orgId);

Methods: getConfig addConfig updateConfig deleteConfig addCatalog deleteCatalog toJSON Configurations hold an array of grouped configurations. Each grouped configuration also contains an array of sub group configurations. Currently the only supported configuration is Parking. However, generic configurations can also be managed.

const parkingConfig = configuration.getConfig({ type: 'Parking' });
// full config JSON object including absent property values
const object = parkingConfig.toJSON();

Group Config

Currently only the Parking and Animal configuration types are supported. However, generic configurations can also be managed.

🚘 Parking Configuration

Methods: getTicketTemplate getTicketTemplateData Getter methods are supplied for known catalog types

  • Policies (Time based overstay, no payment, payment overstay)
  • Vehicle Makes
  • Vehicle Types
  • Vehicle States
  • Vehicle Colours
  • Bay Types
  • Substates
  • Substate Triggers
  • Trigger Actions
  • Common Notes
  • Cancel Reasons
  • Close Reasons
2.5.40

2 months ago

2.5.40-beta.0

2 months ago

2.5.39

2 months ago

2.5.39-beta.1

2 months ago

2.5.39-beta.0

2 months ago

2.5.38

3 months ago

2.5.37

3 months ago

2.5.36

3 months ago

2.5.35

3 months ago

2.5.32

4 months ago

2.5.33

4 months ago

2.5.34

4 months ago

2.5.31

5 months ago

2.5.30

5 months ago

2.5.30-beta.0

5 months ago

2.5.13-beta.0

9 months ago

2.5.9

10 months ago

2.5.18

7 months ago

2.5.19

7 months ago

2.5.26-beta.2

6 months ago

2.5.14

8 months ago

2.5.15

8 months ago

2.5.16

8 months ago

2.5.17

7 months ago

2.5.10

10 months ago

2.5.11

10 months ago

2.5.12

9 months ago

2.5.13

9 months ago

2.5.26-beta.1

6 months ago

2.5.26-beta.0

6 months ago

2.5.29

5 months ago

2.5.25

6 months ago

2.5.26

6 months ago

2.5.27

6 months ago

2.5.28

5 months ago

2.5.21

6 months ago

2.5.22

6 months ago

2.5.23

6 months ago

2.5.24

6 months ago

2.5.20

6 months ago

2.5.17-beta.0

8 months ago

2.5.28-beta.0

5 months ago

2.5.23-beta.1

6 months ago

2.5.23-beta.0

6 months ago

2.5.12-beta.0

9 months ago

2.5.6

12 months ago

2.5.5

12 months ago

2.5.8

11 months ago

2.5.7

12 months ago

2.5.2

1 year ago

2.5.4

1 year ago

2.5.3

1 year ago

2.4.7

1 year ago

2.4.6

1 year ago

2.4.9

1 year ago

2.4.8

1 year ago

2.5.1-beta.0

1 year ago

2.5.0-beta.0

1 year ago

2.5.0-beta.1

1 year ago

2.5.2-beta.1

1 year ago

2.5.0

1 year ago

2.5.1

1 year ago

2.4.3

1 year ago

2.4.2

1 year ago

2.4.4

1 year ago

2.4.1

1 year ago

2.4.0

1 year ago

2.3.23

1 year ago

2.3.20

1 year ago

2.3.22

1 year ago

2.3.21

1 year ago

2.3.20-beta.1

1 year ago

2.4.0-beta.0

2 years ago

2.4.0-beta.1

2 years ago

2.3.17

1 year ago

2.3.16

2 years ago

2.3.19

1 year ago

2.3.18

1 year ago

2.3.13

2 years ago

2.3.15

2 years ago

2.3.14

2 years ago

2.3.0

2 years ago

2.3.2

2 years ago

2.3.1

2 years ago

2.3.4

2 years ago

2.3.3

2 years ago

2.3.6

2 years ago

2.3.5

2 years ago

2.2.2

2 years ago

2.3.8

2 years ago

2.3.7

2 years ago

2.3.9

2 years ago

2.2.2-beta.2

2 years ago

2.2.2-beta.1

2 years ago

2.3.2-beta.1

2 years ago

2.3.10-beta.1

2 years ago

2.3.12

2 years ago

2.3.11

2 years ago

2.3.10

2 years ago

2.2.1

2 years ago

2.0.1-beta.35

2 years ago

2.0.1-beta.34

2 years ago

2.0.1-beta.33

2 years ago

2.0.1-beta.32

2 years ago

2.0.1-beta.31

2 years ago

2.0.1-beta.30

2 years ago

2.0.4-beta.1

2 years ago

2.0.2-beta.1

2 years ago

2.0.2-beta.2

2 years ago

2.0.2-beta.3

2 years ago

2.1.3-beta.1

2 years ago

2.1.3-beta.2

2 years ago

2.0.9-beta.1

2 years ago

2.2.0

2 years ago

2.0.1-beta.29

2 years ago

2.0.1-beta.28

2 years ago

2.0.1-beta.27

2 years ago

2.0.1-beta.26

2 years ago

2.0.1-beta.25

2 years ago

2.0.1-beta.24

2 years ago

2.1.2

2 years ago

2.1.1

2 years ago

2.1.3

2 years ago

2.1.0

2 years ago

1.2.0

2 years ago

2.0.3-beta.1

2 years ago

1.2.1

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.5

2 years ago

2.0.4

2 years ago

2.0.7

2 years ago

2.0.6

2 years ago

2.0.9

2 years ago

2.0.8

2 years ago

2.0.8-beta.2

2 years ago

2.0.8-beta.1

2 years ago

2.1.4-beta.1

2 years ago

2.1.1-beta.1

2 years ago

2.1.1-beta.2

2 years ago

2.1.1-beta.0

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

2.0.1-beta.8

2 years ago

2.0.1-beta.9

2 years ago

2.0.1-beta.6

2 years ago

2.0.1-beta.7

2 years ago

1.0.33

2 years ago

2.0.1-beta.23

2 years ago

2.0.1-beta.22

2 years ago

2.0.1-beta.21

2 years ago

2.0.1-beta.20

2 years ago

2.0.1-beta.18

2 years ago

2.0.1-beta.17

2 years ago

2.0.1-beta.16

2 years ago

2.0.1-beta.15

2 years ago

2.0.1-beta.14

2 years ago

2.0.1-beta.12

2 years ago

2.0.1-beta.11

2 years ago

2.0.1-beta.10

2 years ago

2.0.1-beta.19

2 years ago

2.0.1-beta.2

2 years ago

2.0.1-beta.3

2 years ago

2.0.1-beta.1

2 years ago

2.0.1-beta.4

2 years ago

2.0.1-beta.5

2 years ago

1.0.32

2 years ago

1.0.31

2 years ago

1.0.27-beta.0

2 years ago

1.0.26-beta.0

2 years ago

1.0.24-beta.0

2 years ago

1.0.24-beta.1

2 years ago

1.0.24-beta.2

2 years ago

1.0.24-beta.3

2 years ago

1.0.24-beta.4

2 years ago

1.0.24-beta.5

2 years ago

1.0.26

2 years ago

1.0.25

2 years ago

1.0.24

2 years ago

1.0.29

2 years ago

1.0.28

2 years ago

1.0.27

2 years ago

1.0.30

2 years ago

1.0.19-beta.3

2 years ago

1.0.19-beta.2

2 years ago

1.0.19-beta.1

2 years ago

1.0.23-beta.0

2 years ago

1.0.22

2 years ago

1.0.21

3 years ago

1.0.23

2 years ago

1.0.19

3 years ago

1.0.18

3 years ago

1.0.18-beta.1

3 years ago

1.0.18-beta.2

3 years ago

1.0.20

3 years ago

1.0.17

3 years ago

1.0.16-beta.0

3 years ago

1.0.16

3 years ago

1.0.14-beta.2

3 years ago

1.0.14-beta.1

3 years ago

1.0.15

3 years ago

1.0.14

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

1.0.11

3 years ago

1.0.10-beta.6

3 years ago

1.0.10-beta.5

3 years ago

1.0.10

3 years ago

1.0.10-beta.0

3 years ago

1.0.10-beta.2

3 years ago

1.0.10-beta.1

3 years ago

1.0.10-beta.4

3 years ago

1.0.10-beta.3

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.5-beta.1

3 years ago

1.0.5-beta.2

3 years ago

1.0.5-beta.0

3 years ago

1.0.6-beta.0

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.0

3 years ago

0.1.56

3 years ago

0.1.57

3 years ago

0.1.53

3 years ago

0.1.54

3 years ago

0.1.55

3 years ago

0.1.52

3 years ago

0.1.51

3 years ago

0.1.50

3 years ago

0.1.49

3 years ago

0.1.47

3 years ago

0.1.48

3 years ago

0.1.45

3 years ago

0.1.46

3 years ago

0.1.44

3 years ago

0.1.43

3 years ago

0.1.42

3 years ago

0.1.41

3 years ago

0.1.40

3 years ago

0.1.38

3 years ago

0.1.39

3 years ago

0.1.37

3 years ago

0.1.35

3 years ago

0.1.36

3 years ago

0.1.33

3 years ago

0.1.34

3 years ago

0.1.32-beta0

3 years ago

0.1.31

3 years ago

0.1.32

3 years ago

0.1.30

3 years ago

0.1.28

3 years ago

0.1.29

3 years ago

0.1.27

3 years ago

0.1.26

3 years ago

0.1.24

3 years ago

0.1.25

3 years ago

0.1.23

3 years ago

0.1.22

3 years ago

0.1.13

3 years ago

0.1.14

3 years ago

0.1.15

3 years ago

0.1.20

3 years ago

0.1.21

3 years ago

0.1.16

3 years ago

0.1.17

3 years ago

0.1.18

3 years ago

0.1.19

3 years ago

0.1.12

3 years ago

0.1.10

3 years ago

0.1.11

3 years ago

0.1.9

3 years ago

0.1.8

3 years ago

0.1.7

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.0

3 years ago

0.1.1

3 years ago

0.1.0-beta.4

3 years ago

0.1.0-beta.2

3 years ago

0.1.0-beta.3

3 years ago

0.1.0-beta.1

3 years ago

0.1.0-beta.0

3 years ago

0.0.25

3 years ago

0.0.25-beta.0

3 years ago

0.0.25-beta.1

3 years ago

0.0.23

3 years ago

0.0.24

3 years ago

0.0.22

3 years ago

0.0.21

3 years ago

0.0.20

3 years ago

0.0.18

3 years ago

0.0.19

3 years ago

0.0.17

3 years ago

0.0.16

3 years ago

0.0.15

3 years ago

0.0.14

3 years ago

0.0.13

3 years ago

0.0.12

3 years ago

0.0.11

3 years ago

0.0.10

3 years ago

0.0.9

3 years ago

0.0.8

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago