89 lines
2.2 KiB
TypeScript
89 lines
2.2 KiB
TypeScript
import cache from 'next/cache'
|
||
|
||
export const NP_SETTLEMENT_KYIV_REF = 'e718a680-4b33-11e4-ab6d-005056801329'
|
||
|
||
export type Street = {
|
||
SettlementStreetRef: string
|
||
Present: string
|
||
StreetsTypeDescription: string
|
||
SettlementStreetDescription: string
|
||
SettlementStreetDescriptionRu: string
|
||
}
|
||
|
||
export type Settlement = {
|
||
Ref: string
|
||
Description: string
|
||
DescriptionRu: string
|
||
AreaDescription: string
|
||
AreaDescriptionRu: string
|
||
SettlementTypeDescription: string
|
||
SettlementTypeDescriptionRu: string
|
||
}
|
||
|
||
export type Warehouse = {
|
||
Ref: string
|
||
Description: string
|
||
DescriptionRu: string
|
||
CityDescription: string
|
||
CityDescriptionRu: string
|
||
SettlementDescription: string
|
||
AreaDescription: string
|
||
SettlementRegionsDescription: string
|
||
SettlementTypeDescription: string
|
||
SettlementTypeDescriptionRu: string
|
||
Longitude: string
|
||
Latitude: string
|
||
}
|
||
|
||
export const getApi = async (url: string) => {
|
||
//TODO: need implement caching
|
||
return await fetch(url)
|
||
}
|
||
|
||
export const formatSettlement = (
|
||
city: Settlement,
|
||
locale: string = 'uk'
|
||
): string => {
|
||
if (!city) return ''
|
||
|
||
if (locale === 'ru') {
|
||
const {DescriptionRu, AreaDescriptionRu, SettlementTypeDescriptionRu} = city
|
||
// https://www.alta.ru/fias/socrname/
|
||
const type = SettlementTypeDescriptionRu.replace(
|
||
'поселок городского типа',
|
||
'пгт '
|
||
)
|
||
.replace('поселок', 'п. ')
|
||
.replace('село', 'с. ')
|
||
.replace('город', 'г. ')
|
||
|
||
return (
|
||
type +
|
||
DescriptionRu.replace(`(${AreaDescriptionRu} обл.)`, '')
|
||
.replace(`(${AreaDescriptionRu} обл)`, '')
|
||
.replace(`${AreaDescriptionRu} обл., `, '')
|
||
.trim() +
|
||
` (${AreaDescriptionRu} обл.)`
|
||
)
|
||
} else {
|
||
const {Description, AreaDescription, SettlementTypeDescription} = city
|
||
const type = SettlementTypeDescription.replace(
|
||
'селище міського типу',
|
||
'смт '
|
||
)
|
||
.replace('село', 'с. ')
|
||
.replace('селище', 'с-ще ')
|
||
.replace('місто', 'м. ')
|
||
|
||
return (
|
||
type +
|
||
Description.replace(`(${AreaDescription} обл.)`, '')
|
||
.replace(`(${AreaDescription} обл)`, '')
|
||
.replace(`(село)`, '')
|
||
.replace(`${AreaDescription} обл., `, '')
|
||
.trim() +
|
||
` (${AreaDescription} обл.)`
|
||
)
|
||
}
|
||
}
|