{"id":20940693,"url":"https://github.com/ianmurrays/companies","last_synced_at":"2025-10-27T10:34:31.420Z","repository":{"id":138668913,"uuid":"14905954","full_name":"ianmurrays/companies","owner":"ianmurrays","description":"Angular JS + Sinatra App","archived":false,"fork":false,"pushed_at":"2013-12-04T03:19:04.000Z","size":148,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-13T03:29:52.370Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ianmurrays.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-12-03T21:13:01.000Z","updated_at":"2013-12-04T03:19:06.000Z","dependencies_parsed_at":"2023-06-12T06:00:38.032Z","dependency_job_id":null,"html_url":"https://github.com/ianmurrays/companies","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ianmurrays/companies","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ianmurrays%2Fcompanies","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ianmurrays%2Fcompanies/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ianmurrays%2Fcompanies/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ianmurrays%2Fcompanies/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ianmurrays","download_url":"https://codeload.github.com/ianmurrays/companies/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ianmurrays%2Fcompanies/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259927042,"owners_count":22933140,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-18T23:11:28.320Z","updated_at":"2025-10-27T10:34:26.400Z","avatar_url":"https://github.com/ianmurrays.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# API Documentation\n\n## Companies\n\n### GET /api/companies\n\nReturns a list of companies. Example\n\n    curl -i http://0.0.0.0:9292/api/companies\n    \nReturns\n\n    [\n      {\n        \"id\": 2,\n        \"name\": \"Doe Ltd.\",\n        \"address\": \"123 Steep Street\",\n        \"city\": \"San Francisco, CA\",\n        \"country\": \"USA\",\n        \"email\": null,\n        \"phone\": null\n      }\n    ]\n\n### GET /api/companies/:id\n\nReturns details of the company with `:id` and its directors. For example:\n\n    curl -i http://0.0.0.0:9292/api/companies/2\n\nReturns:\n\n    {\n        \"address\": \"holi\",\n        \"city\": \"stgo\",\n        \"country\": \"chileasdf\",\n        \"directors\": [\n            {\n                \"id\": 2,\n                \"name\": \"John Doe\"\n            },\n            {\n                \"id\": 4,\n                \"name\": \"Jane Doe\"\n            }\n        ],\n        \"email\": null,\n        \"id\": 2,\n        \"name\": \"ian\",\n        \"phone\": null\n    }\n\n### POST /api/companies\n\nCreates a company with the posted JSON payload. Example:\n\n    curl -i --data '{\"name\":\"Company Ltd.\", \"address\": \"123 Downhill Rd.\", \"city\": \"Santiago\", \"country\": \"Chile\"}' http://0.0.0.0:9292/api/companies\n\nWill return \n\n    {\n        \"address\": \"123 Downhill Rd.\",\n        \"city\": \"Santiago\",\n        \"country\": \"Chile\",\n        \"email\": null,\n        \"id\": 6,\n        \"name\": \"Company Ltd.\",\n        \"phone\": null\n    }\n\nFailing to send a required field will return an error:\n\n    {\n        \"error\": \"validation_failed\",\n        \"errors\": [\n            \"Country can't be blank\"\n        ]\n    }\n\n### PUT /api/companies/:id\n\nUpdates a company with the posted JSON payload. Example:\n\n    curl -i -X PUT --data '{\"name\":\"Company Limited\"}' http://0.0.0.0:9292/api/companies/6\n\nReturns the new company object:\n\n    {\n        \"address\": \"123 Downhill Rd.\",\n        \"city\": \"Santiago\",\n        \"country\": \"Chile\",\n        \"email\": null,\n        \"id\": 6,\n        \"name\": \"Company Limited\",\n        \"phone\": null\n    }\n\n### DELETE /api/companies/:id\n\nDeletes a company. Example\n\n    curl -i -X DELETE http://0.0.0.0:9292/api/companies/6\n\nReturns a status of `204 No Content`.\n\n## Directors\n\n### GET /api/companies/:company_id/directors/:id\n\nReturns details of a director. For example:\n\n    curl -i http://0.0.0.0:9292/api/companies/2/directors/2\n\nReturns \n\n    {\n        \"company_id\": 2,\n        \"id\": 2,\n        \"name\": \"John Doe\"\n    }\n\n### GET /api/companies/:company_id/directors/:id/passport\n\nRedirects (via a status `302`) to the PDF of the passport of the director.\n\n    curl -i http://0.0.0.0:9292/api/companies/2/directors/22/passport\n\nReturns\n\n    HTTP/1.1 302 Found\n    Location: http://0.0.0.0:9292/uploads/john.doe.pdf\n\n### POST /api/companies/:company_id/directors\n\nCreates a director with the posted JSON payload. For example:\n\n    curl -i -X POST --data '{\"name\": \"Jamie Doe\"}' http://0.0.0.0:9292/api/companies/2/directors\n\nReturns \n\n    {\n        \"company_id\": 2,\n        \"id\": 23,\n        \"name\": \"Jamie Doe\"\n    }\n\n### POST /api/companies/:company_id/directors/upload\n\nUploads a passport PDF and returns its temporary id. You can use this id to attach it to a director. It's designed this way to be used by Javascript frontends.\n\n    curl -i -X POST -F \"passport=@/Users/macbook/Desktop/passport.pdf\" http://0.0.0.0:9292/api/companies/2/directors/upload\n\nThis returns:\n\n    {\"passport_cache\": \"1386111293-90552-1809/passport.pdf\"}\n\nTo later create or update a director using this id, you can just add it to the payload, like so:\n\n    curl -i -X POST --data '{\"name\": \"Jamie Doe\", \"passport_cache\": \"\"1386111293-90552-1809/passport.pdf\"\"}' http://0.0.0.0:9292/api/companies/2/directors\n\n### PUT /api/companies/:company_id/directors/:id\n\nCreates a director with the posted JSON payload. For example:\n\n    curl -i -X PUT --data '{\"name\": \"Jamie Doe Jr.\"}' http://0.0.0.0:9292/api/companies/2/directors/20\n\nReturns \n\n    {\n        \"company_id\": 2,\n        \"id\": 20,\n        \"name\": \"Jamie Doe Jr.\"\n    }\n\n### DELETE /api/companies/:company_id/directors/:id\n\nDeletes a director. Example:\n\n    curl -i -X DELETE http://0.0.0.0:9292/api/companies/2/directors/23\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fianmurrays%2Fcompanies","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fianmurrays%2Fcompanies","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fianmurrays%2Fcompanies/lists"}