var express = require("notebook")("tonic/express-endpoint/1.0.0");
var app = express(exports);
var assertShape = (thing, template) => {
return true;
}
app.get("/v4/md/lists", (req, res) => res.send([
{
type: "list",
id: "2395f748-a822-46da-a0eb-ea2e4d602c73",
entity: "company",
name: "Companies in San Francisco that have raised at least $10M in revenue and more text that does not fit on the screen.",
list_type: "smart",
query_url: "https://api.crunchbase.com/v4/data/company?query=querySpec&fields=fieldSpec&order=orderSpec",
entries_count: 35,
additions_count: 3,
subtractions_count: 0,
activity_count: 76,
notification_policies_url: "https://api.crunchbase.com/v4/md/lists/2395f748-a822-46da-a0eb-ea2e4d602c73/notification_policies",
entities_url: "https://api.crunchbase.com/v4/md/lists/2395f748-a822-46da-a0eb-ea2e4d602c73/entities",
data_url: "https://api.crunchbase.com/v4/data/company?list=2395f748-a822-46da-a0eb-ea2e4d602c73",
data_updated_at: "2007-04-05T14:30Z",
last_viewed_at: "2007-04-05T14:30Z",
},
{
type: "list",
id: "dec0a26e-31db-457c-9dc0-59738aa6574b",
entity: "company",
name: "IoT Companies in LA.",
list_type: "smart",
query_url: "https://api.crunchbase.com/v4/data/company?query=querySpec&fields=fieldSpec&order=orderSpec",
entries_count: 287,
additions_count: 12,
subtractions_count: 0,
activity_count: 456,
notification_policies_url: "https://api.crunchbase.com/v4/md/lists/2395f748-a822-46da-a0eb-ea2e4d602c73/notification_policies",
entities_url: "https://api.crunchbase.com/v4/md/lists/2395f748-a822-46da-a0eb-ea2e4d602c73/entities",
data_url: "https://api.crunchbase.com/v4/data/company?list=2395f748-a822-46da-a0eb-ea2e4d602c73",
data_updated_at: "2007-04-05T14:30Z",
last_viewed_at: "2007-04-05T14:30Z",
},
{
type: "list",
id: "ca0a67e1-df26-44a7-8f39-8cb21f5bbd43",
entity: "person",
name: "Interesting People",
list_type: "static",
query_url: "https://api.crunchbase.com/v4/data/person?query=querySpec&fields=fieldSpec&order=orderSpec", // generated, for static lists
entries_count: 78,
additions_count: null,
subtractions_count: null,
activity: 456,
notification_policies_url: "https://api.crunchbase.com/v4/md/lists/ca0a67e1-df26-44a7-8f39-8cb21f5bbd43/notification_policies",
entities_url: "https://api.crunchbase.com/v4/md/lists/ca0a67e1-df26-44a7-8f39-8cb21f5bbd43/entities",
data_url: "https://api.crunchbase.com/v4/data/person?list=2395f748-a822-46da-a0eb-ea2e4d602c73",
data_updated_at: "2007-04-05T14:30Z",
last_viewed_at: "2007-04-05T14:30Z",
},
]))
// app.patch: all required fields, plus last_viewed_at
app.post("/v4/md/lists", (req, res) => {
assertShape(req.body, {
list_type: "smart",
name: "IoT Companies in LA.",
query_url: "https://api.crunchbase.com/v4/data/company?query=querySpec&fields=fieldSpec&order=orderSpec"
})
res.send({
type: "list",
id: "dec0a26e-31db-457c-9dc0-59738aa6574b",
entity: "company",
name: "IoT Companies in LA.",
list_type: "smart",
query_url: "https://api.crunchbase.com/v4/data/company?query=querySpec&fields=fieldSpec&order=orderSpec",
entries_count: 287,
additions_count: 12,
subtractions_count: 0,
activity_count: 456,
notification_policies_url: "https://api.crunchbase.com/md/lists/dec0a26e-31db-457c-9dc0-59738aa6574b/notification_policies",
entities_url: "https://api.crunchbase.com/md/lists/dec0a26e-31db-457c-9dc0-59738aa6574b/entities",
data_url: "https://api.crunchbase.com/v4/data/company?list=dec0a26e-31db-457c-9dc0-59738aa6574b",
data_updated_at: "2007-04-05T14:30Z",
last_viewed_at: "2007-04-05T14:30Z",
})
})
app.get("/v4/md/lists/:id", (req, res) => res.send({
type: "list",
id: "dec0a26e-31db-457c-9dc0-59738aa6574b",
entity: "company",
name: "IoT Companies in LA.",
list_type: "smart",
query_url: "https://api.crunchbase.com/v4/data/company?query=querySpec&fields=fieldSpec&order=orderSpec",
entries_count: 287,
additions_count: 12,
subtractions_count: 0,
activity_count: 456,
notification_policies_url: "https://api.crunchbase.com/md/lists/dec0a26e-31db-457c-9dc0-59738aa6574b/notification_policies",
entities_url: "https://api.crunchbase.com/md/lists/dec0a26e-31db-457c-9dc0-59738aa6574b/entities",
data_url: "https://api.crunchbase.com/v4/data/company?list=dec0a26e-31db-457c-9dc0-59738aa6574b",
data_updated_at: "2007-04-05T14:30Z",
last_viewed_at: "2007-04-05T14:30Z",
}))
app.get("/v4/md/lists/:id/notification_policies", (req, res) => res.send([
{
type: "list_notification_policy",
id: "134b2f70-f424-4dd4-b919-ecf63291c35f",
notification_type: "additions",
frequency: "daily",
active: true,
},
{
type: "list_notification_policy",
id: "ca74ee7c-d08a-4455-ba95-42bb389b10e8",
notification_type: "activity",
frequency: "weekly",
active: false,
},
]))
// app.patch ".../:id" -- all required fields plus "active"
app.post("/v4/md/lists/:id/notification_policies", (req, res) => {
assertShape(req.body, {
notificationType: "activity", // activity, additions
frequency: "weekly" // daily, weekly
})
res.send({
type: "list_notification_policy",
id: "ca74ee7c-d08a-4455-ba95-42bb389b10e8",
notification_type: "activity",
frequency: "weekly",
active: true, // default state when omitted during explicit creation from api
})
})
app.get("/v4/md/lists/:id/entities", (req, res) => res.send([
{
type: "list_entity",
id: "05aa0898-56cc-47c8-8303-b9fa327bf340",
entity: "company",
data_url: "https://api.crunchbase.com/v/3/organizations/permalink"
},
{
type: "list_entity",
id: "79ba957b-c79d-4109-a62a-85189a59a7d5",
entity: "company",
data_url: "https://api.crunchbase.com/v/3/organizations/permalink"
}
]))
// app.patch ".../:id" -- required fields only
app.post("/v4/md/list/:id/entities", (req, res) => {
assertShape(req.body, {
entity: "company",
data_url: "https://api.crunchbase.com/v/3/organizations/permalink"
})
res.send({
type: "list_entity",
id: "79ba957b-c79d-4109-a62a-85189a59a7d5",
entity: "company",
data_url: "https://api.crunchbase.com/v/3/organizations/permalink"
})
})