Skip to content

Commit

Permalink
merge with main
Browse files Browse the repository at this point in the history
  • Loading branch information
snaerseljan committed Jun 24, 2024
2 parents 9681080 + f7b065e commit b29c1f1
Show file tree
Hide file tree
Showing 548 changed files with 17,108 additions and 3,293 deletions.
10 changes: 9 additions & 1 deletion .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
/libs/application/template-api-modules/src/lib/modules/templates/driving-learners-permit/ @island-is/juni
/libs/application/template-api-modules/src/lib/modules/templates/driving-license-submission @island-is/juni
/libs/api/domains/driving-license/ @island-is/juni
/libs/api/domains/education/ @island-is/juni @island-is/hugsmidjan
/libs/api/domains/education/ @island-is/juni @island-is/hugsmidjan @island-is/deloitte
/libs/application/templates/estate/ @island-is/juni
/libs/application/template-api-modules/src/lib/modules/templates/estate @island-is/juni
/libs/application/templates/general-petition/ @island-is/juni
Expand Down Expand Up @@ -259,6 +259,8 @@ codemagic.yaml
/libs/clients/administration-of-occupational-safety-and-health/ @island-is/stefna
/libs/api/domains/administration-of-occupational-safety-and-health/ @island-is/stefna
/libs/clients/ultraviolet-radiation/ @island-is/stefna
/libs/clients/ums-cost-of-living-calculator/ @island-is/stefna
/libs/api/domains/umbodsmadur-skuldara/ @island-is/stefna

/libs/island-ui/ @island-is/island-ui

Expand All @@ -278,6 +280,9 @@ codemagic.yaml
/libs/application/templates/car-recycling/ @island-is/deloitte
/libs/application/template-api-modules/src/lib/modules/templates/car-recycling/ @island-is/deloitte
/libs/clients/car-recycling/ @island-is/deloitte
/libs/application/templates/new-primary-school/ @island-is/deloitte
/libs/application/template-api-modules/src/lib/modules/templates/new-primary-school/ @island-is/deloitte
/libs/clients/mms/frigg @island-is/deloitte

/apps/services/auth/ids-api/ @island-is/fuglar @island-is/aranja
/apps/services/auth/admin-api/ @island-is/fuglar @island-is/aranja
Expand Down Expand Up @@ -311,6 +316,9 @@ codemagic.yaml
/libs/application/templates/no-debt-certificate/ @island-is/origo
/libs/application/template-api-modules/src/lib/modules/templates/no-debt-certificate/ @island-is/origo

/libs/application/templates/id-card/ @island-is/origo
/libs/application/template-api-modules/src/lib/modules/templates/id-card/ @island-is/origo

/libs/clients/charge-fjs-v2/ @island-is/origo
/libs/clients/vehicle-service-fjs-v1/ @island-is/origo

Expand Down
4 changes: 4 additions & 0 deletions apps/api/infra/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ import {
UniversityCareers,
OfficialJournalOfIceland,
OfficialJournalOfIcelandApplication,
Frigg,
} from '../../../infra/src/dsl/xroad'

