prhfi-bis
v1.0.0
Published
A small wrapper of Finnish Patent and Registration Office BIS v1 api
Downloads
15
Maintainers
Readme
prhfi-bis
a small wrapper of Finnish Patent and Registration Office BIS v1 api
original document for the API => avoindata.prh.fi
Table of Contents
install
install from npm:
$> npm i profi-bis
git & build:
$> git clone https://github.com/kkuzar/prhfi-bis.git
$> cd prhfi-bis
$> npm run build
test build:
$> npm test
init
construct the new class:
import {BisApi} from 'prhfi-bis'
// or using require
// input options here, if null then use default.
let bisapi = new BisApi()
default options:
const defaultOptions: BisConfig = {
hostname: "avoindata.prh.fi",
port: 443,
path: "/bis/v1",
method: "GET",
protocol: "https"
};
// this class can take any config in this format
API Functions
Full Wrapper for Bis v1 API.
fetch by Business Id getCompanyDetailWithBusinessId(intput: string)
fetch Company Full Detail with Finnish Business Id
let bis = new BisApi();
const res = await bis.getCompanyDetailWithBusinessId("2299022-8");
this function will return a detail JSON as BIS website shows.
fetch using query param getCompanyDetailWithQueryParam(inputObj: object)
let bis = new BisApi();
const res = await bis.getCompanyDetailWithQueryParam({
name: "KES",
companyRegistrationFrom: "1999-01-01",
});
this function will return a detail JSON as BIS website shows. This if the query is detail enough this function will return one full detail other wise it will return a list of potential company, more detail on BIS document in above link.
e.g.
{
"type": "fi.prh.opendata.bis",
"version": "1",
"totalResults": -1,
"resultsFrom": 0,
"previousResultsUri": null,
"nextResultsUri": "http://avoindata.prh.fi/opendata/bis/v1?totalResults=false&maxResults=10&resultsFrom=10&name=KES&companyRegistrationFrom=2014-02-28",
"exceptionNoticeUri": null,
"results": [
{
"businessId": "3114031-3",
"name": "Kestimestarit Oy",
"registrationDate": "2020-01-24",
"companyForm": "OY",
"detailsUri": "http://avoindata.prh.fi/opendata/bis/v1/3114031-3"
},
{
"businessId": "3109375-6",
"name": "Kesar Oy",
"registrationDate": "2020-01-07",
"companyForm": "OY",
"detailsUri": "http://avoindata.prh.fi/opendata/bis/v1/3109375-6"
},
...
]
}
Custom JSON return
// Custom return body format
protected initStructedCompanyInfomation(): StructedCompanyInfomation {
return {
name: null,
businessId: null,
companyForm: null,
website: null,
latestAddr: null,
latestPost: null,
latestCity: null,
latestBusinessCode: null,
latestBusinessLine: null,
latestAuxiliaryNames: null,
}
}
the return value will be StructedCompanyInfomation
or array of it StructedCompanyInfomation[]
fetch Company Brief Structed Information with Business ID getCompanyWithBID(inputObj: object)
let bis = new BisApi();
const res = await bis.getCompanyWithBID("2299022-8");
fetch Company Brief Structed Information with Params getCompanyWithParam(inputObj: object)
let bis = new subject.BisApi();
const res = await bis.getCompanyWithParam({
name: "Kesäturva Oy",
companyRegistrationFrom: "1999-01-01",
});
example return for Structed Information:
[
{
name: 'Suomen Ajoneuvotekniikka Oy',
businessId: '3099016-4',
companyForm: 'OY',
website: '0400643313',
latestAddr: 'Marjahaankierto 2-4',
latestPost: 'IISALMI',
latestCity: null,
latestBusinessCode: '45112',
latestBusinessLine: 'Retail sale of cars and light motor vehicles',
latestAuxiliaryNames: 'Keski-Suomen Rengas'
},
{
name: 'Kestävä Kollektiivi Oy',
businessId: '3093045-2',
companyForm: 'OY',
website: 'www.kestava.net',
latestAddr: 'Husares 1853, depto 302 1428 CABA ARGENTINA',
latestPost: null,
latestCity: null,
latestBusinessCode: '71121',
latestBusinessLine: 'Town and city planning',
latestAuxiliaryNames: ''
},
...
]
Helper Functions
Assemble a company Request Query With Object that has same key typeQueryBody(inputObj: object)
example code snippet
let bis = new BisApi();
let res = bis.typeQueryBody({
name: "KES",
companyRegistrationFrom: "1999-01-01",
companyForm: "OY"
});
This helper will return a query object type has strutrue as following:
protected initBisCompanyDetailQueryObject() {
let res: BisRequestQueryDetail = {
totalResults: "false",
maxResults: "10",
resultsFrom: "0",
name: "",
businessId: "",
registeredOffice: "",
streetAddressPostCode: "",
companyForm: "",
businessLine: "",
businessLineCode: "",
companyRegistrationFrom: "",
companyRegistrationTo: ""
};
return res;
}
For now it will only validate the companyForm
, companyRegistrationFrom
, companyRegistrationTo
.