import { BaseService } from '../api/services/base-service'; import { PagedResponse } from '../common'; import { OrganizationVdt } from '../web3'; import { AddContactRequest, AddContactResponse, AddOrganizationAddressRequest, AddOrganizationAddressResponse, InitVdtRequest, ListOrganizationRequest, OrganizationAddressResponse, OrganizationResponse, OrganizationWallet, SearchOrganizationAddressRequest, ShareOrganizationDeepLinkRequest, UpdateOrganizationRequest, } from './interfaces'; export class OrganizationService extends BaseService { async getOrganizations() { // The interface for this is missing return this.get(`${this.apiUrl}/common-admin/v1/organizations`, {}, { timeout: 5000 }); } async getOrganizationList(params: ListOrganizationRequest) { return this.get(`${this.apiUrl}/common-admin/v1/organizations/list`, params); } async getOrganization(orgId: string) { return this.get(`${this.apiUrl}/common-admin/v1/organizations/${orgId}`, {}); } async searchOrganizationAddresses(req: SearchOrganizationAddressRequest) { return this.get>( `${this.apiUrl}/common-admin/v1/organization-profiles/addresses`, req ); } async getOrganizationMainAddress(orgId: string) { return this.get( `${this.apiUrl}/common-admin/v1/organization-profiles/${orgId}/addresses/main`, {} ); } async getWallet(orgId: string) { return this.get( `${this.apiUrl}/common-admin/v1/organizations/${orgId}/wallet`, {}, { timeout: 5000 } ); } async initVdt(orgId: string, payload: InitVdtRequest) { return this.post( `${this.apiUrl}/common-admin/v1/organizations/${orgId}/initiate-vdt`, payload, { headers: { 'x-organization-id': orgId } } ); } async canSetupOrg(orgId: string) { return this.get(`${this.apiUrl}/common-admin/v1/organizations/${orgId}/can-setup`, {}); } async getOrganizationVdt(orgId: string) { return this.get(`${this.apiUrl}/web3/v1/nft/organization-vdt/${orgId}`, {}); } async update(orgId: string, payload: UpdateOrganizationRequest) { return this.put(`${this.apiUrl}/common-admin/v1/organizations/${orgId}`, payload, { headers: { 'x-organization-id': orgId }, }); } async addContact(orgId: string, payload: AddContactRequest) { return this.post( `${this.apiUrl}/common-admin/v1/organizations/${orgId}/contacts`, payload, { headers: { 'x-organization-id': orgId } } ); } async addAddress(payload: AddOrganizationAddressRequest) { return this.post( `${this.apiUrl}/common-admin/v1/organization-profiles/addresses`, payload, { headers: { 'x-organization-id': payload?.orgId } } ); } async shareDeepLink(orgId: string, req: ShareOrganizationDeepLinkRequest) { return this.post( `${this.apiUrl}/common-admin/v1/organizations/${orgId}/share-deep-link`, req ); } }