export const serviceSetup = (services: {
Expand Down Expand Up @@ -375,6 +376,8 @@ export const serviceSetup = (services: {
LICENSE_SERVICE_BARCODE_SECRET_KEY:
'/k8s/api/LICENSE_SERVICE_BARCODE_SECRET_KEY',
ULTRAVIOLET_RADIATION_API_KEY: '/k8s/api/ULTRAVIOLET_RADIATION_API_KEY',
UMBODSMADUR_SKULDARA_COST_OF_LIVING_CALCULATOR_API_URL:
'/k8s/api/UMBODSMADUR_SKULDARA_COST_OF_LIVING_CALCULATOR_API_URL',
})
.xroad(
AdrAndMachine,
Expand Down Expand Up @@ -423,6 +426,7 @@ export const serviceSetup = (services: {
SocialInsuranceAdministration,
OfficialJournalOfIceland,
OfficialJournalOfIcelandApplication,
Frigg,
)
.files({ filename: 'islyklar.p12', env: 'ISLYKILL_CERT' })
.ingress({
Expand Down
6 changes: 6 additions & 0 deletions apps/api/src/app/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,9 @@ import { UltravioletRadiationClientConfig } from '@island.is/clients/ultraviolet
import { CriminalRecordClientConfig } from '@island.is/clients/criminal-record'
import { HealthInsuranceV2ClientConfig } from '@island.is/clients/icelandic-health-insurance/health-insurance'
import { VmstClientConfig } from '@island.is/clients/vmst'
import { FriggClientConfig } from '@island.is/clients/mms/frigg'
import { UmbodsmadurSkuldaraModule } from '@island.is/api/domains/umbodsmadur-skuldara'
import { UmbodsmadurSkuldaraClientConfig } from '@island.is/clients/ums-cost-of-living-calculator'

const environment = getConfig

Expand Down Expand Up @@ -321,6 +324,7 @@ const environment = getConfig
AuthAdminModule,
HousingBenefitCalculatorModule,
SignatureCollectionModule,
UmbodsmadurSkuldaraModule,
ConfigModule.forRoot({
isGlobal: true,
load: [
Expand Down Expand Up @@ -408,9 +412,11 @@ const environment = getConfig
LicenseConfig,
UserProfileClientConfig,
UltravioletRadiationClientConfig,
FriggClientConfig,
VmstClientConfig,
HealthInsuranceV2ClientConfig,
CriminalRecordClientConfig,
UmbodsmadurSkuldaraClientConfig,
],
}),
],
Expand Down
2 changes: 2 additions & 0 deletions apps/application-system/api/infra/application-system-api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import {
OfficialJournalOfIcelandApplication,
VehiclesMileage,
UniversityCareers,
Frigg,
} from '../../../../infra/src/dsl/xroad'

export const GRAPHQL_API_URL_ENV_VAR_NAME = 'GRAPHQL_API_URL' // This property is a part of a circular dependency that is treated specially in certain deployment types
Expand Down Expand Up @@ -283,6 +284,7 @@ export const serviceSetup = (services: {
OfficialJournalOfIceland,
OfficialJournalOfIcelandApplication,
UniversityCareers,
Frigg,
)
.secrets({
NOVA_URL: '/k8s/application-system-api/NOVA_URL',
Expand Down
2 changes: 2 additions & 0 deletions apps/application-system/api/src/app/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ import { DataProtectionComplaintClientConfig } from '@island.is/clients/data-pro
import { CriminalRecordClientConfig } from '@island.is/clients/criminal-record'
import { HealthInsuranceV2ClientConfig } from '@island.is/clients/icelandic-health-insurance/health-insurance'
import { VmstClientConfig } from '@island.is/clients/vmst'
import { FriggClientConfig } from '@island.is/clients/mms/frigg'

@Module({
imports: [
Expand Down Expand Up @@ -103,6 +104,7 @@ import { VmstClientConfig } from '@island.is/clients/vmst'
CriminalRecordClientConfig,
HealthInsuranceV2ClientConfig,
VmstClientConfig,
FriggClientConfig,
],
}),
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,10 @@ import {
ApplicationListAdminResponseDto,
ApplicationStatistics,
} from './dto/applicationAdmin.response.dto'
import { ApplicationAdminSerializer } from './tools/applicationAdmin.serializer'
import {
ApplicationAdminSerializer,
ApplicationAdminStatisticsSerializer,
} from './tools/applicationAdmin.serializer'

@UseGuards(IdsUserGuard, ScopesGuard, DelegationGuard)
@ApiTags('applications')
Expand All @@ -46,6 +49,7 @@ export class AdminController {
@Scopes(AdminPortalScope.applicationSystemAdmin)
@BypassDelegation()
@Get('admin/applications-statistics')
@UseInterceptors(ApplicationAdminStatisticsSerializer)
@Documentation({
description: 'Get applications statistics',
response: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,4 +77,9 @@ export class ApplicationStatistics {
@Expose()
@IsNumber()
approved!: number

@ApiProperty()
@Expose()
@IsString()
name?: string
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import { getCurrentUser } from '@island.is/auth-nest-tools'
import {
Application,
ApplicationPaginatedResponse,
ApplicationsStatistics,
} from '@island.is/application/api/core'
import { getCurrentLocale } from '../utils/currentLocale'
import {
Expand All @@ -35,6 +36,7 @@ import { PaymentService } from '@island.is/application/api/payment'
import {
getApplicantName,
getApplicationNameTranslationString,
getApplicationStatisticsNameTranslationString,
getPaymentStatusForAdmin,
} from '../utils/application'
import { ApplicationListAdminResponseDto } from '../dto/applicationAdmin.response.dto'
Expand Down Expand Up @@ -207,3 +209,57 @@ export class ApplicationAdminSerializer
)
}
}

@Injectable()
export class ApplicationAdminStatisticsSerializer
implements NestInterceptor<ApplicationsStatistics, Promise<unknown>>
{
constructor(private intlService: IntlService) {}

intercept(
context: ExecutionContext,
next: CallHandler<ApplicationsStatistics>,
): Observable<Promise<unknown>> {
const locale = getCurrentLocale(context)

return next.handle().pipe(
map(
async (res: ApplicationsStatistics | Array<ApplicationsStatistics>) => {
const isArray = Array.isArray(res)

if (isArray) {
const applications = res as Array<ApplicationsStatistics>
return this.serializeArray(applications, locale)
}
},
),
)
}

async serialize(model: ApplicationsStatistics, locale: Locale) {
const template = await getApplicationTemplateByTypeId(
model.typeid as ApplicationTypes,
)
const namespaces = [
'application.system',
...(template?.translationNamespaces ?? []),
]
const intl = await this.intlService.useIntl(namespaces, locale)
const name = getApplicationStatisticsNameTranslationString(
template,
model,
intl.formatMessage,
)

const dto = plainToInstance(ApplicationListAdminResponseDto, {
...model,
name: name ?? '',
})

return instanceToPlain(dto)
}

async serializeArray(applications: ApplicationsStatistics[], locale: Locale) {
return Promise.all(applications.map((item) => this.serialize(item, locale)))
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,21 @@ import {
} from '@island.is/application/core'
import {
Application,
ApplicationConfigurations,
ApplicationContext,
ApplicationLifecycle,
ApplicationStateSchema,
ApplicationStatus,
ApplicationTemplate,
ApplicationTypes,
} from '@island.is/application/types'
import { Unwrap } from '@island.is/shared/types'
import { getApplicationTemplateByTypeId } from '@island.is/application/template-loader'
import isObject from 'lodash/isObject'
import { EventObject } from 'xstate'
import { FormatMessage } from '@island.is/cms-translations'
import { ApplicationStatistics } from '../dto/applicationAdmin.response.dto'
import { ApplicationState } from '@island.is/financial-aid/shared/lib'

export const getApplicationLifecycle = (
application: Application,
Expand Down Expand Up @@ -53,12 +58,14 @@ export const getApplicationLifecycle = (
}
}

type Template = ApplicationTemplate<
ApplicationContext,
ApplicationStateSchema<EventObject>,
EventObject
>

export const getApplicationNameTranslationString = (
template: ApplicationTemplate<
ApplicationContext,
ApplicationStateSchema<EventObject>,
EventObject
>,
template: Template,
application: Application,
formatMessage: FormatMessage,
) => {
Expand All @@ -78,6 +85,31 @@ export const getApplicationNameTranslationString = (
return formatMessage(template.name)
}

export const getApplicationStatisticsNameTranslationString = (
template: Template,
model: ApplicationStatistics,
formatMessage: FormatMessage,
) => {
if (typeof template.name === 'function') {
const returnValue = template.name(
mockApplicationFromTypeId(model.typeid as ApplicationTypes),
)

if (
isObject(returnValue) &&
'value' in returnValue &&
'name' in returnValue
) {
return formatMessage(returnValue.name, {
value: returnValue.value,
})
}
return formatMessage(returnValue)
}

return formatMessage(template.name)
}

export const getPaymentStatusForAdmin = (
payment: { fulfilled: boolean; created: Date } | null,
) => {
Expand Down Expand Up @@ -106,3 +138,21 @@ export const getApplicantName = (application: Application) => {
}
return null
}

export const mockApplicationFromTypeId = (
typeId: ApplicationTypes,
): Application => {
return {
id: '',
state: ApplicationState.INPROGRESS,
applicant: '',
assignees: [],
applicantActors: [],
typeId,
modified: new Date(),
created: new Date(),
answers: {},
externalData: {},
status: ApplicationStatus.IN_PROGRESS,
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ export const menuItems = [
href: loc[1].href,
testId: 'subscriptions-btn',
},
{
label: loc[2].label,
href: loc[2].href,
testId: 'statistics-btn',
},
// {
// label: loc[2].label,
// href: loc[2].href,
// testId: 'statistics-btn',
// },
{
label: loc[3].label,
href: loc[3].href,
Expand Down
25 changes: 13 additions & 12 deletions apps/consultation-portal/components/PowerBI/PowerBI.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,19 @@ export const PowerBI = () => {
}

return (
<PowerBIEmbed
embedConfig={{
type: 'report',
tokenType: models.TokenType.Embed,
embedUrl:
'https://app.powerbi.com/view?r=eyJrIjoiZjFjOWRlODEtNGFlNS00MDkxLTlhNmYtNGUxY2Y0ZWM0M2E5IiwidCI6ImJjMTRhNDRlLWUwZmItNGUwYi1hNTM1LTEwMDU3OWQ0MWI2NSIsImMiOjh9',
settings: {
layoutType: models.LayoutType.MobilePortrait,
},
}}
getEmbeddedComponent={getEmbeddedComponent}
/>
<></>
// <PowerBIEmbed
// embedConfig={{
// type: 'report',
// tokenType: models.TokenType.Embed,
// embedUrl:
// 'https://app.powerbi.com/view?r=eyJrIjoiZjFjOWRlODEtNGFlNS00MDkxLTlhNmYtNGUxY2Y0ZWM0M2E5IiwidCI6ImJjMTRhNDRlLWUwZmItNGUwYi1hNTM1LTEwMDU3OWQ0MWI2NSIsImMiOjh9',
// settings: {
// layoutType: models.LayoutType.MobilePortrait,
// },
// }}
// getEmbeddedComponent={getEmbeddedComponent}
// />
)
}

Expand Down
Loading

0 comments on commit b29c1f1

Please sign in to comment.