mirror of
https://github.com/hexastack/hexabot
synced 2025-06-26 18:27:28 +00:00
feat: add RTL attr
This commit is contained in:
@@ -33,7 +33,7 @@ export const baseLanguage = {
|
||||
...modelInstance,
|
||||
title: 'English',
|
||||
code: 'en',
|
||||
default: true,
|
||||
isDefault: true,
|
||||
};
|
||||
|
||||
export const entitiesMock: NlpEntityFull[] = [
|
||||
|
||||
@@ -139,7 +139,7 @@ describe('LanguageController', () => {
|
||||
|
||||
it('should mark a language as default', async () => {
|
||||
jest.spyOn(languageService, 'updateOne');
|
||||
const translationUpdateDto = { default: true };
|
||||
const translationUpdateDto = { isDefault: true };
|
||||
const frLang = await languageService.findOne({ code: 'fr' });
|
||||
const result = await languageController.updateOne(
|
||||
frLang.id,
|
||||
@@ -156,7 +156,7 @@ describe('LanguageController', () => {
|
||||
});
|
||||
|
||||
const enLang = await languageService.findOne({ code: 'en' });
|
||||
expect(enLang.default).toBe(false);
|
||||
expect(enLang.isDefault).toBe(false);
|
||||
});
|
||||
|
||||
it('should throw a NotFoundException when attempting to update a translation by id', async () => {
|
||||
@@ -169,7 +169,7 @@ describe('LanguageController', () => {
|
||||
|
||||
describe('deleteOne', () => {
|
||||
it('should throw when attempting to delete the default language', async () => {
|
||||
const defaultLang = await languageService.findOne({ default: true });
|
||||
const defaultLang = await languageService.findOne({ isDefault: true });
|
||||
|
||||
await expect(
|
||||
languageController.deleteOne(defaultLang.id),
|
||||
|
||||
@@ -115,10 +115,10 @@ export class LanguageController extends BaseController<Language> {
|
||||
@Param('id') id: string,
|
||||
@Body() languageUpdate: LanguageUpdateDto,
|
||||
): Promise<Language> {
|
||||
if ('default' in languageUpdate) {
|
||||
if (languageUpdate.default) {
|
||||
if ('isDefault' in languageUpdate) {
|
||||
if (languageUpdate.isDefault) {
|
||||
// A new default language is define, make sure that only one is marked as default
|
||||
await this.languageService.updateMany({}, { default: false });
|
||||
await this.languageService.updateMany({}, { isDefault: false });
|
||||
} else {
|
||||
throw new BadRequestException('Should not be able to disable default');
|
||||
}
|
||||
@@ -142,7 +142,7 @@ export class LanguageController extends BaseController<Language> {
|
||||
@HttpCode(204)
|
||||
async deleteOne(@Param('id') id: string): Promise<DeleteResult> {
|
||||
const result = await this.languageService.deleteOne({
|
||||
default: false, // Prevent deleting the default language
|
||||
isDefault: false, // Prevent deleting the default language
|
||||
_id: id,
|
||||
});
|
||||
if (result.deletedCount === 0) {
|
||||
|
||||
@@ -25,7 +25,12 @@ export class LanguageCreateDto {
|
||||
@ApiProperty({ description: 'Is Default Language ?', type: Boolean })
|
||||
@IsNotEmpty()
|
||||
@IsBoolean()
|
||||
default: boolean;
|
||||
isDefault: boolean;
|
||||
|
||||
@ApiProperty({ description: 'Whether Language is RTL', type: Boolean })
|
||||
@IsNotEmpty()
|
||||
@IsBoolean()
|
||||
isRTL?: boolean;
|
||||
}
|
||||
|
||||
export class LanguageUpdateDto extends PartialType(LanguageCreateDto) {}
|
||||
|
||||
@@ -31,7 +31,13 @@ export class Language extends BaseSchema {
|
||||
@Prop({
|
||||
type: Boolean,
|
||||
})
|
||||
default: boolean;
|
||||
isDefault: boolean;
|
||||
|
||||
@Prop({
|
||||
type: Boolean,
|
||||
default: false,
|
||||
})
|
||||
isRTL?: boolean;
|
||||
}
|
||||
|
||||
export const LanguageModel: ModelDefinition = {
|
||||
|
||||
@@ -13,11 +13,11 @@ export const languageModels: LanguageCreateDto[] = [
|
||||
{
|
||||
title: 'English',
|
||||
code: 'en',
|
||||
default: true,
|
||||
isDefault: true,
|
||||
},
|
||||
{
|
||||
title: 'Français',
|
||||
code: 'fr',
|
||||
default: false,
|
||||
isDefault: false,
|
||||
},
|
||||
];
|
||||
|
||||
@@ -54,7 +54,7 @@ export class LanguageService extends BaseService<Language> {
|
||||
*/
|
||||
@Cacheable(DEFAULT_LANGUAGE_CACHE_KEY)
|
||||
async getDefaultLanguage() {
|
||||
return await this.findOne({ default: true });
|
||||
return await this.findOne({ isDefault: true });
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
6
api/src/utils/test/fixtures/language.ts
vendored
6
api/src/utils/test/fixtures/language.ts
vendored
@@ -16,12 +16,14 @@ export const languageFixtures: LanguageUpdateDto[] = [
|
||||
{
|
||||
title: 'English',
|
||||
code: 'en',
|
||||
default: true,
|
||||
isDefault: true,
|
||||
isRTL: false,
|
||||
},
|
||||
{
|
||||
title: 'Français',
|
||||
code: 'fr',
|
||||
default: false,
|
||||
isDefault: false,
|
||||
isRTL: false,
|
||||
},
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user