@edictdigital/common
v1.0.8
Published
Learning Platform Common Package for Microservices
Downloads
9
Readme
- Using Contoller
@Controller('/api/some')
export class SomeController extends BaseController<Some> {
constructor(private readonly someService: SomeService) {
super(someService);
}
}
- Using Service
@Injectable()
export class SomeService extends BaseService<Some> {
constructor(
@InjectRepository(Some)
private readonly someRepository: SomeRepository,
) {
super(someRepository);
}
}
NOT: Repository Repository<Some>'dan extend edilecek. Örneğin,
@EntityRepository(Some)
export class SomeRepository extends Repository<Some> {
async someAnotherFunction(...) {...}
}
- Using Entity
import { MainEntity } from '@edictdigital/common';
import { BaseEntity, Column, CreateDateColumn, Entity, PrimaryGeneratedColumn } from 'typeorm';
@Entity("organizations")
export class Organization extends MainEntity{
@PrimaryGeneratedColumn()
id: number;
@Column({name: "organization_key", unique: true })
organizationKey: string;
}
Kod değişiklikleri yapılır.
Local'de commit edilir.
# Feature Branch'ında iken
git status
git add .
git commit -m "[<branch-name>][<name>] message..."
- Yeni versiyona geçilir.
npm version patch
- Build edilir.
npm run build
- NPMJS publish edilir.
npm publish
- Tüm değişiklikler origin'e push edilir.
git push origin <branch-name>
- Github'da master'a merge işlemi için pull request açılır ve merge edilir.
- DTO içerisinde @Expose() kullanılarak yollanacak olan field'lar işaretlenecek.
import { Expose } from "class-transformer";
export class UserDto {
@Expose()
id: number;
@Expose()
email: string;
}
- Controller Seviyesinde kullanma: (Controller altındaki tüm handler function'lar response olarak UserDto'da expose edilen field'ları görebilir.)
@Controller('auth')
@Serialize(UserDto)
export class UsersController {
// ...
}
- Handler Function Seviyesinde kullanma:
// ...
@Get('/whoami')
@UseGuards(AuthGuard)
@Serialize(UserDto)
whoAmI(@CurrentUser() user: User) {
return user;
}
// ...