-
Notifications
You must be signed in to change notification settings - Fork 523
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'develop' into feature/additional-organization-settings
- Loading branch information
Showing
27 changed files
with
806 additions
and
257 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
export { OrganizationTeamsModule } from './organization-teams.module'; | ||
export { OrganizationTeams } from './organization-teams.entity'; | ||
export { OrganizationTeamsService } from './organization-teams.service'; |
42 changes: 42 additions & 0 deletions
42
apps/api/src/app/organization-teams/organization-teams.controller.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
import { Controller, Get, HttpStatus, Query } from '@nestjs/common'; | ||
import { ApiUseTags, ApiOperation, ApiResponse } from '@nestjs/swagger'; | ||
import { CrudController } from '../core/crud/crud.controller'; | ||
import { OrganizationTeamsService } from './organization-teams.service'; | ||
import { OrganizationTeams } from './organization-teams.entity'; | ||
import { IPagination } from '../core'; | ||
|
||
@ApiUseTags('Organization-Teams') | ||
@Controller() | ||
export class OrganizationTeamsController extends CrudController< | ||
OrganizationTeams | ||
> { | ||
constructor( | ||
private readonly organizationTeamsService: OrganizationTeamsService | ||
) { | ||
super(organizationTeamsService); | ||
} | ||
|
||
@ApiOperation({ | ||
title: 'Find all organization Teams.' | ||
}) | ||
@ApiResponse({ | ||
status: HttpStatus.OK, | ||
description: 'Found Teams', | ||
type: OrganizationTeams | ||
}) | ||
@ApiResponse({ | ||
status: HttpStatus.NOT_FOUND, | ||
description: 'Record not found' | ||
}) | ||
@Get() | ||
async findAllEmployees( | ||
@Query('data') data: string | ||
): Promise<IPagination<OrganizationTeams>> { | ||
const { relations, findInput } = JSON.parse(data); | ||
|
||
return this.organizationTeamsService.findAll({ | ||
where: findInput, | ||
relations | ||
}); | ||
} | ||
} |
38 changes: 38 additions & 0 deletions
38
apps/api/src/app/organization-teams/organization-teams.entity.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
import { | ||
Column, | ||
Entity, | ||
Index, | ||
JoinColumn, | ||
ManyToOne, | ||
ManyToMany, | ||
JoinTable | ||
} from 'typeorm'; | ||
import { ApiModelProperty, ApiModelPropertyOptional } from '@nestjs/swagger'; | ||
import { IsNotEmpty, IsString, IsOptional, IsDate } from 'class-validator'; | ||
import { Base } from '../core/entities/base'; | ||
import { OrganizationTeams as IOrganizationTeams } from '@gauzy/models'; | ||
import { Employee } from '../employee'; | ||
|
||
@Entity('organization_teams') | ||
export class OrganizationTeams extends Base implements IOrganizationTeams { | ||
@ApiModelProperty({ type: String }) | ||
@IsString() | ||
@IsNotEmpty() | ||
@Index() | ||
@Column() | ||
name: string; | ||
|
||
@ApiModelProperty({ type: String }) | ||
@IsString() | ||
@IsNotEmpty() | ||
@Column() | ||
organizationId: string; | ||
|
||
@ManyToMany((type) => Employee) | ||
@JoinTable({ | ||
name: 'organization_team_employee', | ||
joinColumn: { name: 'organizationTeamId', referencedColumnName: 'id' }, | ||
inverseJoinColumn: { name: 'employeeId', referencedColumnName: 'id' } | ||
}) | ||
employees: Employee[]; | ||
} |
13 changes: 13 additions & 0 deletions
13
apps/api/src/app/organization-teams/organization-teams.module.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
import { Module } from '@nestjs/common'; | ||
import { TypeOrmModule } from '@nestjs/typeorm'; | ||
import { OrganizationTeams } from './organization-teams.entity'; | ||
import { OrganizationTeamsController } from './organization-teams.controller'; | ||
import { OrganizationTeamsService } from './organization-teams.service'; | ||
|
||
@Module({ | ||
imports: [TypeOrmModule.forFeature([OrganizationTeams])], | ||
controllers: [OrganizationTeamsController], | ||
providers: [OrganizationTeamsService], | ||
exports: [OrganizationTeamsService] | ||
}) | ||
export class OrganizationTeamsModule {} |
17 changes: 17 additions & 0 deletions
17
apps/api/src/app/organization-teams/organization-teams.service.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
import { Injectable } from '@nestjs/common'; | ||
import { InjectRepository } from '@nestjs/typeorm'; | ||
import { Repository } from 'typeorm'; | ||
import { CrudService } from '../core/crud/crud.service'; | ||
import { OrganizationTeams } from './organization-teams.entity'; | ||
|
||
@Injectable() | ||
export class OrganizationTeamsService extends CrudService<OrganizationTeams> { | ||
constructor( | ||
@InjectRepository(OrganizationTeams) | ||
private readonly organizationTeamsRepository: Repository< | ||
OrganizationTeams | ||
> | ||
) { | ||
super(organizationTeamsRepository); | ||
} | ||
} |
62 changes: 62 additions & 0 deletions
62
apps/gauzy/src/app/@core/services/organization-teams.service.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
import { Injectable } from '@angular/core'; | ||
import { HttpClient } from '@angular/common/http'; | ||
import { | ||
OrganizationTeams, | ||
OrganizationTeamFindInput, | ||
OrganizationTeamCreateInput | ||
} from '@gauzy/models'; | ||
import { first } from 'rxjs/operators'; | ||
|
||
@Injectable({ | ||
providedIn: 'root' | ||
}) | ||
export class OrganizationTeamsService { | ||
constructor(private http: HttpClient) {} | ||
|
||
// TODO: Implement logic to proceed the fowolling requests: | ||
// 1) Get all employees of selected Organization and put in in the select as options; | ||
// 2) Create a team with name and members (employees involved); | ||
// 3) Edit team- simillar with create; | ||
// 4) Delete a team | ||
// 5) Display all teams: show team name and members - avatar + full name for each member; | ||
|
||
create( | ||
createInput: OrganizationTeamCreateInput | ||
): Promise<OrganizationTeams> { | ||
return this.http | ||
.post<OrganizationTeams>('/api/organization-teams', createInput) | ||
.pipe(first()) | ||
.toPromise(); | ||
} | ||
|
||
getAll( | ||
relations?: string[], | ||
findInput?: OrganizationTeamFindInput | ||
): Promise<{ items: any[]; total: number }> { | ||
const data = JSON.stringify({ relations, findInput }); | ||
|
||
return this.http | ||
.get<{ items: OrganizationTeams[]; total: number }>( | ||
`/api/organization-teams`, | ||
{ | ||
params: { data } | ||
} | ||
) | ||
.pipe(first()) | ||
.toPromise(); | ||
} | ||
|
||
update(id: string, updateInput: any): Promise<any> { | ||
return this.http | ||
.put(`/api/organization-teams/${id}`, updateInput) | ||
.pipe(first()) | ||
.toPromise(); | ||
} | ||
|
||
delete(id: string): Promise<any> { | ||
return this.http | ||
.delete(`/api/organization-teams/${id}`) | ||
.pipe(first()) | ||
.toPromise(); | ||
} | ||
} |
Oops, something went wrong.