{"id":25690545,"url":"https://github.com/rizz404/happiness-overload-api","last_synced_at":"2026-04-13T06:49:14.535Z","repository":{"id":219768471,"uuid":"749830033","full_name":"Rizz404/happiness-overload-api","owner":"Rizz404","description":"This is a REST API for Happiness Overload website","archived":false,"fork":false,"pushed_at":"2024-03-09T13:15:55.000Z","size":720,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-24T22:17:22.835Z","etag":null,"topics":["api","express","javascript","nodejs","rest-api","typescrip","web","webdevelopment"],"latest_commit_sha":null,"homepage":"https://happiness-overload.netlify.app","language":"TypeScript","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/Rizz404.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,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-01-29T13:37:47.000Z","updated_at":"2024-02-11T12:05:10.000Z","dependencies_parsed_at":"2024-02-03T05:24:53.079Z","dependency_job_id":"dfdae300-4248-466b-af21-726fb40b2b37","html_url":"https://github.com/Rizz404/happiness-overload-api","commit_stats":null,"previous_names":["rizz404/happiness-overload"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Rizz404/happiness-overload-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rizz404%2Fhappiness-overload-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rizz404%2Fhappiness-overload-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rizz404%2Fhappiness-overload-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rizz404%2Fhappiness-overload-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Rizz404","download_url":"https://codeload.github.com/Rizz404/happiness-overload-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rizz404%2Fhappiness-overload-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31742941,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T06:26:45.479Z","status":"ssl_error","status_checked_at":"2026-04-13T06:26:44.645Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["api","express","javascript","nodejs","rest-api","typescrip","web","webdevelopment"],"created_at":"2025-02-24T22:17:25.618Z","updated_at":"2026-04-13T06:49:14.509Z","avatar_url":"https://github.com/Rizz404.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dokumentasi API\n\n## URL Dasar\n\nSemua permintaan API dibuat ke: `https://happiness-overload.netlify.app/`\n\n## Allowed Origins\n\nBerikut adalah daftar origin yang diizinkan untuk melakukan permintaan ke API ini:\n\n- `http://localhost:5000`\n- `http://localhost:3500`\n- `http://localhost:5173`\n\n## Endpoint\n\nTentu, berikut adalah dokumentasi API Anda dalam format markdown dengan bahasa Indonesia:\n\n### Prefix: /auth\n\n- `POST /google-login`: Login dengan Google (deprecated).\n- `POST /register`: Mendaftarkan user baru.\n- `POST /login`: Login user.\n- `POST /logout`: Logout user.\n\n### Prefix: /comments\n\n- `POST /create/:postId`: Membuat comment post. Memerlukan autentikasi dan bisa upload gambar.\n- `GET /post/:postId`: Mendapatkan comment post. Dapat menambahkan page dan limit sebagai parameter query.\n- `POST /replies/:commentId`: Membuat reply comment. Memerlukan autentikasi dan bisa upload gambar.\n- `GET /replies/:commentId`: Mendapatkan reply comment. Dapat menambahkan page dan limit sebagai parameter query.\n- `PATCH /upvote/:commentId`: Upvote sebuah comment. Memerlukan autentikasi.\n- `PATCH /downvote/:commentId`: Downvote sebuah comment. Memerlukan autentikasi.\n- `GET /random-comment`: Mendapatkan comment acak.\n- `GET /:commentId`: Mendapatkan comment spesifik.\n- `PATCH /:commentId`: Memperbarui comment spesifik. Memerlukan autentikasi dan bisa upload gambar.\n- `DELETE /:commentId`: Menghapus comment spesifik. Memerlukan autentikasi.\n\n### Prefix: /interests\n\n- `POST /`: Membuat minat. Memerlukan autentikasi dan bisa upload gambar.\n- `GET /`: Mendapatkan minat. Dapat menambahkan page dan limit sebagai parameter query.\n- `GET /:interestId`: Mendapatkan minat spesifik.\n- `PATCH /:interestId`: Memperbarui minat spesifik. Memerlukan autentikasi, peran admin, dan bisa upload gambar.\n\n### Prefix: /posts\n\n- `POST /`: Membuat post. Memerlukan autentikasi dan bisa upload gambar banyak.\n- `GET /`: Mendapatkan post. Dapat menambahkan page, limit, kategori, dan userId sebagai parameter query. Autentikasi adalah opsional.\n- `GET /search`: Mencari post berdasarkan judul.\n- `GET /random-post`: Mendapatkan post acak.\n- `GET /saved`: Mendapatkan post yang disimpan. Memerlukan autentikasi. Dapat menambahkan page dan limit sebagai parameter query.\n- `GET /self`: Mendapatkan post sendiri. Memerlukan autentikasi. Dapat menambahkan page dan limit sebagai parameter query.\n- `PATCH /save/:postId`: Menyimpan post. Memerlukan autentikasi.\n- `GET /cheers/:postId`: Mendapatkan user yang memberi cheers pada post.\n- `PATCH /cheers/:postId`: Memberi cheers pada post. Memerlukan autentikasi.\n- `PATCH /upvote/:postId`: Upvote sebuah post. Memerlukan autentikasi.\n- `PATCH /downvote/:postId`: Downvote sebuah post. Memerlukan autentikasi.\n- `GET /:postId`: Mendapatkan post spesifik.\n- `DELETE /:postId`: Menghapus post spesifik. Memerlukan autentikasi.\n\n### Prefix: /users\n\n- `GET /`: Mendapatkan user. Memerlukan autentikasi dan peran admin. Dapat menambahkan page dan limit sebagai parameter query.\n- `PATCH /update-password`: Memperbarui password. Memerlukan autentikasi.\n- `GET /profile`: Mendapatkan profil user. Memerlukan autentikasi.\n- `PATCH /profile`: Memperbarui profil user. Memerlukan autentikasi dan bisa upload gambar profil.\n- `GET /following`: Mendapatkan user yang diikuti. Memerlukan autentikasi. Dapat menambahkan page dan limit sebagai parameter query.\n- `GET /followers`: Mendapatkan pengikut. Memerlukan autentikasi. Dapat menambahkan page dan limit sebagai parameter query.\n- `PATCH /follow/:userId`: Mengikuti user. Memerlukan autentikasi.\n- `GET /search`: Mencari user. Dapat menambahkan page dan limit sebagai parameter query.\n- `GET /:userId`: Mendapatkan user berdasarkan ID.\n\n## Catatan\n\n- Semua rute yang memerlukan autentikasi harus menyertakan JWT yang valid di cookie (Tenang saja ini otomatis kok).\n- Parameter `/:postId`, `/:commentId`, `/:tagId`, dan `/:userId` dalam rute harus diganti dengan ID postingan, comment, tag, atau user yang sebenarnya.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frizz404%2Fhappiness-overload-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frizz404%2Fhappiness-overload-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frizz404%2Fhappiness-overload-api/lists"}