{"version":3,"sources":["../src/UberDirectOrganization.ts"],"sourcesContent":["import { UberDirectAuth } from './UberDirectAuth'\nimport { UberDirectTypeProtectErrorHandling } from './UberDirectTypeProtect'\nimport { UberDirectLogger } from './UberDirectLogger'\nimport {\n    CreateDirectOrgRequest,\n    CreateDirectOrgResponse,\n    createDirectOrgResponseSchema,\n    DirectOrganizationDetailsResponse,\n    directOrganizationDetailsResponseSchema,\n    InviteNewUserRequestBody,\n    ResponseInviteNewUser,\n    responseInviteNewUserSchema,\n} from './types/OrganizationTypes'\nimport { ZodError } from 'zod'\n\n/**\n * UberDirect Direct DaaS API Client\n * Delivery as a Service (DaaS) is a service that allows you to create deliveries between two addresses.\n */\nexport class UberDirectOrganization extends UberDirectTypeProtectErrorHandling {\n    constructor(private readonly auth: UberDirectAuth, private readonly logger = new UberDirectLogger()) {\n        super()\n    }\n\n    async getOrganizationDetails(organizationId: string): Promise<DirectOrganizationDetailsResponse> {\n        const url = `direct/organizations/${ organizationId }`\n        const response = await this.auth.makeApiRequest<DirectOrganizationDetailsResponse>('get', url, undefined, this.logger)\n        try {\n            directOrganizationDetailsResponseSchema.parse(response)\n        } catch (e) {\n            this.throw(e as ZodError)\n        }\n        return response\n    }\n\n    async createOrganization(organization: CreateDirectOrgRequest): Promise<CreateDirectOrgResponse> {\n        const url = 'direct/organizations'\n        const response = await this.auth.makeApiRequest<CreateDirectOrgResponse>('post', url, organization, this.logger)\n        try {\n            createDirectOrgResponseSchema.parse(response)\n        } catch (e) {\n            this.throw(e as ZodError)\n        }\n        return response\n    }\n\n    async inviteNewUser(newUser: InviteNewUserRequestBody, organizationId: string): Promise<ResponseInviteNewUser> {\n        const url = `direct/organizations/${ organizationId }/memberships/invite`\n        const response = await this.auth.makeApiRequest<ResponseInviteNewUser>('post', url, newUser, this.logger)\n        try {\n            responseInviteNewUserSchema.parse(response)\n        } catch (e) {\n            this.throw(e as ZodError)\n        }\n        return response\n    }\n}\n"],"mappings":";;;AACA,SAAS,0CAA0C;AACnD,SAAS,wBAAwB;AACjC;AAAA,EAGI;AAAA,EAEA;AAAA,EAGA;AAAA,OACG;AAOA,MAAM,+BAA+B,mCAAmC;AAAA,EAC3E,YAA6B,MAAuC,SAAS,IAAI,iBAAiB,GAAG;AACjG,UAAM;AADmB;AAAuC;AAAA,EAEpE;AAAA,EAEM,uBAAuB,gBAAoE;AAAA;AAC7F,YAAM,MAAM,wBAAyB,cAAe;AACpD,YAAM,WAAW,MAAM,KAAK,KAAK,eAAkD,OAAO,KAAK,QAAW,KAAK,MAAM;AACrH,UAAI;AACA,gDAAwC,MAAM,QAAQ;AAAA,MAC1D,SAAS,GAAG;AACR,aAAK,MAAM,CAAa;AAAA,MAC5B;AACA,aAAO;AAAA,IACX;AAAA;AAAA,EAEM,mBAAmB,cAAwE;AAAA;AAC7F,YAAM,MAAM;AACZ,YAAM,WAAW,MAAM,KAAK,KAAK,eAAwC,QAAQ,KAAK,cAAc,KAAK,MAAM;AAC/G,UAAI;AACA,sCAA8B,MAAM,QAAQ;AAAA,MAChD,SAAS,GAAG;AACR,aAAK,MAAM,CAAa;AAAA,MAC5B;AACA,aAAO;AAAA,IACX;AAAA;AAAA,EAEM,cAAc,SAAmC,gBAAwD;AAAA;AAC3G,YAAM,MAAM,wBAAyB,cAAe;AACpD,YAAM,WAAW,MAAM,KAAK,KAAK,eAAsC,QAAQ,KAAK,SAAS,KAAK,MAAM;AACxG,UAAI;AACA,oCAA4B,MAAM,QAAQ;AAAA,MAC9C,SAAS,GAAG;AACR,aAAK,MAAM,CAAa;AAAA,MAC5B;AACA,aAAO;AAAA,IACX;AAAA;AACJ;","names":[]}