feat: easily increment quantity (#473)

* fix vue version issue

* new patch API endpoint

* doc-gen

* new API class method for patch operations

* add quantity patch UI support

* fix typegen errors

* fix ts errors
This commit is contained in:
Hayden 2023-06-02 14:56:40 -07:00 committed by GitHub
parent 4dd036abb2
commit ef1531e561
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 353 additions and 163 deletions

View file

@ -4,6 +4,7 @@ import {
ItemAttachmentUpdate,
ItemCreate,
ItemOut,
ItemPatch,
ItemSummary,
ItemUpdate,
MaintenanceEntry,
@ -138,6 +139,20 @@ export class ItemsApi extends BaseAPI {
return payload;
}
async patch(id: string, item: ItemPatch) {
const resp = await this.http.patch<ItemPatch, ItemOut>({
url: route(`/items/${id}`),
body: this.dropFields(item),
});
if (!resp.data) {
return resp;
}
resp.data = parseDate(resp.data, ["purchaseTime", "soldTime", "warrantyExpires"]);
return resp;
}
import(file: File | Blob) {
const formData = new FormData();
formData.append("csv", file);

View file

@ -67,7 +67,7 @@ export interface ItemCreate {
* @maxLength 255
*/
name: string;
parentId: string | null;
parentId?: string | null;
}
export interface ItemField {
@ -94,13 +94,13 @@ export interface ItemOut {
/** Warranty */
lifetimeWarranty: boolean;
/** Edges */
location: LocationSummary | null;
location?: LocationSummary | null;
manufacturer: string;
modelNumber: string;
name: string;
/** Extras */
notes: string;
parent: ItemSummary | null;
parent?: ItemSummary | null;
purchaseFrom: string;
/** @example "0" */
purchasePrice: string;
@ -119,6 +119,11 @@ export interface ItemOut {
warrantyExpires: Date | string;
}
export interface ItemPatch {
id: string;
quantity?: number | null;
}
export interface ItemSummary {
archived: boolean;
createdAt: Date | string;
@ -127,7 +132,7 @@ export interface ItemSummary {
insured: boolean;
labels: LabelSummary[];
/** Edges */
location: LocationSummary | null;
location?: LocationSummary | null;
name: string;
/** @example "0" */
purchasePrice: string;
@ -152,7 +157,7 @@ export interface ItemUpdate {
name: string;
/** Extras */
notes: string;
parentId: string | null;
parentId?: string | null;
purchaseFrom: string;
/** @example "0" */
purchasePrice: string;
@ -203,7 +208,7 @@ export interface LabelSummary {
export interface LocationCreate {
description: string;
name: string;
parentId: string | null;
parentId?: string | null;
}
export interface LocationOut {
@ -238,7 +243,7 @@ export interface LocationUpdate {
description: string;
id: string;
name: string;
parentId: string | null;
parentId?: string | null;
}
export interface MaintenanceEntry {
@ -309,7 +314,7 @@ export interface NotifierUpdate {
* @maxLength 255
*/
name: string;
url: string | null;
url?: string | null;
}
export interface PaginationResultItemSummary {