Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial release #2

Merged
merged 7 commits into from
Nov 30, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Update documentation
on:
push:
branches:
- main
paths:
- docs/**

concurrency:
group: wiki
cancel-in-progress: true

permissions:
contents: write

jobs:
release:
name: Update documentation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: spenserblack/[email protected]
with:
path: docs
9 changes: 6 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Release
on:
push:
branches:
- main-wip
- main
jobs:
release:
name: Release
Expand All @@ -18,8 +18,11 @@ jobs:
node-version: "lts/*"
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build
- name: Test
run: npm run test
env:
API_KEY: ${{ secrets.API_KEY }}
API_URL: ${{ secrets.API_URL }}
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
35 changes: 35 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Test
on:
push:
branches:
- main
paths-ignore:
- "docs/**"
- "**/*.md"
pull_request:
paths-ignore:
- "docs/**"
- "**/*.md"

jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: "lts/*"
- name: Install dependencies
run: npm ci
- name: Test
run: npm run test
env:
API_KEY: ${{ secrets.API_KEY }}
API_URL: ${{ secrets.API_URL }}
- name: Build
run: npm run build
61 changes: 50 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,18 @@
[![Build Status][build-img]][build-url]
[![Issues][issues-img]][issues-url]
[![Semantic Release][semantic-release-img]][semantic-release-url]
[![TypeScript][typescript-img]][typescript-url]

[npm-img]:https://img.shields.io/npm/v/@print-one/print-one-js
[npm-url]:https://www.npmjs.com/package/@print-one/print-one-js

[build-img]:https://github.com/Print-one/print-one-js/actions/workflows/release.yml/badge.svg
[build-url]:https://github.com/Print-one/print-one-js/actions/workflows/release.yml

[issues-img]:https://img.shields.io/github/issues/Print-one/print-one-js
[issues-url]:https://github.com/Print-one/print-one-js/issues

[semantic-release-img]:https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
[semantic-release-url]:https://github.com/semantic-release/semantic-release

