# @ovh-ux/ng-ovh-api-wrappers

> AngularJS component designed to configure ApiEndpoints with the same interface as a $resource yet allow for extended configuration by providing ApiRequests objects that can be modified with chained methods to define the parameters sent Iceberg.

Latest version **5.1.0** (published 2023-01-30) · BSD-3-Clause license · 0 weekly downloads

> **Deprecated.** This package is deprecated.

## Install

```sh
npm install @ovh-ux/ng-ovh-api-wrappers
pnpm add @ovh-ux/ng-ovh-api-wrappers
yarn add @ovh-ux/ng-ovh-api-wrappers
bun add @ovh-ux/ng-ovh-api-wrappers
```

## Health

**Score 10/100 (F)** — status: deprecated.

Negative: deprecated.

## Facts

| | |
|---|---|
| Version | 5.1.0 |
| Published | 2023-01-30 |
| First published | 2019-03-06 |
| Weekly downloads | 0 |
| License | BSD-3-Clause |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Dependencies | 1 |
| Unpacked size | 719.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | OVH SAS |
| Maintainers | jisay, blary_jp, antleblanc, cbourgois, ovh-ux-cds, lizardk, ovh, marie-j |
| Keywords | angularjs, component, endpoint, ovh, ovhcloud |

## Links

- npm: https://www.npmjs.com/package/@ovh-ux/ng-ovh-api-wrappers
- Repository: https://github.com/ovh-ux/ng-ovh-api-wrappers
- Homepage: https://github.com/ovh-ux/ng-ovh-api-wrappers#readme
- Issues: https://github.com/ovh-ux/ng-ovh-api-wrappers/issues
- npm.io page: https://npm.io/package/@ovh-ux/ng-ovh-api-wrappers

## Dependencies (1)

- [lodash](https://npm.io/package/lodash.md) ^4.17.21

## Recent versions

- 5.1.0 (latest) — 2023-01-30
- 5.0.0 — 2022-07-08
- 4.0.11 — 2022-03-25
- 4.0.10 — 2021-12-01
- 4.0.9 — 2021-11-08
- 4.0.8 — 2020-08-18
- 4.0.7 — 2020-03-16
- 4.0.6 — 2020-01-08
- 4.0.5 — 2019-11-08
- 4.0.4 — 2019-08-30
- 4.0.3 — 2019-08-27
- 4.0.2 — 2019-07-16
- 4.0.1 — 2019-07-09
- 4.0.0 — 2019-07-04
- 3.0.0 — 2019-03-06

## README

# ng-ovh-api-wrappers

> AngularJS component designed to configure Api Endpoints with the same interface as a $resource yet allow for extended configuration by providing ApiRequests objects that can be modified with chained methods to define the headers to Iceberg.

[![Downloads](https://badgen.net/npm/dt/@ovh-ux/ng-ovh-api-wrappers)](https://npmjs.com/package/@ovh-ux/ng-ovh-api-wrappers) [![Dependencies](https://badgen.net/david/dep/ovh-ux/ng-ovh-api-wrappers)](https://npmjs.com/package/@ovh-ux/ng-ovh-api-wrappers?activeTab=dependencies) [![Dev Dependencies](https://badgen.net/david/dev/ovh-ux/ng-ovh-api-wrappers)](https://npmjs.com/package/@ovh-ux/ng-ovh-api-wrappers?activeTab=dependencies)

## Install

```sh
$ yarn add @ovh-ux/ng-ovh-api-wrappers
```

## Usage

```js
// index.js
import angular from 'angular';
import ngOvhApiWrappers from '@ovh-ux/ng-ovh-api-wrappers';

angular.module('myApp', [ngOvhApiWrappers]);
```

### Iceberg

#### Simple request

```js
// service.js
function getElements() {
  return iceberg('/api/elements')
    .query()
    .execute({ ...queryParams }, resetCache)
    .$promise;
}
```

Response is formatted like

<!-- eslint-skip -->
```js
{
  data // data returned by the API
  headers // response headers returned
  status // call status
}
```

#### Enable aggregation

```js
// service.js
function getAggregatedElements() {
  return iceberg('/api/elements')
    .query()
    .expand(aggregationMode)
    .execute();
}
```

`aggregationMode` can be one of those values:
* `CachedObjectList-Cursor`
* `CachedObjectList-Pages`

#### Paginate

```js
// service.js
function getPaginatedElements() {
  return iceberg('/api/elements')
    .query()
    .expand('CachedObjectList-Pages')
    .limit(10) // get only 10 results by page
    .offset(2) // get results for page 2
    .execute();
}
```

#### Filter

```js
// service.js
function getFilteredElements() {
  return iceberg('/api/elements')
    .query()
    .expand('CachedObjectList-Pages')
    .addFilter('name', 'like', 'iceberg') // get element with name matching iceberg
    .execute();
}
```

```js
// service.js
function getFilteredElements() {
  return iceberg('/api/elements')
    .query()
    .expand('CachedObjectList-Pages')
    .addFilter('name', 'like', ['iceberg', 'awesome']) // get element with name matching iceberg and awesome
    .execute();
}
```

#### Sort

```js
// service.js
function getSortedElements() {
  return iceberg('/api/elements')
    .query()
    .expand('CachedObjectList-Pages')
    .sort('name') // sort elements by ascending names
    .execute();
}
```

```js
// service.js
function getAggregatedElements() {
  return iceberg('/api/elements')
    .query()
    .expand('CachedObjectList-Pages')
    .sort('name', 'desc') // sort elements by descending names
    .execute();
}
```
## Test

```sh
$ yarn test
```

## Related

- [ovh-api-services](https://github.com/ovh-ux/ovh-api-services) - Contains all AngularJS $resource for OVHcloud API

## Contributing

Always feel free to help out! Whether it's [filing bugs and feature requests](https://github.com/ovh-ux/ng-ovh-api-wrappers/issues/new) or working on some of the [open issues](https://github.com/ovh-ux/ng-ovh-api-wrappers/issues), our [contributing guide](CONTRIBUTING.md) will help get you started.

## License

[BSD-3-Clause](LICENSE) © OVH SAS

---
_Source: https://npm.io/package/@ovh-ux/ng-ovh-api-wrappers · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
