bibliogram/src/site/api/api.js

69 lines
1.3 KiB
JavaScript
Raw Normal View History

2020-01-14 14:38:33 +00:00
const constants = require("../../lib/constants")
2020-01-12 12:50:21 +00:00
const {fetchUser} = require("../../lib/collectors")
function reply(statusCode, content) {
return {
statusCode: statusCode,
contentType: "application/json",
content: JSON.stringify(content)
}
}
module.exports = [
2020-01-28 05:39:07 +00:00
{
route: `/api/user/(${constants.external.username_regex})`, methods: ["GET"], code: async ({fill}) => {
const user = await fetchUser(fill[0])
const data = user.export()
return reply(200, data)
}
},
{
route: "/.well-known/nodeinfo", methods: ["GET"], code: async ({fill}) => {
return reply(200, {
link: [
{
rel: "http://nodeinfo.diaspora.software/ns/schema/2.0",
href: `${constants.website_origin}/api/stats/2.0`
}
]
})
}
},
{
route: "/api/stats/2.0", methods: ["GET"], code: async ({fill}) => {
return reply(200, {
version: "2.0",
software: {
name: "bibliogram",
version: "1.0.0"
},
protocols: [],
services: {
inbound: [
"instagram"
],
outbound: []
},
openRegistrations: false,
usage: {
users: {
total: 0,
activeHalfyear: 0,
activeMonth: 0
}
},
metadata: {
bibliogram: {
version: "1.0",
features: [
"PAGE_PROFILE",
"PAGE_POST",
"API_STATS"
]
}
}
})
}
}
2020-01-12 12:50:21 +00:00
]