diff --git a/API.delivery.md b/API.delivery.md index 80a47ff..d88d442 100644 --- a/API.delivery.md +++ b/API.delivery.md @@ -17,11 +17,11 @@ Creates a new delivery for the user's selected company with its lines. The deliv | `body.date` | `string` | The delivery date. | | `body.supplierId` | `number` | The id of the supplier. | | `[body.externalNumber]` | `string` | An external (supplier) reference number. | -| `[body.lines]` | `Array` | The delivery lines. | +| `[body.lines]` | `Array<{sku?: string, name?: string, pu?: number, amount: number, net: number, rebate?: number, tax: number, comment?: string|null}>` | The delivery lines. | **Returns** -`Promise<{id: number, number: string, type: string, entityId: number, externalNumber: string|null, date: string, lines: Array}>` — The created delivery. +`Promise<{id: number, number: string, type: string, entityId: number, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>` — The created delivery. **Throws** @@ -76,7 +76,7 @@ Returns a single delivery by its id within the user's selected company. **Returns** -`Promise<{id: number, number: string, type: string, entityId: number, externalNumber: string|null, date: string, lines: Array}>` — The delivery. +`Promise<{id: number, number: string, type: string, entityId: number, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>` — The delivery. **Throws** @@ -129,11 +129,11 @@ Updates a delivery's header and/or lines. | `[patch.date]` | `string` | The new delivery date. | | `[patch.supplierId]` | `number` | The new supplier id. | | `[patch.externalNumber]` | `string` | The new external (supplier) reference number. | -| `[patch.lines]` | `Array` | The new delivery lines. | +| `[patch.lines]` | `Array<{sku?: string, name?: string, pu?: number, amount: number, net: number, rebate?: number, tax: number, comment?: string|null}>` | The new delivery lines. | **Returns** -`Promise<{id: number, number: string, type: string, entityId: number, externalNumber: string|null, date: string, lines: Array}>` — The updated delivery. +`Promise<{id: number, number: string, type: string, entityId: number, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>` — The updated delivery. **Throws** diff --git a/API.entityaddress.md b/API.entityaddress.md index 2d42c29..ee90533 100644 --- a/API.entityaddress.md +++ b/API.entityaddress.md @@ -27,7 +27,7 @@ Creates a new address for an entity. **Returns** -`Promise` — The created address. +`Promise<{id: number, entityId: number, firstName: string|null, name: string|null, street: string|null, streetNumber: string|null, zip: string|null, city: string|null, county: string|null, addressType: string, sort: number}>` — The created address. **Throws** @@ -83,7 +83,7 @@ Lists the addresses of an entity. **Returns** -`Promise>` — The addresses. +`Promise>` — The addresses. **Example** @@ -106,10 +106,19 @@ Updates an address of an entity. | `entityId` | `number` | The id of the entity. | | `id` | `number` | The id of the address to update. | | `patch` | `object` | The update patch (any subset of address fields). | +| `[patch.addressType]` | `string` | The address type. | +| `[patch.firstName]` | `string` | The first name. | +| `[patch.name]` | `string` | The name. | +| `[patch.street]` | `string` | The street. | +| `[patch.streetNumber]` | `string` | The street number. | +| `[patch.zip]` | `string` | The zip code. | +| `[patch.city]` | `string` | The city. | +| `[patch.county]` | `string` | The county. | +| `[patch.sort]` | `number` | The sort order. | **Returns** -`Promise` — The updated address. +`Promise<{id: number, entityId: number, firstName: string|null, name: string|null, street: string|null, streetNumber: string|null, zip: string|null, city: string|null, county: string|null, addressType: string, sort: number}>` — The updated address. **Throws** diff --git a/API.manifestattachment.md b/API.manifestattachment.md index 4dfe7ac..8c81864 100644 --- a/API.manifestattachment.md +++ b/API.manifestattachment.md @@ -21,7 +21,7 @@ Attaches a file to an existing manifest. **Returns** -`Promise` — The created attachment record. +`Promise<{id: number, manifestId: number, fileId: number, mimetype: string, name: string}>` — The created attachment record. **Throws** @@ -54,7 +54,7 @@ Gets an attachment for a manifest by its attachment ID or file ID, including ful **Returns** -`Promise` — The attachment record with binary content. +`Promise<{id: number, manifestId: number, fileId: number, mimetype: string, name: string, content: Buffer}>` — The attachment record with binary content. **Throws** @@ -82,7 +82,7 @@ Lists all attachments for a given manifest, without loading their full binary co **Returns** -`Promise>` — A list of attachment metadata objects. +`Promise>` — A list of attachment metadata objects. **Throws** diff --git a/API.md b/API.md index 31ee2f0..c46cc3c 100644 --- a/API.md +++ b/API.md @@ -11,41 +11,41 @@ The store is exposed as a `LibDashStore` instance (see `src/index.js`). Each met - `delete(id: number): Promise` - `getByEmail(email: string): Promise>` - [company](API.company.md) - - `create(input: object): Promise<{id: number, rootCategoryId: number, languageId: number, taxrateId: number, reducedtaxrateId: number, taxfreerateId: number, posCustomerGroupId: number}>` + - `create(input: {iso639: string, name: string, taxrate: number, reducedtaxrate: number, googleAuthId: number}): Promise<{id: number, rootCategoryId: number, languageId: number, taxrateId: number, reducedtaxrateId: number, taxfreerateId: number, posCustomerGroupId: number}>` - `delete(companyId: number): Promise` - `getById(id: number, tx?: object): Promise` - `getByName(name: string, tx?: object): Promise` - `list(googleAuthId: number): Promise>` - - `update(id: number, input: object): Promise<{id: number, rootCategoryId: number, languageId: number, taxrateId: number, reducedtaxrateId: number, taxfreerateId: number}>` + - `update(id: number, input: {iso639: string, name: string, taxrate: number, reducedtaxrate: number}): Promise<{id: number, rootCategoryId: number, languageId: number, taxrateId: number, reducedtaxrateId: number, taxfreerateId: number}>` - [category](API.category.md) - `addImage(googleAuthId: number, categoryId: number, image: Buffer): Promise<{id: number, fullHash: string, thumbW: number, thumbH: number, thumbHash: string}>` - - `createUnderParent(input: object): Promise<{id: number, parentId: number, sort: number, name: string, slug: string}>` - - `delete(input: object): Promise` + - `createUnderParent(input: {googleAuthId: number, parentId: number, name: string}): Promise<{id: number, parentId: number, sort: number, name: string, slug: string}>` + - `delete(input: {googleAuthId: number, id: number}): Promise` - `deleteImage(googleAuthId: number, categoryId: number): Promise<{id: number, thumbW: null, thumbH: null, thumbHash: null}>` - - `ensureByPath(input: object, tx?: object): Promise` + - `ensureByPath(input: {googleAuthId: number, parentId: number, path: string}, tx?: object): Promise` - `getCategoryArticles(googleAuthId: number, categoryId: number): Promise>` - `getTreeForCompany(googleAuthId: number): Promise<{languageId: number, tree: Array, articles: Array}>` - - `move(input: object): Promise<{id: number, parentId: number, sort: number}>` - - `order(input: object): Promise<{categoryIds: Array}>` - - `rename(input: object): Promise<{id: number, name: string, slug: string}>` + - `move(input: {googleAuthId: number, id: number, parentId: number}): Promise<{id: number, parentId: number, sort: number}>` + - `order(input: {googleAuthId: number, parentId: number, categoryIds: Array}): Promise<{categoryIds: Array}>` + - `rename(input: {googleAuthId: number, id: number, name: string}): Promise<{id: number, name: string, slug: string}>` - [article](API.article.md) - `addImage(googleAuthId: number, sku: string, image: Buffer): Promise<{picId: number, sort: number, full: {w: number, h: number, size: number}, thumb: {w: number, h: number}, fullHash: string, thumbHash: string}>` - - `createUnderParent(input: object): Promise<{id: number, parentId: number, name: string, sku: string}>` + - `createUnderParent(input: {googleAuthId: number, parentId: number, name: string}): Promise<{id: number, parentId: number, name: string, sku: string}>` - `delete(googleAuthId: number, sku: string): Promise` - `deleteImage(googleAuthId: number, sku: string, fullHash: string): Promise` - `getBySku(googleAuthId: number, sku: string): Promise<{article: object}>` - `getHistoryBySku(googleAuthId: number, sku: string): Promise>` - - `importRows(input: object): Promise<{imported: Array, skipped: Array, errors: Array}>` + - `importRows(input: {googleAuthId: number, rows: Array}): Promise<{imported: Array, skipped: Array, errors: Array}>` - `listExport(googleAuthId: number, categoryId?: number|null): Promise>` - `listSearchIndex(googleAuthId: number): Promise, categoryIds: Array}>>` - - `orderImages(googleAuthId: number, sku: string, input: object): Promise<{fullHashes: Array}>` + - `orderImages(googleAuthId: number, sku: string, input: {fullHashes: Array}): Promise<{fullHashes: Array}>` - `setBrandIdBySku(googleAuthId: number, sku: string, brandId: number|null): Promise` - `setCategoryIdsBySku(googleAuthId: number, sku: string, categoryIds: Array): Promise` - `setEansBySku(googleAuthId: number, sku: string, eans: Array): Promise` - `setFatherBySku(googleAuthId: number, sku: string, fatherSku: string|null): Promise` - `setPricesBySku(googleAuthId: number, sku: string, prices: Array<{price: number, tax: number, minmultiplier?: number}>): Promise` - `setWeightBySku(googleAuthId: number, sku: string, weight: number): Promise` - - `updateBySku(googleAuthId: number, sku: string, patch: object): Promise` + - `updateBySku(googleAuthId: number, sku: string, patch: {name?: string, unitSi?: string, unitamount?: number}): Promise` - [lang](API.lang.md) - `create(iso639: string, tx?: object): Promise` - `delete(id: number): Promise` @@ -60,66 +60,66 @@ The store is exposed as a `LibDashStore` instance (see `src/index.js`). Each met - [unit](API.unit.md) - `delete(googleAuthId: number, si: string): Promise` - `list(googleAuthId: number): Promise>` - - `upsert(googleAuthId: number, input: object): Promise<{id: number, si: string, basesi: string, basesifactor: number, symbol: string, name: string}>` + - `upsert(googleAuthId: number, input: {si: string, basesi: string, basesifactor: number, symbol: string, name: string}): Promise<{id: number, si: string, basesi: string, basesifactor: number, symbol: string, name: string}>` - [companysetting](API.companysetting.md) - - `get(googleAuthId: number, key: string, options?: object): Promise<{key: string, value: string, frontend: boolean, writeonly: boolean}|undefined>` - - `list(googleAuthId: number, options?: object): Promise>` - - `set(googleAuthId: number, input: object): Promise<{key: string, value: string, frontend: boolean, writeonly: boolean}>` + - `get(googleAuthId: number, key: string, options?: {frontendOnly?: boolean, maskWriteonly?: boolean}): Promise<{key: string, value: string, frontend: boolean, writeonly: boolean}|undefined>` + - `list(googleAuthId: number, options?: {frontendOnly?: boolean, maskWriteonly?: boolean}): Promise>` + - `set(googleAuthId: number, input: {key: string, value: string, frontend?: boolean, writeonly?: boolean}): Promise<{key: string, value: string, frontend: boolean, writeonly: boolean}>` - [brand](API.brand.md) - `delete(googleAuthId: number, id: number): Promise` - `list(googleAuthId: number): Promise>` - - `upsert(googleAuthId: number, input: object): Promise<{id: number, name: string, gsprpinfo: string|null}>` + - `upsert(googleAuthId: number, input: {name: string, gsprpinfo?: string}): Promise<{id: number, name: string, gsprpinfo: string|null}>` - [customergroup](API.customergroup.md) - - `create(googleAuthId: number, input: object): Promise<{id: number, name: string, sort: number}>` + - `create(googleAuthId: number, input: {name: string}): Promise<{id: number, name: string, sort: number}>` - `delete(googleAuthId: number, id: number): Promise` - `list(googleAuthId: number): Promise>` - - `order(googleAuthId: number, input: object): Promise<{customergroupIds: Array}>` - - `update(googleAuthId: number, id: number, input: object): Promise<{id: number, name: string, sort: number}>` + - `order(googleAuthId: number, input: {customergroupIds: Array}): Promise<{customergroupIds: Array}>` + - `update(googleAuthId: number, id: number, input: {name: string}): Promise<{id: number, name: string, sort: number}>` - [entity](API.entity.md) - - `create(googleAuthId: number, input: object): Promise<{id: number, customergroupId: number, firstName: string|null, name: string, number: string, createdAt: string, updatedAt: string}>` + - `create(googleAuthId: number, input: {customergroupId: number, name: string, firstName?: string, number?: string}): Promise<{id: number, customergroupId: number, firstName: string|null, name: string, number: string, createdAt: string, updatedAt: string}>` - `delete(googleAuthId: number, id: number): Promise` - `getById(googleAuthId: number, id: number): Promise<{id: number, customergroupId: number, firstName: string|null, name: string, number: string, createdAt: string, updatedAt: string}>` - - `isNumberFree(googleAuthId: number, number: string, options?: object): Promise` - - `list(googleAuthId: number, options?: object): Promise>` + - `isNumberFree(googleAuthId: number, number: string, options?: {excludeEntityId?: number}): Promise` + - `list(googleAuthId: number, options?: {customergroupId?: number, role?: string}): Promise>` - `peekNextNumber(googleAuthId: number): Promise` - - `update(googleAuthId: number, id: number, patch: object): Promise<{id: number, customergroupId: number, firstName: string|null, name: string, number: string, createdAt: string, updatedAt: string}>` + - `update(googleAuthId: number, id: number, patch: {name?: string, firstName?: string, number?: string}): Promise<{id: number, customergroupId: number, firstName: string|null, name: string, number: string, createdAt: string, updatedAt: string}>` - [entityaddress](API.entityaddress.md) - - `create(googleAuthId: number, entityId: number, input: object): Promise` + - `create(googleAuthId: number, entityId: number, input: {addressType: string, firstName?: string, name?: string, street?: string, streetNumber?: string, zip?: string, city?: string, county?: string, sort?: number}): Promise<{id: number, entityId: number, firstName: string|null, name: string|null, street: string|null, streetNumber: string|null, zip: string|null, city: string|null, county: string|null, addressType: string, sort: number}>` - `delete(googleAuthId: number, entityId: number, id: number): Promise` - - `list(googleAuthId: number, entityId: number): Promise>` - - `update(googleAuthId: number, entityId: number, id: number, patch: object): Promise` + - `list(googleAuthId: number, entityId: number): Promise>` + - `update(googleAuthId: number, entityId: number, id: number, patch: {addressType?: string, firstName?: string, name?: string, street?: string, streetNumber?: string, zip?: string, city?: string, county?: string, sort?: number}): Promise<{id: number, entityId: number, firstName: string|null, name: string|null, street: string|null, streetNumber: string|null, zip: string|null, city: string|null, county: string|null, addressType: string, sort: number}>` - [entitycontact](API.entitycontact.md) - - `create(googleAuthId: number, entityId: number, input: object): Promise<{id: number, entityId: number, contactType: string, contact: string, sort: number}>` + - `create(googleAuthId: number, entityId: number, input: {contactType: string, contact: string, sort?: number}): Promise<{id: number, entityId: number, contactType: string, contact: string, sort: number}>` - `delete(googleAuthId: number, entityId: number, id: number): Promise` - `list(googleAuthId: number, entityId: number): Promise>` - `update(googleAuthId: number, entityId: number, id: number, patch: object): Promise<{id: number, entityId: number, contactType: string, contact: string, sort: number}>` - [supplier](API.supplier.md) - - `create(googleAuthId: number, input: object): Promise<{id: number, name: string, createdAt: string, updatedAt: string}>` + - `create(googleAuthId: number, input: {name: string}): Promise<{id: number, name: string, createdAt: string, updatedAt: string}>` - `delete(googleAuthId: number, id: number): Promise` - `list(googleAuthId: number): Promise>` - - `update(googleAuthId: number, id: number, input: object): Promise<{id: number, name: string, createdAt: string, updatedAt: string}>` + - `update(googleAuthId: number, id: number, input: {name: string}): Promise<{id: number, name: string, createdAt: string, updatedAt: string}>` - [delivery](API.delivery.md) - - `create(googleAuthId: number, body: object): Promise<{id: number, number: string, type: string, entityId: number, externalNumber: string|null, date: string, lines: Array}>` + - `create(googleAuthId: number, body: {date: string, supplierId: number, externalNumber?: string, lines?: Array<{sku?: string, name?: string, pu?: number, amount: number, net: number, rebate?: number, tax: number, comment?: string|null}>}): Promise<{id: number, number: string, type: string, entityId: number, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>` - `delete(googleAuthId: number, id: number): Promise` - - `getById(googleAuthId: number, id: number): Promise<{id: number, number: string, type: string, entityId: number, externalNumber: string|null, date: string, lines: Array}>` + - `getById(googleAuthId: number, id: number): Promise<{id: number, number: string, type: string, entityId: number, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>` - `list(googleAuthId: number): Promise>` - - `update(googleAuthId: number, id: number, patch: object): Promise<{id: number, number: string, type: string, entityId: number, externalNumber: string|null, date: string, lines: Array}>` + - `update(googleAuthId: number, id: number, patch: {number?: string, date?: string, supplierId?: number, externalNumber?: string, lines?: Array<{sku?: string, name?: string, pu?: number, amount: number, net: number, rebate?: number, tax: number, comment?: string|null}>}): Promise<{id: number, number: string, type: string, entityId: number, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>` - [quote](API.quote.md) - - `create(googleAuthId: number, body: object): Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array}>` + - `create(googleAuthId: number, body: {number: string, date: string, entityId?: number, externalNumber?: string, lines?: Array<{sku?: string, name?: string, pu?: number, amount: number, net: number, rebate?: number, tax: number, comment?: string|null}>}): Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>` - `delete(googleAuthId: number, id: number): Promise` - - `getById(googleAuthId: number, id: number): Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array}>` + - `getById(googleAuthId: number, id: number): Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>` - `list(googleAuthId: number): Promise>` - - `update(googleAuthId: number, id: number, patch: object): Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array}>` + - `update(googleAuthId: number, id: number, patch: {number?: string, date?: string, entityId?: number, externalNumber?: string, lines?: Array<{sku?: string, name?: string, pu?: number, amount: number, net: number, rebate?: number, tax: number, comment?: string|null}>}): Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>` - [order](API.order.md) - - `create(googleAuthId: number, body: object): Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array}>` + - `create(googleAuthId: number, body: {number: string, date: string, entityId?: number, externalNumber?: string, lines?: Array<{sku?: string, name?: string, pu?: number, amount: number, net: number, rebate?: number, tax: number, comment?: string|null}>}): Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>` - `delete(googleAuthId: number, id: number): Promise` - - `getById(googleAuthId: number, id: number): Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array}>` + - `getById(googleAuthId: number, id: number): Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>` - `list(googleAuthId: number): Promise>` - - `update(googleAuthId: number, id: number, patch: object): Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array}>` + - `update(googleAuthId: number, id: number, patch: {number?: string, date?: string, entityId?: number, externalNumber?: string, lines?: Array<{sku?: string, name?: string, pu?: number, amount: number, net: number, rebate?: number, tax: number, comment?: string|null}>}): Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>` - [manifestattachment](API.manifestattachment.md) - - `add(googleAuthId: number, manifestId: number, input: object): Promise` - - `getById(googleAuthId: number, manifestId: number, id: number): Promise` - - `listByManifestId(googleAuthId: number, manifestId: number): Promise>` + - `add(googleAuthId: number, manifestId: number, input: {mimetype: string, name: string, content: Buffer}): Promise<{id: number, manifestId: number, fileId: number, mimetype: string, name: string}>` + - `getById(googleAuthId: number, manifestId: number, id: number): Promise<{id: number, manifestId: number, fileId: number, mimetype: string, name: string, content: Buffer}>` + - `listByManifestId(googleAuthId: number, manifestId: number): Promise>` - `remove(googleAuthId: number, manifestId: number, id: number): Promise` - [posterminal](API.posterminal.md) - `delete(googleAuthId: number, id: number): Promise` @@ -128,18 +128,18 @@ The store is exposed as a `LibDashStore` instance (see `src/index.js`). Each met - `setOffAll(googleAuthId: number, posterminalId: number): Promise<{id: number, categoryIds: Array}>` - `setOn(googleAuthId: number, posterminalId: number, categoryId: number): Promise<{id: number, categoryIds: Array}>` - `setOnAll(googleAuthId: number, posterminalId: number): Promise<{id: number, categoryIds: Array}>` - - `upsert(googleAuthId: number, input: object): Promise<{id: number, name: string, token: string, pairingpin: string}>` + - `upsert(googleAuthId: number, input: {name: string, pairingpin: string, token?: string, id?: number}): Promise<{id: number, name: string, token: string, pairingpin: string}>` - [google_auth](API.google_auth.md) - `add(email: string): Promise` - `getByEmail(email: string): Promise` - `getById(googleAuthId: number): Promise` - `listAllowedEmails(): Promise>` - `removeAllowedEmail(email: string): Promise` - - `setProfile(googleAuthId: number, input: object): Promise` + - `setProfile(googleAuthId: number, input: {picture?: string, pictureBinary?: Buffer, sub?: string}): Promise` - `setSelectedCompany(googleAuthId: number, companyId: number): Promise` - [pic](API.pic.md) - `getImageByHash(googleAuthId: number, fullHash: string): Promise<{buffer: Buffer, w: number, h: number, size: number, contentType: string}>` - `getThumbByHash(googleAuthId: number, fullHash: string): Promise<{buffer: Buffer, w: number, h: number, contentType: string}>` - [numbers](API.numbers.md) - `list(googleAuthId: number): Promise>` - - `update(googleAuthId: number, id: number, input: object): Promise<{id: number, type: string, prefix: string, padding: number, next: number}>` + - `update(googleAuthId: number, id: number, input: {prefix?: string, padding?: number, next?: number}): Promise<{id: number, type: string, prefix: string, padding: number, next: number}>` diff --git a/API.order.md b/API.order.md index 537f20c..07444ee 100644 --- a/API.order.md +++ b/API.order.md @@ -18,11 +18,11 @@ Creates a new order for the user's selected company with its lines. | `body.date` | `string` | The order date. | | `[body.entityId]` | `number` | The id of the customer entity. | | `[body.externalNumber]` | `string` | An external (customer) reference number. | -| `[body.lines]` | `Array` | The order lines. | +| `[body.lines]` | `Array<{sku?: string, name?: string, pu?: number, amount: number, net: number, rebate?: number, tax: number, comment?: string|null}>` | The order lines. | **Returns** -`Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array}>` — The created order. +`Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>` — The created order. **Throws** @@ -77,7 +77,7 @@ Returns a single order by its id within the user's selected company. **Returns** -`Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array}>` — The order with its lines. +`Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>` — The order with its lines. **Throws** @@ -130,11 +130,11 @@ Updates an order's header and/or lines. | `[patch.date]` | `string` | The new order date. | | `[patch.entityId]` | `number` | The new customer entity id. | | `[patch.externalNumber]` | `string` | The new external (customer) reference number. | -| `[patch.lines]` | `Array` | The new order lines. | +| `[patch.lines]` | `Array<{sku?: string, name?: string, pu?: number, amount: number, net: number, rebate?: number, tax: number, comment?: string|null}>` | The new order lines. | **Returns** -`Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array}>` — The updated order. +`Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>` — The updated order. **Throws** diff --git a/API.quote.md b/API.quote.md index ec8b210..6a89068 100644 --- a/API.quote.md +++ b/API.quote.md @@ -18,11 +18,11 @@ Creates a new quote for the user's selected company with its lines. | `body.date` | `string` | The quote date. | | `[body.entityId]` | `number` | The id of the customer entity. | | `[body.externalNumber]` | `string` | An external (customer) reference number. | -| `[body.lines]` | `Array` | The quote lines. | +| `[body.lines]` | `Array<{sku?: string, name?: string, pu?: number, amount: number, net: number, rebate?: number, tax: number, comment?: string|null}>` | The quote lines. | **Returns** -`Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array}>` — The created quote. +`Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>` — The created quote. **Throws** @@ -77,7 +77,7 @@ Returns a single quote by its id within the user's selected company. **Returns** -`Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array}>` — The quote with its lines. +`Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>` — The quote with its lines. **Throws** @@ -130,11 +130,11 @@ Updates a quote's header and/or lines. | `[patch.date]` | `string` | The new quote date. | | `[patch.entityId]` | `number` | The new customer entity id. | | `[patch.externalNumber]` | `string` | The new external (customer) reference number. | -| `[patch.lines]` | `Array` | The new quote lines. | +| `[patch.lines]` | `Array<{sku?: string, name?: string, pu?: number, amount: number, net: number, rebate?: number, tax: number, comment?: string|null}>` | The new quote lines. | **Returns** -`Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array}>` — The updated quote. +`Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>` — The updated quote. **Throws** diff --git a/generate-api-doc.js b/generate-api-doc.js index 2ce10c7..de3f850 100644 --- a/generate-api-doc.js +++ b/generate-api-doc.js @@ -255,14 +255,35 @@ function renderSection(moduleName, entries) { return lines.join('\n'); } +function formatParamType(param, allParams) { + const cleanName = param.name.replace(/^\[|\]$/g, '').split('=')[0].trim(); + const prefix = cleanName + '.'; + const childParams = allParams.filter((p) => { + const pClean = p.name.replace(/^\[|\]$/g, '').split('=')[0].trim(); + return pClean.startsWith(prefix) && !pClean.slice(prefix.length).includes('.'); + }); + + if (childParams.length > 0) { + const props = childParams.map((cp) => { + const isOpt = cp.name.startsWith('['); + const propName = cp.name.replace(/^\[|\]$/g, '').split('=')[0].trim().slice(prefix.length); + const propType = formatParamType(cp, allParams); + return `${propName}${isOpt ? '?' : ''}: ${propType}`; + }); + return `{${props.join(', ')}}`; + } + + return param.type || 'any'; +} + function formatMethodSignature(entry) { const topLevelParams = (entry.params || []).filter((p) => !p.name.includes('.')); const paramsStr = topLevelParams .map((p) => { const isOptional = p.name.startsWith('['); const cleanName = p.name.replace(/^\[|\]$/g, '').split('=')[0].trim(); - const typeStr = p.type ? `: ${p.type}` : ''; - return `${cleanName}${isOptional ? '?' : ''}${typeStr}`; + const typeStr = formatParamType(p, entry.params || []); + return `${cleanName}${isOptional ? '?' : ''}: ${typeStr}`; }) .join(', '); diff --git a/src/store/delivery/create.js b/src/store/delivery/create.js index 510a87c..82f5f17 100644 --- a/src/store/delivery/create.js +++ b/src/store/delivery/create.js @@ -22,8 +22,8 @@ export default function create(pool) { * @param {string} body.date - The delivery date. * @param {number} body.supplierId - The id of the supplier. * @param {string} [body.externalNumber] - An external (supplier) reference number. - * @param {Array} [body.lines] - The delivery lines. - * @returns {Promise<{id: number, number: string, type: string, entityId: number, externalNumber: string|null, date: string, lines: Array}>} The created delivery. + * @param {Array<{sku?: string, name?: string, pu?: number, amount: number, net: number, rebate?: number, tax: number, comment?: string|null}>} [body.lines] - The delivery lines. + * @returns {Promise<{id: number, number: string, type: string, entityId: number, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>} The created delivery. * @throws {Error} If the delivery is invalid. * * @example diff --git a/src/store/delivery/getById.js b/src/store/delivery/getById.js index bfaebc3..97655a5 100644 --- a/src/store/delivery/getById.js +++ b/src/store/delivery/getById.js @@ -9,7 +9,7 @@ export default function getById(pool) { * * @param {number} googleAuthId - The id of the Google auth user. * @param {number} id - The id of the delivery. - * @returns {Promise<{id: number, number: string, type: string, entityId: number, externalNumber: string|null, date: string, lines: Array}>} The delivery. + * @returns {Promise<{id: number, number: string, type: string, entityId: number, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>} The delivery. * @throws {Error} If the delivery is not found. * * @example diff --git a/src/store/delivery/update.js b/src/store/delivery/update.js index 85a3a94..a266940 100644 --- a/src/store/delivery/update.js +++ b/src/store/delivery/update.js @@ -25,8 +25,8 @@ export default function update(pool) { * @param {string} [patch.date] - The new delivery date. * @param {number} [patch.supplierId] - The new supplier id. * @param {string} [patch.externalNumber] - The new external (supplier) reference number. - * @param {Array} [patch.lines] - The new delivery lines. - * @returns {Promise<{id: number, number: string, type: string, entityId: number, externalNumber: string|null, date: string, lines: Array}>} The updated delivery. + * @param {Array<{sku?: string, name?: string, pu?: number, amount: number, net: number, rebate?: number, tax: number, comment?: string|null}>} [patch.lines] - The new delivery lines. + * @returns {Promise<{id: number, number: string, type: string, entityId: number, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>} The updated delivery. * @throws {Error} If the delivery is not found. * * @example diff --git a/src/store/entityaddress/create.js b/src/store/entityaddress/create.js index f80b629..bf61b19 100644 --- a/src/store/entityaddress/create.js +++ b/src/store/entityaddress/create.js @@ -43,7 +43,7 @@ export default function create(pool) { * @param {string} [input.city] - The city. * @param {string} [input.county] - The county. * @param {number} [input.sort] - Optional sort order. - * @returns {Promise} The created address. + * @returns {Promise<{id: number, entityId: number, firstName: string|null, name: string|null, street: string|null, streetNumber: string|null, zip: string|null, city: string|null, county: string|null, addressType: string, sort: number}>} The created address. * @throws {Error} If the address type is missing. * * @example diff --git a/src/store/entityaddress/list.js b/src/store/entityaddress/list.js index 7b54aa5..c7fd471 100644 --- a/src/store/entityaddress/list.js +++ b/src/store/entityaddress/list.js @@ -27,7 +27,7 @@ export default function list(pool) { * * @param {number} googleAuthId - The id of the Google auth user. * @param {number} entityId - The id of the entity. - * @returns {Promise>} The addresses. + * @returns {Promise>} The addresses. * * @example * const addresses = await store.entityaddress.list(42, 5); diff --git a/src/store/entityaddress/update.js b/src/store/entityaddress/update.js index 1979a91..f8f5cdc 100644 --- a/src/store/entityaddress/update.js +++ b/src/store/entityaddress/update.js @@ -35,7 +35,16 @@ export default function update(pool) { * @param {number} entityId - The id of the entity. * @param {number} id - The id of the address to update. * @param {object} patch - The update patch (any subset of address fields). - * @returns {Promise} The updated address. + * @param {string} [patch.addressType] - The address type. + * @param {string} [patch.firstName] - The first name. + * @param {string} [patch.name] - The name. + * @param {string} [patch.street] - The street. + * @param {string} [patch.streetNumber] - The street number. + * @param {string} [patch.zip] - The zip code. + * @param {string} [patch.city] - The city. + * @param {string} [patch.county] - The county. + * @param {number} [patch.sort] - The sort order. + * @returns {Promise<{id: number, entityId: number, firstName: string|null, name: string|null, street: string|null, streetNumber: string|null, zip: string|null, city: string|null, county: string|null, addressType: string, sort: number}>} The updated address. * @throws {Error} If the address is not found. * * @example diff --git a/src/store/manifestattachment/add.js b/src/store/manifestattachment/add.js index f43db10..88b76ee 100644 --- a/src/store/manifestattachment/add.js +++ b/src/store/manifestattachment/add.js @@ -16,7 +16,7 @@ export default function add(pool) { * @param {string} input.mimetype - The MIME type of the file (e.g. `'application/pdf'`). * @param {string} input.name - The file name. * @param {Buffer} input.content - The file content. - * @returns {Promise} The created attachment record. + * @returns {Promise<{id: number, manifestId: number, fileId: number, mimetype: string, name: string}>} The created attachment record. * @throws {Error} If the manifest is not found or file input is invalid. * * @example diff --git a/src/store/manifestattachment/getById.js b/src/store/manifestattachment/getById.js index a020fc6..635ad8d 100644 --- a/src/store/manifestattachment/getById.js +++ b/src/store/manifestattachment/getById.js @@ -13,7 +13,7 @@ export default function getById(pool) { * @param {number} googleAuthId - The id of the Google auth user. * @param {number} manifestId - The manifest ID. * @param {number} id - The attachment ID or file ID. - * @returns {Promise} The attachment record with binary content. + * @returns {Promise<{id: number, manifestId: number, fileId: number, mimetype: string, name: string, content: Buffer}>} The attachment record with binary content. * @throws {Error} If the manifest or attachment is not found, or user is not authorized. * * @example diff --git a/src/store/manifestattachment/listByManifestId.js b/src/store/manifestattachment/listByManifestId.js index a23404d..a9cfd44 100644 --- a/src/store/manifestattachment/listByManifestId.js +++ b/src/store/manifestattachment/listByManifestId.js @@ -23,7 +23,7 @@ export default function listByManifestId(pool) { * * @param {number} googleAuthId - The id of the Google auth user. * @param {number} manifestId - The manifest ID. - * @returns {Promise>} A list of attachment metadata objects. + * @returns {Promise>} A list of attachment metadata objects. * @throws {Error} If the manifest is not found or the user is not authorized. * * @example diff --git a/src/store/order/create.js b/src/store/order/create.js index 86da525..99edb66 100644 --- a/src/store/order/create.js +++ b/src/store/order/create.js @@ -18,8 +18,8 @@ export default function create(pool) { * @param {string} body.date - The order date. * @param {number} [body.entityId] - The id of the customer entity. * @param {string} [body.externalNumber] - An external (customer) reference number. - * @param {Array} [body.lines] - The order lines. - * @returns {Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array}>} The created order. + * @param {Array<{sku?: string, name?: string, pu?: number, amount: number, net: number, rebate?: number, tax: number, comment?: string|null}>} [body.lines] - The order lines. + * @returns {Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>} The created order. * @throws {Error} If the order is invalid. * * @example diff --git a/src/store/order/getById.js b/src/store/order/getById.js index f1d3e36..f9c387f 100644 --- a/src/store/order/getById.js +++ b/src/store/order/getById.js @@ -10,7 +10,7 @@ export default function getById(pool) { * * @param {number} googleAuthId - The id of the Google auth user. * @param {number} id - The id of the order. - * @returns {Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array}>} The order with its lines. + * @returns {Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>} The order with its lines. * @throws {Error} If the order is not found. * * @example diff --git a/src/store/order/update.js b/src/store/order/update.js index 347e9ec..5329ebc 100644 --- a/src/store/order/update.js +++ b/src/store/order/update.js @@ -24,8 +24,8 @@ export default function update(pool) { * @param {string} [patch.date] - The new order date. * @param {number} [patch.entityId] - The new customer entity id. * @param {string} [patch.externalNumber] - The new external (customer) reference number. - * @param {Array} [patch.lines] - The new order lines. - * @returns {Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array}>} The updated order. + * @param {Array<{sku?: string, name?: string, pu?: number, amount: number, net: number, rebate?: number, tax: number, comment?: string|null}>} [patch.lines] - The new order lines. + * @returns {Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>} The updated order. * @throws {Error} If the order is not found. * * @example diff --git a/src/store/quote/create.js b/src/store/quote/create.js index d3f12f1..8786ec7 100644 --- a/src/store/quote/create.js +++ b/src/store/quote/create.js @@ -18,8 +18,8 @@ export default function create(pool) { * @param {string} body.date - The quote date. * @param {number} [body.entityId] - The id of the customer entity. * @param {string} [body.externalNumber] - An external (customer) reference number. - * @param {Array} [body.lines] - The quote lines. - * @returns {Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array}>} The created quote. + * @param {Array<{sku?: string, name?: string, pu?: number, amount: number, net: number, rebate?: number, tax: number, comment?: string|null}>} [body.lines] - The quote lines. + * @returns {Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>} The created quote. * @throws {Error} If the quote is invalid. * * @example diff --git a/src/store/quote/getById.js b/src/store/quote/getById.js index 6f1d1eb..ab6562f 100644 --- a/src/store/quote/getById.js +++ b/src/store/quote/getById.js @@ -10,7 +10,7 @@ export default function getById(pool) { * * @param {number} googleAuthId - The id of the Google auth user. * @param {number} id - The id of the quote. - * @returns {Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array}>} The quote with its lines. + * @returns {Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>} The quote with its lines. * @throws {Error} If the quote is not found. * * @example diff --git a/src/store/quote/update.js b/src/store/quote/update.js index f799945..a1d0eb4 100644 --- a/src/store/quote/update.js +++ b/src/store/quote/update.js @@ -24,8 +24,8 @@ export default function update(pool) { * @param {string} [patch.date] - The new quote date. * @param {number} [patch.entityId] - The new customer entity id. * @param {string} [patch.externalNumber] - The new external (customer) reference number. - * @param {Array} [patch.lines] - The new quote lines. - * @returns {Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array}>} The updated quote. + * @param {Array<{sku?: string, name?: string, pu?: number, amount: number, net: number, rebate?: number, tax: number, comment?: string|null}>} [patch.lines] - The new quote lines. + * @returns {Promise<{id: number, number: string, type: string, entityId: number|null, externalNumber: string|null, date: string, lines: Array<{id: number, sku: string|null, name: string|null, pu: number, amount: number, net: number, rebate: number, tax: number, comment: string|null}>}>} The updated quote. * @throws {Error} If the quote is not found. * * @example