@pamlight/ngx-client
Version:
The angular library for Pamlight client SDK
113 lines (92 loc) • 3.66 kB
Markdown
# Pamlight Angular Client SDK
[Pamlight](https://pamlight.com) is a service for managing realtime connections to your database with whatever technology it is powered by. This tool (Angular Client SDK) is used to connect an Angular 2+ project from client domains to pamlight endpoints at a high level.
## Getting started
For more detailed instructions and guides on client side integration, check [Pamlight client integration](https://docs.pamlight.com/guides/client/integrations) and also how Pamlight works, see our [official documentations here](https://pamlight.com/docs).
## Installation
Install pamlight angular client sdk via npm by running the following command:
> `npm install /ngx-client --save`
## Usage
Register the `NgxPamlightModule` in your app module (or any other module you want to use it).
> `import { NgxPamlightModule } from '@pamlight/ngx-client';`
```typescript
import { NgxPamlightModule } from '@pamlight/ngx-client';
export class AppModule {}
```
### Use `NgxPamlightService` service in your component or in another service like below:
```typescript
import { Component, OnInit } from '@angular/core';
import { NgxPamlightService } from '@pamlight/ngx-client';
export class ComponentName implements OnInit {
constructor(
private ngxPamlightService: NgxPamlightService
) { }
ngOnInit() {
// code actions here
}
}
```
### Initialize
Connect Pamlight client by initializing with the service. Its is adviceable to run `init()` method in a singleton service so as to ensure only a single instance is running.
```typescript
import { Injectable } from '@angular/core';
import { NgxPamlightService } from '@pamlight/ngx-client';
export class ServiceName {
constructor(
private ngxPamlightService: NgxPamlightService
) {
this.initPamlight();
}
private initPamlight(): void {
// replace `PROJECT_ID` with your project ID from Pamlight dashboard
const projectId: string = `PROJECT_ID`;
this.ngxPamlightService.init().then(() => {
console.log('Pamlight connected successfully');
}).catch(err => {
throw Error(err);
});
}
}
```
### sync data from database
Reading and subscribing to data changes in your database is straight forward. The `read method` returns an rxjs observable which can be subscribe to for subsequent data changes. For example, to get a `User` document from data base by userId, you could do something like this:
```typescript
const routeId = 'getUserByUserID';
const query = {
userId: `USER_ID`
};
this.ngxPamlightService.read<User>(routeId, query).subscribe(user => {
console.log(user);
});
```
### write data to database
Writing data to your database is by calling the write method on the connected client object. This returns a promise object with result if expected or void otherwise.
```typescript
const routeId = 'updateUserProfile';
const payload = {
firstName: 'Alice',
lastName: 'Bob',
age: 32
};
this.ngxPamlightService.write(routeId, payload, true).then((result) => {
console.log(result);
}).catch((e) => {
throw Error(e);
});
```
### Further Reading
For further reading and information, check more [client read operations](https://docs.pamlight.com/guides/client/reads) as well as [client write operations](https://docs.pamlight.com/guides/client/writes).