@23blocks/block-company 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/company.block.js +24 -0
- package/dist/lib/company.block.js.map +1 -0
- package/dist/lib/mappers/company.mapper.js +23 -0
- package/dist/lib/mappers/company.mapper.js.map +1 -0
- package/dist/lib/mappers/department.mapper.js +21 -0
- package/dist/lib/mappers/department.mapper.js.map +1 -0
- package/dist/lib/mappers/index.js +8 -0
- package/dist/lib/mappers/index.js.map +1 -0
- package/dist/lib/mappers/quarter.mapper.js +21 -0
- package/dist/lib/mappers/quarter.mapper.js.map +1 -0
- package/dist/lib/mappers/team-member.mapper.js +19 -0
- package/dist/lib/mappers/team-member.mapper.js.map +1 -0
- package/dist/lib/mappers/team.mapper.js +20 -0
- package/dist/lib/mappers/team.mapper.js.map +1 -0
- package/dist/lib/mappers/utils.js +75 -0
- package/dist/lib/mappers/utils.js.map +1 -0
- package/dist/lib/services/companies.service.js +66 -0
- package/dist/lib/services/companies.service.js.map +1 -0
- package/dist/lib/services/departments.service.js +71 -0
- package/dist/lib/services/departments.service.js.map +1 -0
- package/dist/lib/services/index.js +7 -0
- package/dist/lib/services/index.js.map +1 -0
- package/dist/lib/services/quarters.service.js +62 -0
- package/dist/lib/services/quarters.service.js.map +1 -0
- package/dist/lib/services/team-members.service.js +60 -0
- package/dist/lib/services/team-members.service.js.map +1 -0
- package/dist/lib/services/teams.service.js +64 -0
- package/dist/lib/services/teams.service.js.map +1 -0
- package/dist/lib/types/company.js +3 -0
- package/dist/lib/types/company.js.map +1 -0
- package/dist/lib/types/department.js +3 -0
- package/dist/lib/types/department.js.map +1 -0
- package/dist/lib/types/index.js +7 -0
- package/dist/lib/types/index.js.map +1 -0
- package/dist/lib/types/quarter.js +3 -0
- package/dist/lib/types/quarter.js.map +1 -0
- package/dist/lib/types/team-member.js +3 -0
- package/dist/lib/types/team-member.js.map +1 -0
- package/dist/lib/types/team.js +3 -0
- package/dist/lib/types/team.js.map +1 -0
- package/package.json +64 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Block factory and metadata
|
|
2
|
+
export { createCompanyBlock, companyBlockMetadata } from './lib/company.block';
|
|
3
|
+
export { createCompaniesService, createDepartmentsService, createTeamsService, createTeamMembersService, createQuartersService } from './lib/services';
|
|
4
|
+
// Mappers (for advanced use cases)
|
|
5
|
+
export { companyMapper, departmentMapper, teamMapper, teamMemberMapper, quarterMapper } from './lib/mappers';
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// Block factory and metadata\nexport { createCompanyBlock, companyBlockMetadata } from './lib/company.block';\nexport type { CompanyBlock, CompanyBlockConfig } from './lib/company.block';\n\n// Types\nexport type {\n // Company types\n Company,\n CreateCompanyRequest,\n UpdateCompanyRequest,\n ListCompaniesParams,\n // Department types\n Department,\n DepartmentHierarchy,\n CreateDepartmentRequest,\n UpdateDepartmentRequest,\n ListDepartmentsParams,\n // Team types\n Team,\n CreateTeamRequest,\n UpdateTeamRequest,\n ListTeamsParams,\n // TeamMember types\n TeamMember,\n AddTeamMemberRequest,\n UpdateTeamMemberRequest,\n ListTeamMembersParams,\n // Quarter types\n Quarter,\n CreateQuarterRequest,\n UpdateQuarterRequest,\n ListQuartersParams,\n} from './lib/types';\n\n// Services\nexport type {\n CompaniesService,\n DepartmentsService,\n TeamsService,\n TeamMembersService,\n QuartersService,\n} from './lib/services';\n\nexport {\n createCompaniesService,\n createDepartmentsService,\n createTeamsService,\n createTeamMembersService,\n createQuartersService,\n} from './lib/services';\n\n// Mappers (for advanced use cases)\nexport {\n companyMapper,\n departmentMapper,\n teamMapper,\n teamMemberMapper,\n quarterMapper,\n} from './lib/mappers';\n"],"names":["createCompanyBlock","companyBlockMetadata","createCompaniesService","createDepartmentsService","createTeamsService","createTeamMembersService","createQuartersService","companyMapper","departmentMapper","teamMapper","teamMemberMapper","quarterMapper"],"rangeMappings":";;;;","mappings":"AAAA,6BAA6B;AAC7B,SAASA,kBAAkB,EAAEC,oBAAoB,QAAQ,sBAAsB;AA0C/E,SACEC,sBAAsB,EACtBC,wBAAwB,EACxBC,kBAAkB,EAClBC,wBAAwB,EACxBC,qBAAqB,QAChB,iBAAiB;AAExB,mCAAmC;AACnC,SACEC,aAAa,EACbC,gBAAgB,EAChBC,UAAU,EACVC,gBAAgB,EAChBC,aAAa,QACR,gBAAgB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createCompaniesService, createDepartmentsService, createTeamsService, createTeamMembersService, createQuartersService } from './services';
|
|
2
|
+
export function createCompanyBlock(transport, config) {
|
|
3
|
+
return {
|
|
4
|
+
companies: createCompaniesService(transport, config),
|
|
5
|
+
departments: createDepartmentsService(transport, config),
|
|
6
|
+
teams: createTeamsService(transport, config),
|
|
7
|
+
teamMembers: createTeamMembersService(transport, config),
|
|
8
|
+
quarters: createQuartersService(transport, config)
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export const companyBlockMetadata = {
|
|
12
|
+
name: 'company',
|
|
13
|
+
version: '0.1.0',
|
|
14
|
+
description: 'Company organizational structure, departments, teams, and quarters',
|
|
15
|
+
resourceTypes: [
|
|
16
|
+
'Company',
|
|
17
|
+
'Department',
|
|
18
|
+
'Team',
|
|
19
|
+
'TeamMember',
|
|
20
|
+
'Quarter'
|
|
21
|
+
]
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=company.block.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/company.block.ts"],"sourcesContent":["import type { Transport, BlockConfig, BlockMetadata } from '@23blocks/contracts';\nimport {\n createCompaniesService,\n createDepartmentsService,\n createTeamsService,\n createTeamMembersService,\n createQuartersService,\n type CompaniesService,\n type DepartmentsService,\n type TeamsService,\n type TeamMembersService,\n type QuartersService,\n} from './services';\n\nexport interface CompanyBlockConfig extends BlockConfig {\n appId: string;\n tenantId?: string;\n}\n\nexport interface CompanyBlock {\n companies: CompaniesService;\n departments: DepartmentsService;\n teams: TeamsService;\n teamMembers: TeamMembersService;\n quarters: QuartersService;\n}\n\nexport function createCompanyBlock(\n transport: Transport,\n config: CompanyBlockConfig\n): CompanyBlock {\n return {\n companies: createCompaniesService(transport, config),\n departments: createDepartmentsService(transport, config),\n teams: createTeamsService(transport, config),\n teamMembers: createTeamMembersService(transport, config),\n quarters: createQuartersService(transport, config),\n };\n}\n\nexport const companyBlockMetadata: BlockMetadata = {\n name: 'company',\n version: '0.1.0',\n description: 'Company organizational structure, departments, teams, and quarters',\n resourceTypes: [\n 'Company',\n 'Department',\n 'Team',\n 'TeamMember',\n 'Quarter',\n ],\n};\n"],"names":["createCompaniesService","createDepartmentsService","createTeamsService","createTeamMembersService","createQuartersService","createCompanyBlock","transport","config","companies","departments","teams","teamMembers","quarters","companyBlockMetadata","name","version","description","resourceTypes"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SACEA,sBAAsB,EACtBC,wBAAwB,EACxBC,kBAAkB,EAClBC,wBAAwB,EACxBC,qBAAqB,QAMhB,aAAa;AAepB,OAAO,SAASC,mBACdC,SAAoB,EACpBC,MAA0B;IAE1B,OAAO;QACLC,WAAWR,uBAAuBM,WAAWC;QAC7CE,aAAaR,yBAAyBK,WAAWC;QACjDG,OAAOR,mBAAmBI,WAAWC;QACrCI,aAAaR,yBAAyBG,WAAWC;QACjDK,UAAUR,sBAAsBE,WAAWC;IAC7C;AACF;AAEA,OAAO,MAAMM,uBAAsC;IACjDC,MAAM;IACNC,SAAS;IACTC,aAAa;IACbC,eAAe;QACb;QACA;QACA;QACA;QACA;KACD;AACH,EAAE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { parseString, parseDate, parseBoolean, parseStatus } from './utils';
|
|
2
|
+
export const companyMapper = {
|
|
3
|
+
type: 'Company',
|
|
4
|
+
map: (resource)=>({
|
|
5
|
+
id: resource.id,
|
|
6
|
+
uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
|
|
7
|
+
createdAt: parseDate(resource.attributes['created_at']) || new Date(),
|
|
8
|
+
updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
|
|
9
|
+
code: parseString(resource.attributes['code']) || '',
|
|
10
|
+
name: parseString(resource.attributes['name']) || '',
|
|
11
|
+
description: parseString(resource.attributes['description']),
|
|
12
|
+
legalName: parseString(resource.attributes['legal_name']),
|
|
13
|
+
taxId: parseString(resource.attributes['tax_id']),
|
|
14
|
+
industry: parseString(resource.attributes['industry']),
|
|
15
|
+
website: parseString(resource.attributes['website']),
|
|
16
|
+
logoUrl: parseString(resource.attributes['logo_url']),
|
|
17
|
+
status: parseStatus(resource.attributes['status']),
|
|
18
|
+
enabled: parseBoolean(resource.attributes['enabled']),
|
|
19
|
+
payload: resource.attributes['payload']
|
|
20
|
+
})
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=company.mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/mappers/company.mapper.ts"],"sourcesContent":["import type { ResourceMapper } from '@23blocks/jsonapi-codec';\nimport type { Company } from '../types/company';\nimport { parseString, parseDate, parseBoolean, parseStatus } from './utils';\n\nexport const companyMapper: ResourceMapper<Company> = {\n type: 'Company',\n map: (resource) => ({\n id: resource.id,\n uniqueId: parseString(resource.attributes['unique_id']) || resource.id,\n createdAt: parseDate(resource.attributes['created_at']) || new Date(),\n updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),\n\n code: parseString(resource.attributes['code']) || '',\n name: parseString(resource.attributes['name']) || '',\n description: parseString(resource.attributes['description']),\n legalName: parseString(resource.attributes['legal_name']),\n taxId: parseString(resource.attributes['tax_id']),\n industry: parseString(resource.attributes['industry']),\n website: parseString(resource.attributes['website']),\n logoUrl: parseString(resource.attributes['logo_url']),\n status: parseStatus(resource.attributes['status']),\n enabled: parseBoolean(resource.attributes['enabled']),\n payload: resource.attributes['payload'] as Record<string, unknown> | undefined,\n }),\n};\n"],"names":["parseString","parseDate","parseBoolean","parseStatus","companyMapper","type","map","resource","id","uniqueId","attributes","createdAt","Date","updatedAt","code","name","description","legalName","taxId","industry","website","logoUrl","status","enabled","payload"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,YAAY,EAAEC,WAAW,QAAQ,UAAU;AAE5E,OAAO,MAAMC,gBAAyC;IACpDC,MAAM;IACNC,KAAK,CAACC,WAAc,CAAA;YAClBC,IAAID,SAASC,EAAE;YACfC,UAAUT,YAAYO,SAASG,UAAU,CAAC,YAAY,KAAKH,SAASC,EAAE;YACtEG,WAAWV,UAAUM,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAC/DC,WAAWZ,UAAUM,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAE/DE,MAAMd,YAAYO,SAASG,UAAU,CAAC,OAAO,KAAK;YAClDK,MAAMf,YAAYO,SAASG,UAAU,CAAC,OAAO,KAAK;YAClDM,aAAahB,YAAYO,SAASG,UAAU,CAAC,cAAc;YAC3DO,WAAWjB,YAAYO,SAASG,UAAU,CAAC,aAAa;YACxDQ,OAAOlB,YAAYO,SAASG,UAAU,CAAC,SAAS;YAChDS,UAAUnB,YAAYO,SAASG,UAAU,CAAC,WAAW;YACrDU,SAASpB,YAAYO,SAASG,UAAU,CAAC,UAAU;YACnDW,SAASrB,YAAYO,SAASG,UAAU,CAAC,WAAW;YACpDY,QAAQnB,YAAYI,SAASG,UAAU,CAAC,SAAS;YACjDa,SAASrB,aAAaK,SAASG,UAAU,CAAC,UAAU;YACpDc,SAASjB,SAASG,UAAU,CAAC,UAAU;QACzC,CAAA;AACF,EAAE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { parseString, parseDate, parseBoolean, parseStatus } from './utils';
|
|
2
|
+
export const departmentMapper = {
|
|
3
|
+
type: 'Department',
|
|
4
|
+
map: (resource)=>({
|
|
5
|
+
id: resource.id,
|
|
6
|
+
uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
|
|
7
|
+
createdAt: parseDate(resource.attributes['created_at']) || new Date(),
|
|
8
|
+
updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
|
|
9
|
+
companyUniqueId: parseString(resource.attributes['company_unique_id']) || '',
|
|
10
|
+
code: parseString(resource.attributes['code']) || '',
|
|
11
|
+
name: parseString(resource.attributes['name']) || '',
|
|
12
|
+
description: parseString(resource.attributes['description']),
|
|
13
|
+
parentUniqueId: parseString(resource.attributes['parent_unique_id']),
|
|
14
|
+
managerUniqueId: parseString(resource.attributes['manager_unique_id']),
|
|
15
|
+
status: parseStatus(resource.attributes['status']),
|
|
16
|
+
enabled: parseBoolean(resource.attributes['enabled']),
|
|
17
|
+
payload: resource.attributes['payload']
|
|
18
|
+
})
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=department.mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/mappers/department.mapper.ts"],"sourcesContent":["import type { ResourceMapper } from '@23blocks/jsonapi-codec';\nimport type { Department } from '../types/department';\nimport { parseString, parseDate, parseBoolean, parseStatus } from './utils';\n\nexport const departmentMapper: ResourceMapper<Department> = {\n type: 'Department',\n map: (resource) => ({\n id: resource.id,\n uniqueId: parseString(resource.attributes['unique_id']) || resource.id,\n createdAt: parseDate(resource.attributes['created_at']) || new Date(),\n updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),\n\n companyUniqueId: parseString(resource.attributes['company_unique_id']) || '',\n code: parseString(resource.attributes['code']) || '',\n name: parseString(resource.attributes['name']) || '',\n description: parseString(resource.attributes['description']),\n parentUniqueId: parseString(resource.attributes['parent_unique_id']),\n managerUniqueId: parseString(resource.attributes['manager_unique_id']),\n status: parseStatus(resource.attributes['status']),\n enabled: parseBoolean(resource.attributes['enabled']),\n payload: resource.attributes['payload'] as Record<string, unknown> | undefined,\n }),\n};\n"],"names":["parseString","parseDate","parseBoolean","parseStatus","departmentMapper","type","map","resource","id","uniqueId","attributes","createdAt","Date","updatedAt","companyUniqueId","code","name","description","parentUniqueId","managerUniqueId","status","enabled","payload"],"rangeMappings":";;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,YAAY,EAAEC,WAAW,QAAQ,UAAU;AAE5E,OAAO,MAAMC,mBAA+C;IAC1DC,MAAM;IACNC,KAAK,CAACC,WAAc,CAAA;YAClBC,IAAID,SAASC,EAAE;YACfC,UAAUT,YAAYO,SAASG,UAAU,CAAC,YAAY,KAAKH,SAASC,EAAE;YACtEG,WAAWV,UAAUM,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAC/DC,WAAWZ,UAAUM,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAE/DE,iBAAiBd,YAAYO,SAASG,UAAU,CAAC,oBAAoB,KAAK;YAC1EK,MAAMf,YAAYO,SAASG,UAAU,CAAC,OAAO,KAAK;YAClDM,MAAMhB,YAAYO,SAASG,UAAU,CAAC,OAAO,KAAK;YAClDO,aAAajB,YAAYO,SAASG,UAAU,CAAC,cAAc;YAC3DQ,gBAAgBlB,YAAYO,SAASG,UAAU,CAAC,mBAAmB;YACnES,iBAAiBnB,YAAYO,SAASG,UAAU,CAAC,oBAAoB;YACrEU,QAAQjB,YAAYI,SAASG,UAAU,CAAC,SAAS;YACjDW,SAASnB,aAAaK,SAASG,UAAU,CAAC,UAAU;YACpDY,SAASf,SAASG,UAAU,CAAC,UAAU;QACzC,CAAA;AACF,EAAE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/mappers/index.ts"],"sourcesContent":["export * from './company.mapper';\nexport * from './department.mapper';\nexport * from './team.mapper';\nexport * from './team-member.mapper';\nexport * from './quarter.mapper';\nexport * from './utils';\n"],"names":[],"rangeMappings":";;;;;","mappings":"AAAA,cAAc,mBAAmB;AACjC,cAAc,sBAAsB;AACpC,cAAc,gBAAgB;AAC9B,cAAc,uBAAuB;AACrC,cAAc,mBAAmB;AACjC,cAAc,UAAU"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { parseString, parseDate, parseBoolean, parseNumber, parseStatus } from './utils';
|
|
2
|
+
export const quarterMapper = {
|
|
3
|
+
type: 'Quarter',
|
|
4
|
+
map: (resource)=>({
|
|
5
|
+
id: resource.id,
|
|
6
|
+
uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
|
|
7
|
+
createdAt: parseDate(resource.attributes['created_at']) || new Date(),
|
|
8
|
+
updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
|
|
9
|
+
companyUniqueId: parseString(resource.attributes['company_unique_id']) || '',
|
|
10
|
+
name: parseString(resource.attributes['name']) || '',
|
|
11
|
+
year: parseNumber(resource.attributes['year']),
|
|
12
|
+
quarter: parseNumber(resource.attributes['quarter']),
|
|
13
|
+
startDate: parseDate(resource.attributes['start_date']) || new Date(),
|
|
14
|
+
endDate: parseDate(resource.attributes['end_date']) || new Date(),
|
|
15
|
+
status: parseStatus(resource.attributes['status']),
|
|
16
|
+
enabled: parseBoolean(resource.attributes['enabled']),
|
|
17
|
+
payload: resource.attributes['payload']
|
|
18
|
+
})
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=quarter.mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/mappers/quarter.mapper.ts"],"sourcesContent":["import type { ResourceMapper } from '@23blocks/jsonapi-codec';\nimport type { Quarter } from '../types/quarter';\nimport { parseString, parseDate, parseBoolean, parseNumber, parseStatus } from './utils';\n\nexport const quarterMapper: ResourceMapper<Quarter> = {\n type: 'Quarter',\n map: (resource) => ({\n id: resource.id,\n uniqueId: parseString(resource.attributes['unique_id']) || resource.id,\n createdAt: parseDate(resource.attributes['created_at']) || new Date(),\n updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),\n\n companyUniqueId: parseString(resource.attributes['company_unique_id']) || '',\n name: parseString(resource.attributes['name']) || '',\n year: parseNumber(resource.attributes['year']),\n quarter: parseNumber(resource.attributes['quarter']),\n startDate: parseDate(resource.attributes['start_date']) || new Date(),\n endDate: parseDate(resource.attributes['end_date']) || new Date(),\n status: parseStatus(resource.attributes['status']),\n enabled: parseBoolean(resource.attributes['enabled']),\n payload: resource.attributes['payload'] as Record<string, unknown> | undefined,\n }),\n};\n"],"names":["parseString","parseDate","parseBoolean","parseNumber","parseStatus","quarterMapper","type","map","resource","id","uniqueId","attributes","createdAt","Date","updatedAt","companyUniqueId","name","year","quarter","startDate","endDate","status","enabled","payload"],"rangeMappings":";;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,YAAY,EAAEC,WAAW,EAAEC,WAAW,QAAQ,UAAU;AAEzF,OAAO,MAAMC,gBAAyC;IACpDC,MAAM;IACNC,KAAK,CAACC,WAAc,CAAA;YAClBC,IAAID,SAASC,EAAE;YACfC,UAAUV,YAAYQ,SAASG,UAAU,CAAC,YAAY,KAAKH,SAASC,EAAE;YACtEG,WAAWX,UAAUO,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAC/DC,WAAWb,UAAUO,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAE/DE,iBAAiBf,YAAYQ,SAASG,UAAU,CAAC,oBAAoB,KAAK;YAC1EK,MAAMhB,YAAYQ,SAASG,UAAU,CAAC,OAAO,KAAK;YAClDM,MAAMd,YAAYK,SAASG,UAAU,CAAC,OAAO;YAC7CO,SAASf,YAAYK,SAASG,UAAU,CAAC,UAAU;YACnDQ,WAAWlB,UAAUO,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAC/DO,SAASnB,UAAUO,SAASG,UAAU,CAAC,WAAW,KAAK,IAAIE;YAC3DQ,QAAQjB,YAAYI,SAASG,UAAU,CAAC,SAAS;YACjDW,SAASpB,aAAaM,SAASG,UAAU,CAAC,UAAU;YACpDY,SAASf,SAASG,UAAU,CAAC,UAAU;QACzC,CAAA;AACF,EAAE"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { parseString, parseDate, parseBoolean, parseStatus } from './utils';
|
|
2
|
+
export const teamMemberMapper = {
|
|
3
|
+
type: 'TeamMember',
|
|
4
|
+
map: (resource)=>({
|
|
5
|
+
id: resource.id,
|
|
6
|
+
uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
|
|
7
|
+
createdAt: parseDate(resource.attributes['created_at']) || new Date(),
|
|
8
|
+
updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
|
|
9
|
+
teamUniqueId: parseString(resource.attributes['team_unique_id']) || '',
|
|
10
|
+
userUniqueId: parseString(resource.attributes['user_unique_id']) || '',
|
|
11
|
+
role: parseString(resource.attributes['role']),
|
|
12
|
+
joinedAt: parseDate(resource.attributes['joined_at']),
|
|
13
|
+
status: parseStatus(resource.attributes['status']),
|
|
14
|
+
enabled: parseBoolean(resource.attributes['enabled']),
|
|
15
|
+
payload: resource.attributes['payload']
|
|
16
|
+
})
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=team-member.mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/mappers/team-member.mapper.ts"],"sourcesContent":["import type { ResourceMapper } from '@23blocks/jsonapi-codec';\nimport type { TeamMember } from '../types/team-member';\nimport { parseString, parseDate, parseBoolean, parseStatus } from './utils';\n\nexport const teamMemberMapper: ResourceMapper<TeamMember> = {\n type: 'TeamMember',\n map: (resource) => ({\n id: resource.id,\n uniqueId: parseString(resource.attributes['unique_id']) || resource.id,\n createdAt: parseDate(resource.attributes['created_at']) || new Date(),\n updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),\n\n teamUniqueId: parseString(resource.attributes['team_unique_id']) || '',\n userUniqueId: parseString(resource.attributes['user_unique_id']) || '',\n role: parseString(resource.attributes['role']),\n joinedAt: parseDate(resource.attributes['joined_at']),\n status: parseStatus(resource.attributes['status']),\n enabled: parseBoolean(resource.attributes['enabled']),\n payload: resource.attributes['payload'] as Record<string, unknown> | undefined,\n }),\n};\n"],"names":["parseString","parseDate","parseBoolean","parseStatus","teamMemberMapper","type","map","resource","id","uniqueId","attributes","createdAt","Date","updatedAt","teamUniqueId","userUniqueId","role","joinedAt","status","enabled","payload"],"rangeMappings":";;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,YAAY,EAAEC,WAAW,QAAQ,UAAU;AAE5E,OAAO,MAAMC,mBAA+C;IAC1DC,MAAM;IACNC,KAAK,CAACC,WAAc,CAAA;YAClBC,IAAID,SAASC,EAAE;YACfC,UAAUT,YAAYO,SAASG,UAAU,CAAC,YAAY,KAAKH,SAASC,EAAE;YACtEG,WAAWV,UAAUM,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAC/DC,WAAWZ,UAAUM,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAE/DE,cAAcd,YAAYO,SAASG,UAAU,CAAC,iBAAiB,KAAK;YACpEK,cAAcf,YAAYO,SAASG,UAAU,CAAC,iBAAiB,KAAK;YACpEM,MAAMhB,YAAYO,SAASG,UAAU,CAAC,OAAO;YAC7CO,UAAUhB,UAAUM,SAASG,UAAU,CAAC,YAAY;YACpDQ,QAAQf,YAAYI,SAASG,UAAU,CAAC,SAAS;YACjDS,SAASjB,aAAaK,SAASG,UAAU,CAAC,UAAU;YACpDU,SAASb,SAASG,UAAU,CAAC,UAAU;QACzC,CAAA;AACF,EAAE"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { parseString, parseDate, parseBoolean, parseStatus } from './utils';
|
|
2
|
+
export const teamMapper = {
|
|
3
|
+
type: 'Team',
|
|
4
|
+
map: (resource)=>({
|
|
5
|
+
id: resource.id,
|
|
6
|
+
uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
|
|
7
|
+
createdAt: parseDate(resource.attributes['created_at']) || new Date(),
|
|
8
|
+
updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
|
|
9
|
+
departmentUniqueId: parseString(resource.attributes['department_unique_id']) || '',
|
|
10
|
+
code: parseString(resource.attributes['code']) || '',
|
|
11
|
+
name: parseString(resource.attributes['name']) || '',
|
|
12
|
+
description: parseString(resource.attributes['description']),
|
|
13
|
+
leaderUniqueId: parseString(resource.attributes['leader_unique_id']),
|
|
14
|
+
status: parseStatus(resource.attributes['status']),
|
|
15
|
+
enabled: parseBoolean(resource.attributes['enabled']),
|
|
16
|
+
payload: resource.attributes['payload']
|
|
17
|
+
})
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=team.mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/mappers/team.mapper.ts"],"sourcesContent":["import type { ResourceMapper } from '@23blocks/jsonapi-codec';\nimport type { Team } from '../types/team';\nimport { parseString, parseDate, parseBoolean, parseStatus } from './utils';\n\nexport const teamMapper: ResourceMapper<Team> = {\n type: 'Team',\n map: (resource) => ({\n id: resource.id,\n uniqueId: parseString(resource.attributes['unique_id']) || resource.id,\n createdAt: parseDate(resource.attributes['created_at']) || new Date(),\n updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),\n\n departmentUniqueId: parseString(resource.attributes['department_unique_id']) || '',\n code: parseString(resource.attributes['code']) || '',\n name: parseString(resource.attributes['name']) || '',\n description: parseString(resource.attributes['description']),\n leaderUniqueId: parseString(resource.attributes['leader_unique_id']),\n status: parseStatus(resource.attributes['status']),\n enabled: parseBoolean(resource.attributes['enabled']),\n payload: resource.attributes['payload'] as Record<string, unknown> | undefined,\n }),\n};\n"],"names":["parseString","parseDate","parseBoolean","parseStatus","teamMapper","type","map","resource","id","uniqueId","attributes","createdAt","Date","updatedAt","departmentUniqueId","code","name","description","leaderUniqueId","status","enabled","payload"],"rangeMappings":";;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,YAAY,EAAEC,WAAW,QAAQ,UAAU;AAE5E,OAAO,MAAMC,aAAmC;IAC9CC,MAAM;IACNC,KAAK,CAACC,WAAc,CAAA;YAClBC,IAAID,SAASC,EAAE;YACfC,UAAUT,YAAYO,SAASG,UAAU,CAAC,YAAY,KAAKH,SAASC,EAAE;YACtEG,WAAWV,UAAUM,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAC/DC,WAAWZ,UAAUM,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAE/DE,oBAAoBd,YAAYO,SAASG,UAAU,CAAC,uBAAuB,KAAK;YAChFK,MAAMf,YAAYO,SAASG,UAAU,CAAC,OAAO,KAAK;YAClDM,MAAMhB,YAAYO,SAASG,UAAU,CAAC,OAAO,KAAK;YAClDO,aAAajB,YAAYO,SAASG,UAAU,CAAC,cAAc;YAC3DQ,gBAAgBlB,YAAYO,SAASG,UAAU,CAAC,mBAAmB;YACnES,QAAQhB,YAAYI,SAASG,UAAU,CAAC,SAAS;YACjDU,SAASlB,aAAaK,SAASG,UAAU,CAAC,UAAU;YACpDW,SAASd,SAASG,UAAU,CAAC,UAAU;QACzC,CAAA;AACF,EAAE"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse a string value, returning undefined for empty/undefined
|
|
3
|
+
*/ export function parseString(value) {
|
|
4
|
+
if (value === null || value === undefined) {
|
|
5
|
+
return undefined;
|
|
6
|
+
}
|
|
7
|
+
const str = String(value);
|
|
8
|
+
return str.length > 0 ? str : undefined;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Parse a date value
|
|
12
|
+
*/ export function parseDate(value) {
|
|
13
|
+
if (value === null || value === undefined) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
if (value instanceof Date) {
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
if (typeof value === 'string' || typeof value === 'number') {
|
|
20
|
+
const date = new Date(value);
|
|
21
|
+
return isNaN(date.getTime()) ? undefined : date;
|
|
22
|
+
}
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Parse a boolean value
|
|
27
|
+
*/ export function parseBoolean(value) {
|
|
28
|
+
if (typeof value === 'boolean') {
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
if (value === 'true' || value === '1' || value === 1) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Parse an array of strings
|
|
38
|
+
*/ export function parseStringArray(value) {
|
|
39
|
+
if (value === null || value === undefined) {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
if (Array.isArray(value)) {
|
|
43
|
+
return value.map(String);
|
|
44
|
+
}
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Parse a number value
|
|
49
|
+
*/ export function parseNumber(value) {
|
|
50
|
+
if (value === null || value === undefined) {
|
|
51
|
+
return 0;
|
|
52
|
+
}
|
|
53
|
+
const num = Number(value);
|
|
54
|
+
return isNaN(num) ? 0 : num;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Parse an optional number value
|
|
58
|
+
*/ export function parseOptionalNumber(value) {
|
|
59
|
+
if (value === null || value === undefined) {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
const num = Number(value);
|
|
63
|
+
return isNaN(num) ? undefined : num;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Parse entity status
|
|
67
|
+
*/ export function parseStatus(value) {
|
|
68
|
+
const status = parseString(value);
|
|
69
|
+
if (status === 'active' || status === 'inactive' || status === 'pending' || status === 'archived' || status === 'deleted') {
|
|
70
|
+
return status;
|
|
71
|
+
}
|
|
72
|
+
return 'active';
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/mappers/utils.ts"],"sourcesContent":["/**\n * Parse a string value, returning undefined for empty/undefined\n */\nexport function parseString(value: unknown): string | undefined {\n if (value === null || value === undefined) {\n return undefined;\n }\n const str = String(value);\n return str.length > 0 ? str : undefined;\n}\n\n/**\n * Parse a date value\n */\nexport function parseDate(value: unknown): Date | undefined {\n if (value === null || value === undefined) {\n return undefined;\n }\n\n if (value instanceof Date) {\n return value;\n }\n\n if (typeof value === 'string' || typeof value === 'number') {\n const date = new Date(value);\n return isNaN(date.getTime()) ? undefined : date;\n }\n\n return undefined;\n}\n\n/**\n * Parse a boolean value\n */\nexport function parseBoolean(value: unknown): boolean {\n if (typeof value === 'boolean') {\n return value;\n }\n if (value === 'true' || value === '1' || value === 1) {\n return true;\n }\n return false;\n}\n\n/**\n * Parse an array of strings\n */\nexport function parseStringArray(value: unknown): string[] | undefined {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (Array.isArray(value)) {\n return value.map(String);\n }\n return undefined;\n}\n\n/**\n * Parse a number value\n */\nexport function parseNumber(value: unknown): number {\n if (value === null || value === undefined) {\n return 0;\n }\n const num = Number(value);\n return isNaN(num) ? 0 : num;\n}\n\n/**\n * Parse an optional number value\n */\nexport function parseOptionalNumber(value: unknown): number | undefined {\n if (value === null || value === undefined) {\n return undefined;\n }\n const num = Number(value);\n return isNaN(num) ? undefined : num;\n}\n\n/**\n * Parse entity status\n */\nexport function parseStatus(value: unknown): 'active' | 'inactive' | 'pending' | 'archived' | 'deleted' {\n const status = parseString(value);\n if (status === 'active' || status === 'inactive' || status === 'pending' || status === 'archived' || status === 'deleted') {\n return status;\n }\n return 'active';\n}\n"],"names":["parseString","value","undefined","str","String","length","parseDate","Date","date","isNaN","getTime","parseBoolean","parseStringArray","Array","isArray","map","parseNumber","num","Number","parseOptionalNumber","parseStatus","status"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;CAEC,GACD,OAAO,SAASA,YAAYC,KAAc;IACxC,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAOA;IACT;IACA,MAAMC,MAAMC,OAAOH;IACnB,OAAOE,IAAIE,MAAM,GAAG,IAAIF,MAAMD;AAChC;AAEA;;CAEC,GACD,OAAO,SAASI,UAAUL,KAAc;IACtC,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAOA;IACT;IAEA,IAAID,iBAAiBM,MAAM;QACzB,OAAON;IACT;IAEA,IAAI,OAAOA,UAAU,YAAY,OAAOA,UAAU,UAAU;QAC1D,MAAMO,OAAO,IAAID,KAAKN;QACtB,OAAOQ,MAAMD,KAAKE,OAAO,MAAMR,YAAYM;IAC7C;IAEA,OAAON;AACT;AAEA;;CAEC,GACD,OAAO,SAASS,aAAaV,KAAc;IACzC,IAAI,OAAOA,UAAU,WAAW;QAC9B,OAAOA;IACT;IACA,IAAIA,UAAU,UAAUA,UAAU,OAAOA,UAAU,GAAG;QACpD,OAAO;IACT;IACA,OAAO;AACT;AAEA;;CAEC,GACD,OAAO,SAASW,iBAAiBX,KAAc;IAC7C,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAOA;IACT;IACA,IAAIW,MAAMC,OAAO,CAACb,QAAQ;QACxB,OAAOA,MAAMc,GAAG,CAACX;IACnB;IACA,OAAOF;AACT;AAEA;;CAEC,GACD,OAAO,SAASc,YAAYf,KAAc;IACxC,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAO;IACT;IACA,MAAMe,MAAMC,OAAOjB;IACnB,OAAOQ,MAAMQ,OAAO,IAAIA;AAC1B;AAEA;;CAEC,GACD,OAAO,SAASE,oBAAoBlB,KAAc;IAChD,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAOA;IACT;IACA,MAAMe,MAAMC,OAAOjB;IACnB,OAAOQ,MAAMQ,OAAOf,YAAYe;AAClC;AAEA;;CAEC,GACD,OAAO,SAASG,YAAYnB,KAAc;IACxC,MAAMoB,SAASrB,YAAYC;IAC3B,IAAIoB,WAAW,YAAYA,WAAW,cAAcA,WAAW,aAAaA,WAAW,cAAcA,WAAW,WAAW;QACzH,OAAOA;IACT;IACA,OAAO;AACT"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';
|
|
2
|
+
import { companyMapper } from '../mappers/company.mapper';
|
|
3
|
+
export function createCompaniesService(transport, _config) {
|
|
4
|
+
return {
|
|
5
|
+
async list (params) {
|
|
6
|
+
const queryParams = {};
|
|
7
|
+
if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
|
|
8
|
+
if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
|
|
9
|
+
if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
|
|
10
|
+
if (params == null ? void 0 : params.search) queryParams['search'] = params.search;
|
|
11
|
+
if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
|
|
12
|
+
const response = await transport.get('/companies', {
|
|
13
|
+
params: queryParams
|
|
14
|
+
});
|
|
15
|
+
return decodePageResult(response, companyMapper);
|
|
16
|
+
},
|
|
17
|
+
async get (uniqueId) {
|
|
18
|
+
const response = await transport.get(`/companies/${uniqueId}`);
|
|
19
|
+
return decodeOne(response, companyMapper);
|
|
20
|
+
},
|
|
21
|
+
async create (data) {
|
|
22
|
+
const response = await transport.post('/companies', {
|
|
23
|
+
data: {
|
|
24
|
+
type: 'Company',
|
|
25
|
+
attributes: {
|
|
26
|
+
code: data.code,
|
|
27
|
+
name: data.name,
|
|
28
|
+
description: data.description,
|
|
29
|
+
legal_name: data.legalName,
|
|
30
|
+
tax_id: data.taxId,
|
|
31
|
+
industry: data.industry,
|
|
32
|
+
website: data.website,
|
|
33
|
+
logo_url: data.logoUrl,
|
|
34
|
+
payload: data.payload
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
return decodeOne(response, companyMapper);
|
|
39
|
+
},
|
|
40
|
+
async update (uniqueId, data) {
|
|
41
|
+
const response = await transport.put(`/companies/${uniqueId}`, {
|
|
42
|
+
data: {
|
|
43
|
+
type: 'Company',
|
|
44
|
+
attributes: {
|
|
45
|
+
name: data.name,
|
|
46
|
+
description: data.description,
|
|
47
|
+
legal_name: data.legalName,
|
|
48
|
+
tax_id: data.taxId,
|
|
49
|
+
industry: data.industry,
|
|
50
|
+
website: data.website,
|
|
51
|
+
logo_url: data.logoUrl,
|
|
52
|
+
enabled: data.enabled,
|
|
53
|
+
status: data.status,
|
|
54
|
+
payload: data.payload
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
return decodeOne(response, companyMapper);
|
|
59
|
+
},
|
|
60
|
+
async delete (uniqueId) {
|
|
61
|
+
await transport.delete(`/companies/${uniqueId}`);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
//# sourceMappingURL=companies.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/services/companies.service.ts"],"sourcesContent":["import type { Transport, PageResult } from '@23blocks/contracts';\nimport { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type {\n Company,\n CreateCompanyRequest,\n UpdateCompanyRequest,\n ListCompaniesParams,\n} from '../types/company';\nimport { companyMapper } from '../mappers/company.mapper';\n\nexport interface CompaniesService {\n list(params?: ListCompaniesParams): Promise<PageResult<Company>>;\n get(uniqueId: string): Promise<Company>;\n create(data: CreateCompanyRequest): Promise<Company>;\n update(uniqueId: string, data: UpdateCompanyRequest): Promise<Company>;\n delete(uniqueId: string): Promise<void>;\n}\n\nexport function createCompaniesService(transport: Transport, _config: { appId: string }): CompaniesService {\n return {\n async list(params?: ListCompaniesParams): Promise<PageResult<Company>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.status) queryParams['status'] = params.status;\n if (params?.search) queryParams['search'] = params.search;\n if (params?.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;\n\n const response = await transport.get<unknown>('/companies', { params: queryParams });\n return decodePageResult(response, companyMapper);\n },\n\n async get(uniqueId: string): Promise<Company> {\n const response = await transport.get<unknown>(`/companies/${uniqueId}`);\n return decodeOne(response, companyMapper);\n },\n\n async create(data: CreateCompanyRequest): Promise<Company> {\n const response = await transport.post<unknown>('/companies', {\n data: {\n type: 'Company',\n attributes: {\n code: data.code,\n name: data.name,\n description: data.description,\n legal_name: data.legalName,\n tax_id: data.taxId,\n industry: data.industry,\n website: data.website,\n logo_url: data.logoUrl,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, companyMapper);\n },\n\n async update(uniqueId: string, data: UpdateCompanyRequest): Promise<Company> {\n const response = await transport.put<unknown>(`/companies/${uniqueId}`, {\n data: {\n type: 'Company',\n attributes: {\n name: data.name,\n description: data.description,\n legal_name: data.legalName,\n tax_id: data.taxId,\n industry: data.industry,\n website: data.website,\n logo_url: data.logoUrl,\n enabled: data.enabled,\n status: data.status,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, companyMapper);\n },\n\n async delete(uniqueId: string): Promise<void> {\n await transport.delete(`/companies/${uniqueId}`);\n },\n };\n}\n"],"names":["decodeOne","decodePageResult","companyMapper","createCompaniesService","transport","_config","list","params","queryParams","page","String","perPage","status","search","sortBy","sortOrder","response","get","uniqueId","create","data","post","type","attributes","code","name","description","legal_name","legalName","tax_id","taxId","industry","website","logo_url","logoUrl","payload","update","put","enabled","delete"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,SAAS,EAAEC,gBAAgB,QAAQ,0BAA0B;AAOtE,SAASC,aAAa,QAAQ,4BAA4B;AAU1D,OAAO,SAASC,uBAAuBC,SAAoB,EAAEC,OAA0B;IACrF,OAAO;QACL,MAAMC,MAAKC,MAA4B;YACrC,MAAMC,cAAsC,CAAC;YAC7C,IAAID,0BAAAA,OAAQE,IAAI,EAAED,WAAW,CAAC,OAAO,GAAGE,OAAOH,OAAOE,IAAI;YAC1D,IAAIF,0BAAAA,OAAQI,OAAO,EAAEH,WAAW,CAAC,UAAU,GAAGE,OAAOH,OAAOI,OAAO;YACnE,IAAIJ,0BAAAA,OAAQK,MAAM,EAAEJ,WAAW,CAAC,SAAS,GAAGD,OAAOK,MAAM;YACzD,IAAIL,0BAAAA,OAAQM,MAAM,EAAEL,WAAW,CAAC,SAAS,GAAGD,OAAOM,MAAM;YACzD,IAAIN,0BAAAA,OAAQO,MAAM,EAAEN,WAAW,CAAC,OAAO,GAAGD,OAAOQ,SAAS,KAAK,SAAS,CAAC,CAAC,EAAER,OAAOO,MAAM,CAAC,CAAC,GAAGP,OAAOO,MAAM;YAE3G,MAAME,WAAW,MAAMZ,UAAUa,GAAG,CAAU,cAAc;gBAAEV,QAAQC;YAAY;YAClF,OAAOP,iBAAiBe,UAAUd;QACpC;QAEA,MAAMe,KAAIC,QAAgB;YACxB,MAAMF,WAAW,MAAMZ,UAAUa,GAAG,CAAU,CAAC,WAAW,EAAEC,SAAS,CAAC;YACtE,OAAOlB,UAAUgB,UAAUd;QAC7B;QAEA,MAAMiB,QAAOC,IAA0B;YACrC,MAAMJ,WAAW,MAAMZ,UAAUiB,IAAI,CAAU,cAAc;gBAC3DD,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVC,MAAMJ,KAAKI,IAAI;wBACfC,MAAML,KAAKK,IAAI;wBACfC,aAAaN,KAAKM,WAAW;wBAC7BC,YAAYP,KAAKQ,SAAS;wBAC1BC,QAAQT,KAAKU,KAAK;wBAClBC,UAAUX,KAAKW,QAAQ;wBACvBC,SAASZ,KAAKY,OAAO;wBACrBC,UAAUb,KAAKc,OAAO;wBACtBC,SAASf,KAAKe,OAAO;oBACvB;gBACF;YACF;YACA,OAAOnC,UAAUgB,UAAUd;QAC7B;QAEA,MAAMkC,QAAOlB,QAAgB,EAAEE,IAA0B;YACvD,MAAMJ,WAAW,MAAMZ,UAAUiC,GAAG,CAAU,CAAC,WAAW,EAAEnB,SAAS,CAAC,EAAE;gBACtEE,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVE,MAAML,KAAKK,IAAI;wBACfC,aAAaN,KAAKM,WAAW;wBAC7BC,YAAYP,KAAKQ,SAAS;wBAC1BC,QAAQT,KAAKU,KAAK;wBAClBC,UAAUX,KAAKW,QAAQ;wBACvBC,SAASZ,KAAKY,OAAO;wBACrBC,UAAUb,KAAKc,OAAO;wBACtBI,SAASlB,KAAKkB,OAAO;wBACrB1B,QAAQQ,KAAKR,MAAM;wBACnBuB,SAASf,KAAKe,OAAO;oBACvB;gBACF;YACF;YACA,OAAOnC,UAAUgB,UAAUd;QAC7B;QAEA,MAAMqC,QAAOrB,QAAgB;YAC3B,MAAMd,UAAUmC,MAAM,CAAC,CAAC,WAAW,EAAErB,SAAS,CAAC;QACjD;IACF;AACF"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { decodeOne, decodeMany, decodePageResult } from '@23blocks/jsonapi-codec';
|
|
2
|
+
import { departmentMapper } from '../mappers/department.mapper';
|
|
3
|
+
export function createDepartmentsService(transport, _config) {
|
|
4
|
+
return {
|
|
5
|
+
async list (params) {
|
|
6
|
+
const queryParams = {};
|
|
7
|
+
if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
|
|
8
|
+
if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
|
|
9
|
+
if (params == null ? void 0 : params.companyUniqueId) queryParams['company_unique_id'] = params.companyUniqueId;
|
|
10
|
+
if (params == null ? void 0 : params.parentUniqueId) queryParams['parent_unique_id'] = params.parentUniqueId;
|
|
11
|
+
if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
|
|
12
|
+
if (params == null ? void 0 : params.search) queryParams['search'] = params.search;
|
|
13
|
+
if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
|
|
14
|
+
const response = await transport.get('/departments', {
|
|
15
|
+
params: queryParams
|
|
16
|
+
});
|
|
17
|
+
return decodePageResult(response, departmentMapper);
|
|
18
|
+
},
|
|
19
|
+
async get (uniqueId) {
|
|
20
|
+
const response = await transport.get(`/departments/${uniqueId}`);
|
|
21
|
+
return decodeOne(response, departmentMapper);
|
|
22
|
+
},
|
|
23
|
+
async create (data) {
|
|
24
|
+
const response = await transport.post('/departments', {
|
|
25
|
+
data: {
|
|
26
|
+
type: 'Department',
|
|
27
|
+
attributes: {
|
|
28
|
+
company_unique_id: data.companyUniqueId,
|
|
29
|
+
code: data.code,
|
|
30
|
+
name: data.name,
|
|
31
|
+
description: data.description,
|
|
32
|
+
parent_unique_id: data.parentUniqueId,
|
|
33
|
+
manager_unique_id: data.managerUniqueId,
|
|
34
|
+
payload: data.payload
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
return decodeOne(response, departmentMapper);
|
|
39
|
+
},
|
|
40
|
+
async update (uniqueId, data) {
|
|
41
|
+
const response = await transport.put(`/departments/${uniqueId}`, {
|
|
42
|
+
data: {
|
|
43
|
+
type: 'Department',
|
|
44
|
+
attributes: {
|
|
45
|
+
name: data.name,
|
|
46
|
+
description: data.description,
|
|
47
|
+
parent_unique_id: data.parentUniqueId,
|
|
48
|
+
manager_unique_id: data.managerUniqueId,
|
|
49
|
+
enabled: data.enabled,
|
|
50
|
+
status: data.status,
|
|
51
|
+
payload: data.payload
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
return decodeOne(response, departmentMapper);
|
|
56
|
+
},
|
|
57
|
+
async delete (uniqueId) {
|
|
58
|
+
await transport.delete(`/departments/${uniqueId}`);
|
|
59
|
+
},
|
|
60
|
+
async listByCompany (companyUniqueId) {
|
|
61
|
+
const response = await transport.get(`/companies/${companyUniqueId}/departments`);
|
|
62
|
+
return decodeMany(response, departmentMapper);
|
|
63
|
+
},
|
|
64
|
+
async getHierarchy (companyUniqueId) {
|
|
65
|
+
const response = await transport.get(`/companies/${companyUniqueId}/departments/hierarchy`);
|
|
66
|
+
return decodeMany(response, departmentMapper);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
//# sourceMappingURL=departments.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/services/departments.service.ts"],"sourcesContent":["import type { Transport, PageResult } from '@23blocks/contracts';\nimport { decodeOne, decodeMany, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type {\n Department,\n DepartmentHierarchy,\n CreateDepartmentRequest,\n UpdateDepartmentRequest,\n ListDepartmentsParams,\n} from '../types/department';\nimport { departmentMapper } from '../mappers/department.mapper';\n\nexport interface DepartmentsService {\n list(params?: ListDepartmentsParams): Promise<PageResult<Department>>;\n get(uniqueId: string): Promise<Department>;\n create(data: CreateDepartmentRequest): Promise<Department>;\n update(uniqueId: string, data: UpdateDepartmentRequest): Promise<Department>;\n delete(uniqueId: string): Promise<void>;\n listByCompany(companyUniqueId: string): Promise<Department[]>;\n getHierarchy(companyUniqueId: string): Promise<DepartmentHierarchy[]>;\n}\n\nexport function createDepartmentsService(transport: Transport, _config: { appId: string }): DepartmentsService {\n return {\n async list(params?: ListDepartmentsParams): Promise<PageResult<Department>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.companyUniqueId) queryParams['company_unique_id'] = params.companyUniqueId;\n if (params?.parentUniqueId) queryParams['parent_unique_id'] = params.parentUniqueId;\n if (params?.status) queryParams['status'] = params.status;\n if (params?.search) queryParams['search'] = params.search;\n if (params?.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;\n\n const response = await transport.get<unknown>('/departments', { params: queryParams });\n return decodePageResult(response, departmentMapper);\n },\n\n async get(uniqueId: string): Promise<Department> {\n const response = await transport.get<unknown>(`/departments/${uniqueId}`);\n return decodeOne(response, departmentMapper);\n },\n\n async create(data: CreateDepartmentRequest): Promise<Department> {\n const response = await transport.post<unknown>('/departments', {\n data: {\n type: 'Department',\n attributes: {\n company_unique_id: data.companyUniqueId,\n code: data.code,\n name: data.name,\n description: data.description,\n parent_unique_id: data.parentUniqueId,\n manager_unique_id: data.managerUniqueId,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, departmentMapper);\n },\n\n async update(uniqueId: string, data: UpdateDepartmentRequest): Promise<Department> {\n const response = await transport.put<unknown>(`/departments/${uniqueId}`, {\n data: {\n type: 'Department',\n attributes: {\n name: data.name,\n description: data.description,\n parent_unique_id: data.parentUniqueId,\n manager_unique_id: data.managerUniqueId,\n enabled: data.enabled,\n status: data.status,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, departmentMapper);\n },\n\n async delete(uniqueId: string): Promise<void> {\n await transport.delete(`/departments/${uniqueId}`);\n },\n\n async listByCompany(companyUniqueId: string): Promise<Department[]> {\n const response = await transport.get<unknown>(`/companies/${companyUniqueId}/departments`);\n return decodeMany(response, departmentMapper);\n },\n\n async getHierarchy(companyUniqueId: string): Promise<DepartmentHierarchy[]> {\n const response = await transport.get<unknown>(`/companies/${companyUniqueId}/departments/hierarchy`);\n return decodeMany(response, departmentMapper) as Promise<DepartmentHierarchy[]>;\n },\n };\n}\n"],"names":["decodeOne","decodeMany","decodePageResult","departmentMapper","createDepartmentsService","transport","_config","list","params","queryParams","page","String","perPage","companyUniqueId","parentUniqueId","status","search","sortBy","sortOrder","response","get","uniqueId","create","data","post","type","attributes","company_unique_id","code","name","description","parent_unique_id","manager_unique_id","managerUniqueId","payload","update","put","enabled","delete","listByCompany","getHierarchy"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,SAAS,EAAEC,UAAU,EAAEC,gBAAgB,QAAQ,0BAA0B;AAQlF,SAASC,gBAAgB,QAAQ,+BAA+B;AAYhE,OAAO,SAASC,yBAAyBC,SAAoB,EAAEC,OAA0B;IACvF,OAAO;QACL,MAAMC,MAAKC,MAA8B;YACvC,MAAMC,cAAsC,CAAC;YAC7C,IAAID,0BAAAA,OAAQE,IAAI,EAAED,WAAW,CAAC,OAAO,GAAGE,OAAOH,OAAOE,IAAI;YAC1D,IAAIF,0BAAAA,OAAQI,OAAO,EAAEH,WAAW,CAAC,UAAU,GAAGE,OAAOH,OAAOI,OAAO;YACnE,IAAIJ,0BAAAA,OAAQK,eAAe,EAAEJ,WAAW,CAAC,oBAAoB,GAAGD,OAAOK,eAAe;YACtF,IAAIL,0BAAAA,OAAQM,cAAc,EAAEL,WAAW,CAAC,mBAAmB,GAAGD,OAAOM,cAAc;YACnF,IAAIN,0BAAAA,OAAQO,MAAM,EAAEN,WAAW,CAAC,SAAS,GAAGD,OAAOO,MAAM;YACzD,IAAIP,0BAAAA,OAAQQ,MAAM,EAAEP,WAAW,CAAC,SAAS,GAAGD,OAAOQ,MAAM;YACzD,IAAIR,0BAAAA,OAAQS,MAAM,EAAER,WAAW,CAAC,OAAO,GAAGD,OAAOU,SAAS,KAAK,SAAS,CAAC,CAAC,EAAEV,OAAOS,MAAM,CAAC,CAAC,GAAGT,OAAOS,MAAM;YAE3G,MAAME,WAAW,MAAMd,UAAUe,GAAG,CAAU,gBAAgB;gBAAEZ,QAAQC;YAAY;YACpF,OAAOP,iBAAiBiB,UAAUhB;QACpC;QAEA,MAAMiB,KAAIC,QAAgB;YACxB,MAAMF,WAAW,MAAMd,UAAUe,GAAG,CAAU,CAAC,aAAa,EAAEC,SAAS,CAAC;YACxE,OAAOrB,UAAUmB,UAAUhB;QAC7B;QAEA,MAAMmB,QAAOC,IAA6B;YACxC,MAAMJ,WAAW,MAAMd,UAAUmB,IAAI,CAAU,gBAAgB;gBAC7DD,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVC,mBAAmBJ,KAAKV,eAAe;wBACvCe,MAAML,KAAKK,IAAI;wBACfC,MAAMN,KAAKM,IAAI;wBACfC,aAAaP,KAAKO,WAAW;wBAC7BC,kBAAkBR,KAAKT,cAAc;wBACrCkB,mBAAmBT,KAAKU,eAAe;wBACvCC,SAASX,KAAKW,OAAO;oBACvB;gBACF;YACF;YACA,OAAOlC,UAAUmB,UAAUhB;QAC7B;QAEA,MAAMgC,QAAOd,QAAgB,EAAEE,IAA6B;YAC1D,MAAMJ,WAAW,MAAMd,UAAU+B,GAAG,CAAU,CAAC,aAAa,EAAEf,SAAS,CAAC,EAAE;gBACxEE,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVG,MAAMN,KAAKM,IAAI;wBACfC,aAAaP,KAAKO,WAAW;wBAC7BC,kBAAkBR,KAAKT,cAAc;wBACrCkB,mBAAmBT,KAAKU,eAAe;wBACvCI,SAASd,KAAKc,OAAO;wBACrBtB,QAAQQ,KAAKR,MAAM;wBACnBmB,SAASX,KAAKW,OAAO;oBACvB;gBACF;YACF;YACA,OAAOlC,UAAUmB,UAAUhB;QAC7B;QAEA,MAAMmC,QAAOjB,QAAgB;YAC3B,MAAMhB,UAAUiC,MAAM,CAAC,CAAC,aAAa,EAAEjB,SAAS,CAAC;QACnD;QAEA,MAAMkB,eAAc1B,eAAuB;YACzC,MAAMM,WAAW,MAAMd,UAAUe,GAAG,CAAU,CAAC,WAAW,EAAEP,gBAAgB,YAAY,CAAC;YACzF,OAAOZ,WAAWkB,UAAUhB;QAC9B;QAEA,MAAMqC,cAAa3B,eAAuB;YACxC,MAAMM,WAAW,MAAMd,UAAUe,GAAG,CAAU,CAAC,WAAW,EAAEP,gBAAgB,sBAAsB,CAAC;YACnG,OAAOZ,WAAWkB,UAAUhB;QAC9B;IACF;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/services/index.ts"],"sourcesContent":["export * from './companies.service';\nexport * from './departments.service';\nexport * from './teams.service';\nexport * from './team-members.service';\nexport * from './quarters.service';\n"],"names":[],"rangeMappings":";;;;","mappings":"AAAA,cAAc,sBAAsB;AACpC,cAAc,wBAAwB;AACtC,cAAc,kBAAkB;AAChC,cAAc,yBAAyB;AACvC,cAAc,qBAAqB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';
|
|
2
|
+
import { quarterMapper } from '../mappers/quarter.mapper';
|
|
3
|
+
export function createQuartersService(transport, _config) {
|
|
4
|
+
return {
|
|
5
|
+
async list (params) {
|
|
6
|
+
const queryParams = {};
|
|
7
|
+
if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
|
|
8
|
+
if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
|
|
9
|
+
if (params == null ? void 0 : params.companyUniqueId) queryParams['company_unique_id'] = params.companyUniqueId;
|
|
10
|
+
if (params == null ? void 0 : params.year) queryParams['year'] = String(params.year);
|
|
11
|
+
if (params == null ? void 0 : params.quarter) queryParams['quarter'] = String(params.quarter);
|
|
12
|
+
if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
|
|
13
|
+
if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
|
|
14
|
+
const response = await transport.get('/quarters', {
|
|
15
|
+
params: queryParams
|
|
16
|
+
});
|
|
17
|
+
return decodePageResult(response, quarterMapper);
|
|
18
|
+
},
|
|
19
|
+
async get (uniqueId) {
|
|
20
|
+
const response = await transport.get(`/quarters/${uniqueId}`);
|
|
21
|
+
return decodeOne(response, quarterMapper);
|
|
22
|
+
},
|
|
23
|
+
async create (data) {
|
|
24
|
+
const response = await transport.post('/quarters', {
|
|
25
|
+
data: {
|
|
26
|
+
type: 'Quarter',
|
|
27
|
+
attributes: {
|
|
28
|
+
company_unique_id: data.companyUniqueId,
|
|
29
|
+
name: data.name,
|
|
30
|
+
year: data.year,
|
|
31
|
+
quarter: data.quarter,
|
|
32
|
+
start_date: data.startDate,
|
|
33
|
+
end_date: data.endDate,
|
|
34
|
+
payload: data.payload
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
return decodeOne(response, quarterMapper);
|
|
39
|
+
},
|
|
40
|
+
async update (uniqueId, data) {
|
|
41
|
+
const response = await transport.put(`/quarters/${uniqueId}`, {
|
|
42
|
+
data: {
|
|
43
|
+
type: 'Quarter',
|
|
44
|
+
attributes: {
|
|
45
|
+
name: data.name,
|
|
46
|
+
start_date: data.startDate,
|
|
47
|
+
end_date: data.endDate,
|
|
48
|
+
enabled: data.enabled,
|
|
49
|
+
status: data.status,
|
|
50
|
+
payload: data.payload
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
return decodeOne(response, quarterMapper);
|
|
55
|
+
},
|
|
56
|
+
async delete (uniqueId) {
|
|
57
|
+
await transport.delete(`/quarters/${uniqueId}`);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
//# sourceMappingURL=quarters.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/services/quarters.service.ts"],"sourcesContent":["import type { Transport, PageResult } from '@23blocks/contracts';\nimport { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type {\n Quarter,\n CreateQuarterRequest,\n UpdateQuarterRequest,\n ListQuartersParams,\n} from '../types/quarter';\nimport { quarterMapper } from '../mappers/quarter.mapper';\n\nexport interface QuartersService {\n list(params?: ListQuartersParams): Promise<PageResult<Quarter>>;\n get(uniqueId: string): Promise<Quarter>;\n create(data: CreateQuarterRequest): Promise<Quarter>;\n update(uniqueId: string, data: UpdateQuarterRequest): Promise<Quarter>;\n delete(uniqueId: string): Promise<void>;\n}\n\nexport function createQuartersService(transport: Transport, _config: { appId: string }): QuartersService {\n return {\n async list(params?: ListQuartersParams): Promise<PageResult<Quarter>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.companyUniqueId) queryParams['company_unique_id'] = params.companyUniqueId;\n if (params?.year) queryParams['year'] = String(params.year);\n if (params?.quarter) queryParams['quarter'] = String(params.quarter);\n if (params?.status) queryParams['status'] = params.status;\n if (params?.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;\n\n const response = await transport.get<unknown>('/quarters', { params: queryParams });\n return decodePageResult(response, quarterMapper);\n },\n\n async get(uniqueId: string): Promise<Quarter> {\n const response = await transport.get<unknown>(`/quarters/${uniqueId}`);\n return decodeOne(response, quarterMapper);\n },\n\n async create(data: CreateQuarterRequest): Promise<Quarter> {\n const response = await transport.post<unknown>('/quarters', {\n data: {\n type: 'Quarter',\n attributes: {\n company_unique_id: data.companyUniqueId,\n name: data.name,\n year: data.year,\n quarter: data.quarter,\n start_date: data.startDate,\n end_date: data.endDate,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, quarterMapper);\n },\n\n async update(uniqueId: string, data: UpdateQuarterRequest): Promise<Quarter> {\n const response = await transport.put<unknown>(`/quarters/${uniqueId}`, {\n data: {\n type: 'Quarter',\n attributes: {\n name: data.name,\n start_date: data.startDate,\n end_date: data.endDate,\n enabled: data.enabled,\n status: data.status,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, quarterMapper);\n },\n\n async delete(uniqueId: string): Promise<void> {\n await transport.delete(`/quarters/${uniqueId}`);\n },\n };\n}\n"],"names":["decodeOne","decodePageResult","quarterMapper","createQuartersService","transport","_config","list","params","queryParams","page","String","perPage","companyUniqueId","year","quarter","status","sortBy","sortOrder","response","get","uniqueId","create","data","post","type","attributes","company_unique_id","name","start_date","startDate","end_date","endDate","payload","update","put","enabled","delete"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,SAAS,EAAEC,gBAAgB,QAAQ,0BAA0B;AAOtE,SAASC,aAAa,QAAQ,4BAA4B;AAU1D,OAAO,SAASC,sBAAsBC,SAAoB,EAAEC,OAA0B;IACpF,OAAO;QACL,MAAMC,MAAKC,MAA2B;YACpC,MAAMC,cAAsC,CAAC;YAC7C,IAAID,0BAAAA,OAAQE,IAAI,EAAED,WAAW,CAAC,OAAO,GAAGE,OAAOH,OAAOE,IAAI;YAC1D,IAAIF,0BAAAA,OAAQI,OAAO,EAAEH,WAAW,CAAC,UAAU,GAAGE,OAAOH,OAAOI,OAAO;YACnE,IAAIJ,0BAAAA,OAAQK,eAAe,EAAEJ,WAAW,CAAC,oBAAoB,GAAGD,OAAOK,eAAe;YACtF,IAAIL,0BAAAA,OAAQM,IAAI,EAAEL,WAAW,CAAC,OAAO,GAAGE,OAAOH,OAAOM,IAAI;YAC1D,IAAIN,0BAAAA,OAAQO,OAAO,EAAEN,WAAW,CAAC,UAAU,GAAGE,OAAOH,OAAOO,OAAO;YACnE,IAAIP,0BAAAA,OAAQQ,MAAM,EAAEP,WAAW,CAAC,SAAS,GAAGD,OAAOQ,MAAM;YACzD,IAAIR,0BAAAA,OAAQS,MAAM,EAAER,WAAW,CAAC,OAAO,GAAGD,OAAOU,SAAS,KAAK,SAAS,CAAC,CAAC,EAAEV,OAAOS,MAAM,CAAC,CAAC,GAAGT,OAAOS,MAAM;YAE3G,MAAME,WAAW,MAAMd,UAAUe,GAAG,CAAU,aAAa;gBAAEZ,QAAQC;YAAY;YACjF,OAAOP,iBAAiBiB,UAAUhB;QACpC;QAEA,MAAMiB,KAAIC,QAAgB;YACxB,MAAMF,WAAW,MAAMd,UAAUe,GAAG,CAAU,CAAC,UAAU,EAAEC,SAAS,CAAC;YACrE,OAAOpB,UAAUkB,UAAUhB;QAC7B;QAEA,MAAMmB,QAAOC,IAA0B;YACrC,MAAMJ,WAAW,MAAMd,UAAUmB,IAAI,CAAU,aAAa;gBAC1DD,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVC,mBAAmBJ,KAAKV,eAAe;wBACvCe,MAAML,KAAKK,IAAI;wBACfd,MAAMS,KAAKT,IAAI;wBACfC,SAASQ,KAAKR,OAAO;wBACrBc,YAAYN,KAAKO,SAAS;wBAC1BC,UAAUR,KAAKS,OAAO;wBACtBC,SAASV,KAAKU,OAAO;oBACvB;gBACF;YACF;YACA,OAAOhC,UAAUkB,UAAUhB;QAC7B;QAEA,MAAM+B,QAAOb,QAAgB,EAAEE,IAA0B;YACvD,MAAMJ,WAAW,MAAMd,UAAU8B,GAAG,CAAU,CAAC,UAAU,EAAEd,SAAS,CAAC,EAAE;gBACrEE,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVE,MAAML,KAAKK,IAAI;wBACfC,YAAYN,KAAKO,SAAS;wBAC1BC,UAAUR,KAAKS,OAAO;wBACtBI,SAASb,KAAKa,OAAO;wBACrBpB,QAAQO,KAAKP,MAAM;wBACnBiB,SAASV,KAAKU,OAAO;oBACvB;gBACF;YACF;YACA,OAAOhC,UAAUkB,UAAUhB;QAC7B;QAEA,MAAMkC,QAAOhB,QAAgB;YAC3B,MAAMhB,UAAUgC,MAAM,CAAC,CAAC,UAAU,EAAEhB,SAAS,CAAC;QAChD;IACF;AACF"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { decodeOne, decodeMany, decodePageResult } from '@23blocks/jsonapi-codec';
|
|
2
|
+
import { teamMemberMapper } from '../mappers/team-member.mapper';
|
|
3
|
+
export function createTeamMembersService(transport, _config) {
|
|
4
|
+
return {
|
|
5
|
+
async list (params) {
|
|
6
|
+
const queryParams = {};
|
|
7
|
+
if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
|
|
8
|
+
if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
|
|
9
|
+
if (params == null ? void 0 : params.teamUniqueId) queryParams['team_unique_id'] = params.teamUniqueId;
|
|
10
|
+
if (params == null ? void 0 : params.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;
|
|
11
|
+
if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
|
|
12
|
+
if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
|
|
13
|
+
const response = await transport.get('/team_members', {
|
|
14
|
+
params: queryParams
|
|
15
|
+
});
|
|
16
|
+
return decodePageResult(response, teamMemberMapper);
|
|
17
|
+
},
|
|
18
|
+
async get (uniqueId) {
|
|
19
|
+
const response = await transport.get(`/team_members/${uniqueId}`);
|
|
20
|
+
return decodeOne(response, teamMemberMapper);
|
|
21
|
+
},
|
|
22
|
+
async add (data) {
|
|
23
|
+
const response = await transport.post('/team_members', {
|
|
24
|
+
data: {
|
|
25
|
+
type: 'TeamMember',
|
|
26
|
+
attributes: {
|
|
27
|
+
team_unique_id: data.teamUniqueId,
|
|
28
|
+
user_unique_id: data.userUniqueId,
|
|
29
|
+
role: data.role,
|
|
30
|
+
payload: data.payload
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return decodeOne(response, teamMemberMapper);
|
|
35
|
+
},
|
|
36
|
+
async update (uniqueId, data) {
|
|
37
|
+
const response = await transport.put(`/team_members/${uniqueId}`, {
|
|
38
|
+
data: {
|
|
39
|
+
type: 'TeamMember',
|
|
40
|
+
attributes: {
|
|
41
|
+
role: data.role,
|
|
42
|
+
enabled: data.enabled,
|
|
43
|
+
status: data.status,
|
|
44
|
+
payload: data.payload
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
return decodeOne(response, teamMemberMapper);
|
|
49
|
+
},
|
|
50
|
+
async remove (uniqueId) {
|
|
51
|
+
await transport.delete(`/team_members/${uniqueId}`);
|
|
52
|
+
},
|
|
53
|
+
async listByTeam (teamUniqueId) {
|
|
54
|
+
const response = await transport.get(`/teams/${teamUniqueId}/members`);
|
|
55
|
+
return decodeMany(response, teamMemberMapper);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
//# sourceMappingURL=team-members.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/services/team-members.service.ts"],"sourcesContent":["import type { Transport, PageResult } from '@23blocks/contracts';\nimport { decodeOne, decodeMany, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type {\n TeamMember,\n AddTeamMemberRequest,\n UpdateTeamMemberRequest,\n ListTeamMembersParams,\n} from '../types/team-member';\nimport { teamMemberMapper } from '../mappers/team-member.mapper';\n\nexport interface TeamMembersService {\n list(params?: ListTeamMembersParams): Promise<PageResult<TeamMember>>;\n get(uniqueId: string): Promise<TeamMember>;\n add(data: AddTeamMemberRequest): Promise<TeamMember>;\n update(uniqueId: string, data: UpdateTeamMemberRequest): Promise<TeamMember>;\n remove(uniqueId: string): Promise<void>;\n listByTeam(teamUniqueId: string): Promise<TeamMember[]>;\n}\n\nexport function createTeamMembersService(transport: Transport, _config: { appId: string }): TeamMembersService {\n return {\n async list(params?: ListTeamMembersParams): Promise<PageResult<TeamMember>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.teamUniqueId) queryParams['team_unique_id'] = params.teamUniqueId;\n if (params?.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;\n if (params?.status) queryParams['status'] = params.status;\n if (params?.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;\n\n const response = await transport.get<unknown>('/team_members', { params: queryParams });\n return decodePageResult(response, teamMemberMapper);\n },\n\n async get(uniqueId: string): Promise<TeamMember> {\n const response = await transport.get<unknown>(`/team_members/${uniqueId}`);\n return decodeOne(response, teamMemberMapper);\n },\n\n async add(data: AddTeamMemberRequest): Promise<TeamMember> {\n const response = await transport.post<unknown>('/team_members', {\n data: {\n type: 'TeamMember',\n attributes: {\n team_unique_id: data.teamUniqueId,\n user_unique_id: data.userUniqueId,\n role: data.role,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, teamMemberMapper);\n },\n\n async update(uniqueId: string, data: UpdateTeamMemberRequest): Promise<TeamMember> {\n const response = await transport.put<unknown>(`/team_members/${uniqueId}`, {\n data: {\n type: 'TeamMember',\n attributes: {\n role: data.role,\n enabled: data.enabled,\n status: data.status,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, teamMemberMapper);\n },\n\n async remove(uniqueId: string): Promise<void> {\n await transport.delete(`/team_members/${uniqueId}`);\n },\n\n async listByTeam(teamUniqueId: string): Promise<TeamMember[]> {\n const response = await transport.get<unknown>(`/teams/${teamUniqueId}/members`);\n return decodeMany(response, teamMemberMapper);\n },\n };\n}\n"],"names":["decodeOne","decodeMany","decodePageResult","teamMemberMapper","createTeamMembersService","transport","_config","list","params","queryParams","page","String","perPage","teamUniqueId","userUniqueId","status","sortBy","sortOrder","response","get","uniqueId","add","data","post","type","attributes","team_unique_id","user_unique_id","role","payload","update","put","enabled","remove","delete","listByTeam"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,SAAS,EAAEC,UAAU,EAAEC,gBAAgB,QAAQ,0BAA0B;AAOlF,SAASC,gBAAgB,QAAQ,gCAAgC;AAWjE,OAAO,SAASC,yBAAyBC,SAAoB,EAAEC,OAA0B;IACvF,OAAO;QACL,MAAMC,MAAKC,MAA8B;YACvC,MAAMC,cAAsC,CAAC;YAC7C,IAAID,0BAAAA,OAAQE,IAAI,EAAED,WAAW,CAAC,OAAO,GAAGE,OAAOH,OAAOE,IAAI;YAC1D,IAAIF,0BAAAA,OAAQI,OAAO,EAAEH,WAAW,CAAC,UAAU,GAAGE,OAAOH,OAAOI,OAAO;YACnE,IAAIJ,0BAAAA,OAAQK,YAAY,EAAEJ,WAAW,CAAC,iBAAiB,GAAGD,OAAOK,YAAY;YAC7E,IAAIL,0BAAAA,OAAQM,YAAY,EAAEL,WAAW,CAAC,iBAAiB,GAAGD,OAAOM,YAAY;YAC7E,IAAIN,0BAAAA,OAAQO,MAAM,EAAEN,WAAW,CAAC,SAAS,GAAGD,OAAOO,MAAM;YACzD,IAAIP,0BAAAA,OAAQQ,MAAM,EAAEP,WAAW,CAAC,OAAO,GAAGD,OAAOS,SAAS,KAAK,SAAS,CAAC,CAAC,EAAET,OAAOQ,MAAM,CAAC,CAAC,GAAGR,OAAOQ,MAAM;YAE3G,MAAME,WAAW,MAAMb,UAAUc,GAAG,CAAU,iBAAiB;gBAAEX,QAAQC;YAAY;YACrF,OAAOP,iBAAiBgB,UAAUf;QACpC;QAEA,MAAMgB,KAAIC,QAAgB;YACxB,MAAMF,WAAW,MAAMb,UAAUc,GAAG,CAAU,CAAC,cAAc,EAAEC,SAAS,CAAC;YACzE,OAAOpB,UAAUkB,UAAUf;QAC7B;QAEA,MAAMkB,KAAIC,IAA0B;YAClC,MAAMJ,WAAW,MAAMb,UAAUkB,IAAI,CAAU,iBAAiB;gBAC9DD,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVC,gBAAgBJ,KAAKT,YAAY;wBACjCc,gBAAgBL,KAAKR,YAAY;wBACjCc,MAAMN,KAAKM,IAAI;wBACfC,SAASP,KAAKO,OAAO;oBACvB;gBACF;YACF;YACA,OAAO7B,UAAUkB,UAAUf;QAC7B;QAEA,MAAM2B,QAAOV,QAAgB,EAAEE,IAA6B;YAC1D,MAAMJ,WAAW,MAAMb,UAAU0B,GAAG,CAAU,CAAC,cAAc,EAAEX,SAAS,CAAC,EAAE;gBACzEE,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVG,MAAMN,KAAKM,IAAI;wBACfI,SAASV,KAAKU,OAAO;wBACrBjB,QAAQO,KAAKP,MAAM;wBACnBc,SAASP,KAAKO,OAAO;oBACvB;gBACF;YACF;YACA,OAAO7B,UAAUkB,UAAUf;QAC7B;QAEA,MAAM8B,QAAOb,QAAgB;YAC3B,MAAMf,UAAU6B,MAAM,CAAC,CAAC,cAAc,EAAEd,SAAS,CAAC;QACpD;QAEA,MAAMe,YAAWtB,YAAoB;YACnC,MAAMK,WAAW,MAAMb,UAAUc,GAAG,CAAU,CAAC,OAAO,EAAEN,aAAa,QAAQ,CAAC;YAC9E,OAAOZ,WAAWiB,UAAUf;QAC9B;IACF;AACF"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { decodeOne, decodeMany, decodePageResult } from '@23blocks/jsonapi-codec';
|
|
2
|
+
import { teamMapper } from '../mappers/team.mapper';
|
|
3
|
+
export function createTeamsService(transport, _config) {
|
|
4
|
+
return {
|
|
5
|
+
async list (params) {
|
|
6
|
+
const queryParams = {};
|
|
7
|
+
if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
|
|
8
|
+
if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
|
|
9
|
+
if (params == null ? void 0 : params.departmentUniqueId) queryParams['department_unique_id'] = params.departmentUniqueId;
|
|
10
|
+
if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
|
|
11
|
+
if (params == null ? void 0 : params.search) queryParams['search'] = params.search;
|
|
12
|
+
if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
|
|
13
|
+
const response = await transport.get('/teams', {
|
|
14
|
+
params: queryParams
|
|
15
|
+
});
|
|
16
|
+
return decodePageResult(response, teamMapper);
|
|
17
|
+
},
|
|
18
|
+
async get (uniqueId) {
|
|
19
|
+
const response = await transport.get(`/teams/${uniqueId}`);
|
|
20
|
+
return decodeOne(response, teamMapper);
|
|
21
|
+
},
|
|
22
|
+
async create (data) {
|
|
23
|
+
const response = await transport.post('/teams', {
|
|
24
|
+
data: {
|
|
25
|
+
type: 'Team',
|
|
26
|
+
attributes: {
|
|
27
|
+
department_unique_id: data.departmentUniqueId,
|
|
28
|
+
code: data.code,
|
|
29
|
+
name: data.name,
|
|
30
|
+
description: data.description,
|
|
31
|
+
leader_unique_id: data.leaderUniqueId,
|
|
32
|
+
payload: data.payload
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
return decodeOne(response, teamMapper);
|
|
37
|
+
},
|
|
38
|
+
async update (uniqueId, data) {
|
|
39
|
+
const response = await transport.put(`/teams/${uniqueId}`, {
|
|
40
|
+
data: {
|
|
41
|
+
type: 'Team',
|
|
42
|
+
attributes: {
|
|
43
|
+
name: data.name,
|
|
44
|
+
description: data.description,
|
|
45
|
+
leader_unique_id: data.leaderUniqueId,
|
|
46
|
+
enabled: data.enabled,
|
|
47
|
+
status: data.status,
|
|
48
|
+
payload: data.payload
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
return decodeOne(response, teamMapper);
|
|
53
|
+
},
|
|
54
|
+
async delete (uniqueId) {
|
|
55
|
+
await transport.delete(`/teams/${uniqueId}`);
|
|
56
|
+
},
|
|
57
|
+
async listByDepartment (departmentUniqueId) {
|
|
58
|
+
const response = await transport.get(`/departments/${departmentUniqueId}/teams`);
|
|
59
|
+
return decodeMany(response, teamMapper);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=teams.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/services/teams.service.ts"],"sourcesContent":["import type { Transport, PageResult } from '@23blocks/contracts';\nimport { decodeOne, decodeMany, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type {\n Team,\n CreateTeamRequest,\n UpdateTeamRequest,\n ListTeamsParams,\n} from '../types/team';\nimport { teamMapper } from '../mappers/team.mapper';\n\nexport interface TeamsService {\n list(params?: ListTeamsParams): Promise<PageResult<Team>>;\n get(uniqueId: string): Promise<Team>;\n create(data: CreateTeamRequest): Promise<Team>;\n update(uniqueId: string, data: UpdateTeamRequest): Promise<Team>;\n delete(uniqueId: string): Promise<void>;\n listByDepartment(departmentUniqueId: string): Promise<Team[]>;\n}\n\nexport function createTeamsService(transport: Transport, _config: { appId: string }): TeamsService {\n return {\n async list(params?: ListTeamsParams): Promise<PageResult<Team>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.departmentUniqueId) queryParams['department_unique_id'] = params.departmentUniqueId;\n if (params?.status) queryParams['status'] = params.status;\n if (params?.search) queryParams['search'] = params.search;\n if (params?.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;\n\n const response = await transport.get<unknown>('/teams', { params: queryParams });\n return decodePageResult(response, teamMapper);\n },\n\n async get(uniqueId: string): Promise<Team> {\n const response = await transport.get<unknown>(`/teams/${uniqueId}`);\n return decodeOne(response, teamMapper);\n },\n\n async create(data: CreateTeamRequest): Promise<Team> {\n const response = await transport.post<unknown>('/teams', {\n data: {\n type: 'Team',\n attributes: {\n department_unique_id: data.departmentUniqueId,\n code: data.code,\n name: data.name,\n description: data.description,\n leader_unique_id: data.leaderUniqueId,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, teamMapper);\n },\n\n async update(uniqueId: string, data: UpdateTeamRequest): Promise<Team> {\n const response = await transport.put<unknown>(`/teams/${uniqueId}`, {\n data: {\n type: 'Team',\n attributes: {\n name: data.name,\n description: data.description,\n leader_unique_id: data.leaderUniqueId,\n enabled: data.enabled,\n status: data.status,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, teamMapper);\n },\n\n async delete(uniqueId: string): Promise<void> {\n await transport.delete(`/teams/${uniqueId}`);\n },\n\n async listByDepartment(departmentUniqueId: string): Promise<Team[]> {\n const response = await transport.get<unknown>(`/departments/${departmentUniqueId}/teams`);\n return decodeMany(response, teamMapper);\n },\n };\n}\n"],"names":["decodeOne","decodeMany","decodePageResult","teamMapper","createTeamsService","transport","_config","list","params","queryParams","page","String","perPage","departmentUniqueId","status","search","sortBy","sortOrder","response","get","uniqueId","create","data","post","type","attributes","department_unique_id","code","name","description","leader_unique_id","leaderUniqueId","payload","update","put","enabled","delete","listByDepartment"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,SAAS,EAAEC,UAAU,EAAEC,gBAAgB,QAAQ,0BAA0B;AAOlF,SAASC,UAAU,QAAQ,yBAAyB;AAWpD,OAAO,SAASC,mBAAmBC,SAAoB,EAAEC,OAA0B;IACjF,OAAO;QACL,MAAMC,MAAKC,MAAwB;YACjC,MAAMC,cAAsC,CAAC;YAC7C,IAAID,0BAAAA,OAAQE,IAAI,EAAED,WAAW,CAAC,OAAO,GAAGE,OAAOH,OAAOE,IAAI;YAC1D,IAAIF,0BAAAA,OAAQI,OAAO,EAAEH,WAAW,CAAC,UAAU,GAAGE,OAAOH,OAAOI,OAAO;YACnE,IAAIJ,0BAAAA,OAAQK,kBAAkB,EAAEJ,WAAW,CAAC,uBAAuB,GAAGD,OAAOK,kBAAkB;YAC/F,IAAIL,0BAAAA,OAAQM,MAAM,EAAEL,WAAW,CAAC,SAAS,GAAGD,OAAOM,MAAM;YACzD,IAAIN,0BAAAA,OAAQO,MAAM,EAAEN,WAAW,CAAC,SAAS,GAAGD,OAAOO,MAAM;YACzD,IAAIP,0BAAAA,OAAQQ,MAAM,EAAEP,WAAW,CAAC,OAAO,GAAGD,OAAOS,SAAS,KAAK,SAAS,CAAC,CAAC,EAAET,OAAOQ,MAAM,CAAC,CAAC,GAAGR,OAAOQ,MAAM;YAE3G,MAAME,WAAW,MAAMb,UAAUc,GAAG,CAAU,UAAU;gBAAEX,QAAQC;YAAY;YAC9E,OAAOP,iBAAiBgB,UAAUf;QACpC;QAEA,MAAMgB,KAAIC,QAAgB;YACxB,MAAMF,WAAW,MAAMb,UAAUc,GAAG,CAAU,CAAC,OAAO,EAAEC,SAAS,CAAC;YAClE,OAAOpB,UAAUkB,UAAUf;QAC7B;QAEA,MAAMkB,QAAOC,IAAuB;YAClC,MAAMJ,WAAW,MAAMb,UAAUkB,IAAI,CAAU,UAAU;gBACvDD,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVC,sBAAsBJ,KAAKT,kBAAkB;wBAC7Cc,MAAML,KAAKK,IAAI;wBACfC,MAAMN,KAAKM,IAAI;wBACfC,aAAaP,KAAKO,WAAW;wBAC7BC,kBAAkBR,KAAKS,cAAc;wBACrCC,SAASV,KAAKU,OAAO;oBACvB;gBACF;YACF;YACA,OAAOhC,UAAUkB,UAAUf;QAC7B;QAEA,MAAM8B,QAAOb,QAAgB,EAAEE,IAAuB;YACpD,MAAMJ,WAAW,MAAMb,UAAU6B,GAAG,CAAU,CAAC,OAAO,EAAEd,SAAS,CAAC,EAAE;gBAClEE,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVG,MAAMN,KAAKM,IAAI;wBACfC,aAAaP,KAAKO,WAAW;wBAC7BC,kBAAkBR,KAAKS,cAAc;wBACrCI,SAASb,KAAKa,OAAO;wBACrBrB,QAAQQ,KAAKR,MAAM;wBACnBkB,SAASV,KAAKU,OAAO;oBACvB;gBACF;YACF;YACA,OAAOhC,UAAUkB,UAAUf;QAC7B;QAEA,MAAMiC,QAAOhB,QAAgB;YAC3B,MAAMf,UAAU+B,MAAM,CAAC,CAAC,OAAO,EAAEhB,SAAS,CAAC;QAC7C;QAEA,MAAMiB,kBAAiBxB,kBAA0B;YAC/C,MAAMK,WAAW,MAAMb,UAAUc,GAAG,CAAU,CAAC,aAAa,EAAEN,mBAAmB,MAAM,CAAC;YACxF,OAAOZ,WAAWiB,UAAUf;QAC9B;IACF;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/types/company.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\nexport interface Company extends IdentityCore {\n code: string;\n name: string;\n description?: string;\n legalName?: string;\n taxId?: string;\n industry?: string;\n website?: string;\n logoUrl?: string;\n status: EntityStatus;\n enabled: boolean;\n payload?: Record<string, unknown>;\n}\n\nexport interface CreateCompanyRequest {\n code: string;\n name: string;\n description?: string;\n legalName?: string;\n taxId?: string;\n industry?: string;\n website?: string;\n logoUrl?: string;\n payload?: Record<string, unknown>;\n}\n\nexport interface UpdateCompanyRequest {\n name?: string;\n description?: string;\n legalName?: string;\n taxId?: string;\n industry?: string;\n website?: string;\n logoUrl?: string;\n enabled?: boolean;\n status?: EntityStatus;\n payload?: Record<string, unknown>;\n}\n\nexport interface ListCompaniesParams {\n page?: number;\n perPage?: number;\n status?: EntityStatus;\n search?: string;\n sortBy?: string;\n sortOrder?: 'asc' | 'desc';\n}\n"],"names":[],"rangeMappings":"","mappings":"AAyCA,WAOC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/types/department.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\nexport interface Department extends IdentityCore {\n companyUniqueId: string;\n code: string;\n name: string;\n description?: string;\n parentUniqueId?: string;\n managerUniqueId?: string;\n status: EntityStatus;\n enabled: boolean;\n payload?: Record<string, unknown>;\n}\n\nexport interface CreateDepartmentRequest {\n companyUniqueId: string;\n code: string;\n name: string;\n description?: string;\n parentUniqueId?: string;\n managerUniqueId?: string;\n payload?: Record<string, unknown>;\n}\n\nexport interface UpdateDepartmentRequest {\n name?: string;\n description?: string;\n parentUniqueId?: string;\n managerUniqueId?: string;\n enabled?: boolean;\n status?: EntityStatus;\n payload?: Record<string, unknown>;\n}\n\nexport interface ListDepartmentsParams {\n page?: number;\n perPage?: number;\n companyUniqueId?: string;\n parentUniqueId?: string;\n status?: EntityStatus;\n search?: string;\n sortBy?: string;\n sortOrder?: 'asc' | 'desc';\n}\n\nexport interface DepartmentHierarchy extends Department {\n children?: DepartmentHierarchy[];\n}\n"],"names":[],"rangeMappings":"","mappings":"AA6CA,WAEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/types/index.ts"],"sourcesContent":["export * from './company';\nexport * from './department';\nexport * from './team';\nexport * from './team-member';\nexport * from './quarter';\n"],"names":[],"rangeMappings":";;;;","mappings":"AAAA,cAAc,YAAY;AAC1B,cAAc,eAAe;AAC7B,cAAc,SAAS;AACvB,cAAc,gBAAgB;AAC9B,cAAc,YAAY"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/types/quarter.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\nexport interface Quarter extends IdentityCore {\n companyUniqueId: string;\n name: string;\n year: number;\n quarter: number;\n startDate: Date;\n endDate: Date;\n status: EntityStatus;\n enabled: boolean;\n payload?: Record<string, unknown>;\n}\n\nexport interface CreateQuarterRequest {\n companyUniqueId: string;\n name: string;\n year: number;\n quarter: number;\n startDate: Date | string;\n endDate: Date | string;\n payload?: Record<string, unknown>;\n}\n\nexport interface UpdateQuarterRequest {\n name?: string;\n startDate?: Date | string;\n endDate?: Date | string;\n enabled?: boolean;\n status?: EntityStatus;\n payload?: Record<string, unknown>;\n}\n\nexport interface ListQuartersParams {\n page?: number;\n perPage?: number;\n companyUniqueId?: string;\n year?: number;\n quarter?: number;\n status?: EntityStatus;\n sortBy?: string;\n sortOrder?: 'asc' | 'desc';\n}\n"],"names":[],"rangeMappings":"","mappings":"AAiCA,WASC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/types/team-member.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\nexport interface TeamMember extends IdentityCore {\n teamUniqueId: string;\n userUniqueId: string;\n role?: string;\n joinedAt?: Date;\n status: EntityStatus;\n enabled: boolean;\n payload?: Record<string, unknown>;\n}\n\nexport interface AddTeamMemberRequest {\n teamUniqueId: string;\n userUniqueId: string;\n role?: string;\n payload?: Record<string, unknown>;\n}\n\nexport interface UpdateTeamMemberRequest {\n role?: string;\n enabled?: boolean;\n status?: EntityStatus;\n payload?: Record<string, unknown>;\n}\n\nexport interface ListTeamMembersParams {\n page?: number;\n perPage?: number;\n teamUniqueId?: string;\n userUniqueId?: string;\n status?: EntityStatus;\n sortBy?: string;\n sortOrder?: 'asc' | 'desc';\n}\n"],"names":[],"rangeMappings":"","mappings":"AA0BA,WAQC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/types/team.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\nexport interface Team extends IdentityCore {\n departmentUniqueId: string;\n code: string;\n name: string;\n description?: string;\n leaderUniqueId?: string;\n status: EntityStatus;\n enabled: boolean;\n payload?: Record<string, unknown>;\n}\n\nexport interface CreateTeamRequest {\n departmentUniqueId: string;\n code: string;\n name: string;\n description?: string;\n leaderUniqueId?: string;\n payload?: Record<string, unknown>;\n}\n\nexport interface UpdateTeamRequest {\n name?: string;\n description?: string;\n leaderUniqueId?: string;\n enabled?: boolean;\n status?: EntityStatus;\n payload?: Record<string, unknown>;\n}\n\nexport interface ListTeamsParams {\n page?: number;\n perPage?: number;\n departmentUniqueId?: string;\n status?: EntityStatus;\n search?: string;\n sortBy?: string;\n sortOrder?: 'asc' | 'desc';\n}\n"],"names":[],"rangeMappings":"","mappings":"AA+BA,WAQC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@23blocks/block-company",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Company block for 23blocks SDK - organizational structure, departments, teams, and quarters",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "23blocks <hello@23blocks.com>",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/23blocks-OS/frontend-sdk.git",
|
|
10
|
+
"directory": "packages/block-company"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/23blocks-OS/frontend-sdk/tree/main/packages/block-company",
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/23blocks-OS/frontend-sdk/issues"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"23blocks",
|
|
18
|
+
"sdk",
|
|
19
|
+
"company",
|
|
20
|
+
"organization",
|
|
21
|
+
"departments",
|
|
22
|
+
"teams",
|
|
23
|
+
"quarters"
|
|
24
|
+
],
|
|
25
|
+
"type": "module",
|
|
26
|
+
"main": "./dist/index.js",
|
|
27
|
+
"module": "./dist/index.js",
|
|
28
|
+
"types": "./dist/index.d.ts",
|
|
29
|
+
"exports": {
|
|
30
|
+
"./package.json": "./package.json",
|
|
31
|
+
".": {
|
|
32
|
+
"types": "./dist/index.d.ts",
|
|
33
|
+
"import": "./dist/index.js",
|
|
34
|
+
"default": "./dist/index.js"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"files": [
|
|
38
|
+
"dist",
|
|
39
|
+
"!**/*.tsbuildinfo"
|
|
40
|
+
],
|
|
41
|
+
"nx": {
|
|
42
|
+
"sourceRoot": "packages/block-company/src",
|
|
43
|
+
"targets": {
|
|
44
|
+
"build": {
|
|
45
|
+
"executor": "@nx/js:swc",
|
|
46
|
+
"outputs": [
|
|
47
|
+
"{options.outputPath}"
|
|
48
|
+
],
|
|
49
|
+
"options": {
|
|
50
|
+
"outputPath": "packages/block-company/dist",
|
|
51
|
+
"main": "packages/block-company/src/index.ts",
|
|
52
|
+
"tsConfig": "packages/block-company/tsconfig.lib.json",
|
|
53
|
+
"skipTypeCheck": true,
|
|
54
|
+
"stripLeadingPaths": true
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"dependencies": {
|
|
60
|
+
"@23blocks/contracts": "*",
|
|
61
|
+
"@23blocks/jsonapi-codec": "*",
|
|
62
|
+
"@swc/helpers": "~0.5.11"
|
|
63
|
+
}
|
|
64
|
+
}
|