> The official javascript client for [Print.one](https://print.one)

Expand All @@ -15,22 +25,51 @@
npm install @print-one/print-one-js
```

[npm-img]:https://img.shields.io/npm/v/@print-one/print-one-js
## Example

[npm-url]:https://www.npmjs.com/package/@print-one/print-one-js
```js
import { PrintOne } from '@print-one/print-one-js'

[build-img]:https://github.com/Print-one/print-one-js/actions/workflows/release.yml/badge.svg
const client = new PrintOne("<YOUR API TOKEN>");

[build-url]:https://github.com/Print-one/print-one-js/actions/workflows/release.yml
const templates = await client.getTemplates();
const template = templates[0];

[issues-img]:https://img.shields.io/github/issues/Print-one/print-one-js
const order = await client.createOrder({
recipient: {
name: "John Doe",
address: "Example Street 2",
city: "Anytown",
postalCode: "1234AB",
country: "NL",
},
template: template,
// All other options are optional
sender: {
name: "Jane Doe",
address: "Example Street 1",
addressLine2: "Apt 1",
city: "Anytown",
postalCode: "1234AB",
country: "NL",
},
finish: Finish.GLOSSY,
mergeVariables: {
couponCode: "ABC123"
},
billingId: "8073",
sendDate: "2021-01-01",
});

[issues-url]:https://github.com/ryansonshine/Print-one/print-one-js/issues
const download = await order.download();

[semantic-release-img]:https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
fs.writeFileSync("order.pdf", download);
```

[semantic-release-url]:https://github.com/semantic-release/semantic-release
## Help

- For documentation and more examples, see the [documentation](https://github.com/Print-one/print-one-js/wiki).
- With problems, questions or suggestions, please file an [issue](https://github.com/Print-one/print-one-js/issues).
- For other questions, feel free to contact us at [our support page](https://printone.atlassian.net/servicedesk/customer/portals).

[typescript-img]:https://img.shields.io/github/languages/top/print-one/print-one-js?logo=typescript&logoColor=white

[typescript-url]:https://www.typescriptlang.org/
42 changes: 42 additions & 0 deletions docs/Company.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
Contains all information about a given Company

# Fields

| Name | Type | Description |
| ----------------------- | --------------------- | ------------------------------------------------- |
| `id` | `string` | The ID of the company. |
| `firstName` | `string` | The first name of the contact person. |
| `lastName` | `string` | The last name of the contact person. |
| `email` | `string` | The email address of the company. |
| `invoiceEmail` | `string` | The email address for invoices. |
| `financialContactName` | `string` | The name of the financial contact. |
| `finacialContactEmail` | `string` | The email address for financial contact. |
| `technicalContactName` | `string` | The name of the technical contact. |
| `technicalContactEmail` | `string` | The email address for technical contact. |
| `phoneNumber` | `string` | The phone number of the contact person. |
| `companyName` | `string` | The name of the company. |
| `street` | `string` | The street of the company. |
| `houseNumber` | `string` | The house number of the company. |
| `country` | `string` | The country of the company. |
| `postalCode` | `string` | The postal code of the company. |
| `city` | `string` | The city of the company. |
| `cocNumber` | `string` | The Chamber of Commerce number. |
| `vatNumber` | `string` | The VAT number of the company. |
| `iban` | `string` | The IBAN number of the company. |
| `createdAt` | `Date` | The date and time the company was created. |
| `updatedAt` | `Date` | The date and time the company was last updated. |
| `emailVerifiedAt` | `Date` \| `undefined` | The date and time the email address was verified. |

# Methods

## [`PrintOne.getSelf()`](./PrintOne#getself)

Get the company that the API key belongs to.

**Returns: [`Promise<Company>`](./Company)**

**Example**

```js
const company = await client.getSelf();
```
89 changes: 89 additions & 0 deletions docs/CustomFile.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
Contains information about CustomFiles and methods to download.

# Fields

| Name | Type | Description |
| --------------- | -------- | --------------------------------------------- |
| `id` | `string` | The ID of the CustomFile. |
| `fileName` | `string` | The name of the CustomFile. |
| `fileExtension` | `string` | The extension of the CustomFile. |
| `size` | `number` | The size of the CustomFile in bytes. |
| `createdAt` | `Date` | The date and time the CustomFile was created. |

# Methods

## `.download()`

Download the CustomFile.

**Returns: `Promise<ArrayBuffer>`**

**Example**

```js
const file = await customFile.download();
```

---

## `.delete()`

Delete the CustomFile.

**Returns: `Promise<void>`**

**Example**

```js
await customFile.delete();
```

---

## [`PrintOne.getCustomFiles([options])`](./PrintOne#getcustomfilesoptions)

Get all custom files.

**Parameters**

| Name | Type | Default | Description |
| ---------------- | ----------------------------- | ---------------- | --------------------------------------------------------------------------------------------------------- |
| `options.limit` | `number` | `10` | The maximum number of custom files to return. |
| `options.page` | `number` | `1` | The page of custom files to return. |
| `options.sortBy` | [`sort`](./Filtering#Sorting) | `createdAt:DESC` | The field(s) to sort the custom files by. Can be `createdAt`, `fileName`, `size`, `id` or `fileExtension` |

**Returns: [`Promise<CustomFile[]>`](./CustomFile)**

**Example**

```js
const customFiles = await client.getCustomFiles({
limit: 20,
page: 2,
sortBy: "fileName:ASC",
});
```

---

## [`PrintOne.uploadCustomFile(fileName, file)`](./PrintOne#uploadcustomfilefilename-file)

Upload a custom file. The file must be a image or font.

**Parameters**

| Name | Type | Description |
| ---------- | ------------- | -------------------------------------------- |
| `fileName` | `string` | The name of the file. |
| `file` | `ArrayBuffer` | The file to upload. Must be a image or font. |

**Returns: [`Promise<CustomFile>`](./CustomFile)**

**Example**

```js
import fs from "fs";

const data = fs.readFileSync("example.png").buffer;
const file = await client.uploadCustomFile("example.png", data);
```
Empty file added docs/Examples.md
Empty file.
Loading