npm package: @neoprospecta/angular-neoapi
Description: Angular NeoAPI
Latest version: 4.1.7

# Angular NeoAPI for Angular 2+

### A front end REST API service to make requests to Neoprospecta backend from clients systems.

## How to install:
#### Have two ways to install angular-neoapi inside your project:
- **First way**: 

    1. Install dependence directly from NPM, running this command on terminal in the project's root folder.

        ```npm install @neoprospecta/angular-neoapi --save```

- **Second way**: 

    1. Declare **angular-neoapi** as dependence into **package.json** file.

        ```"@neoprospecta/angular-neoapi":"^4.0.0" ```

    2. Install dependence, running this command on terminal in the project's root folder.

        ```npm install```

## How to use:
- Import **NeoApiModule** in the project's root module.

```ts
import { NeoApiModule } from '@neoprospecta/angular-neoapi';

@NgModule({
    ...
  imports: [
    NeoApiModule
  ],
    ...
})
export class AppModule { }
```

- Import **NeoApiService** in project's *component or service* that needs to make request to Neoprospecta API backend.
```ts
import { NeoApiService } from '@neoprospecta/angular-neoapi';

@Component(...)
export class AppComponent {
    ...
  constructor(
    private neoApiService: NeoApiService
  ){ }
  ...
}
```

- Done, now can use a function from NeoApiService. For example:

```ts
this.neoApiService.post('endpoint/', {objectKeys: objectValues});
```

## Features
#### **POST** 
- Create data to Neoprospecta API backend.
```ts
this.neoApiService.post('endpoint/', any);
```

#### **PUT** 
- Update data to Neoprospecta API backend. *Obs: The second param needs to have uuid or id attribute.*
```ts
this.neoApiService.put('endpoint/', any);
```

#### **SAVE** 
- Update or Create data to Neoprospecta API backend. If entityData (2th param) have id or uuid atribute the method PUT is called, else method POST is called.
```ts
this.neoApiService.save('endpoint/', any);
```

#### **GET** 
- Get data from Neoprospecta API backend without params. *Obs: The second param needs to have uuid or id attribute.*
```ts
this.neoApiService.get('endpoint/');
```

- Get data from Neoprospecta API backend with params.
```ts
let params = new URLSearchParams();
params.set('key', value);
this.neoApiService.get('endpoint/', params);
```

#### **DELETE** 
- Delete data from Neoprospecta API backend. *Obs: The second param needs to have uuid or id attribute.*
```ts
this.neoApiService.delete('endpoint/', any);
```

#### **LOGIN** 
- Try to login into Neoprospecta API backend. 
```ts
this.neoApiService.login({username: 'username', password: 'password'});
```

#### **LOGOUT** 
- Try to logout into Neoprospecta API backend. This method remove 'auth_token' from localStorage and SessionStorage if have.
```ts
this.neoApiService.logout();
```

## Features Table
| Feature | Function |
| ------ | ------ |
| post | (entityName: string, entityData: any): Promise<any> |
| put | (entityName: string, entityData: any): Promise<any> |
| save | (entityName: string, entityData: any): Promise<any> |
| get | (entityName: string, search?: URLSearchParams): Promise<any> |
| post | (entityName: string, entityData: any): Promise<any> |
| delete | (entityName: string, entityData: any): Promise<any> |
| login | (loginRequest: LoginRequest): Promise<any> |
| logout | () |

## License

© Neoprospecta | MIT LICENSE

[![N|Solid](https://s3-sa-east-1.amazonaws.com/neoprospecta/images/marca-horizontal-120h.png)](https://neoprospecta.com.br/)