{"id":20019083,"url":"https://github.com/stackofsugar/bssj-api","last_synced_at":"2026-05-06T16:07:21.245Z","repository":{"id":44000289,"uuid":"486930896","full_name":"stackofsugar/bssj-api","owner":"stackofsugar","description":"RESTful API for a \"Bank Sampah\" Mobile App using Laravel 9","archived":false,"fork":false,"pushed_at":"2022-12-08T02:37:40.000Z","size":81,"stargazers_count":1,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-02T03:25:37.034Z","etag":null,"topics":["api","rest-api"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stackofsugar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-04-29T10:29:00.000Z","updated_at":"2024-10-30T10:12:37.000Z","dependencies_parsed_at":"2023-01-24T07:15:13.228Z","dependency_job_id":null,"html_url":"https://github.com/stackofsugar/bssj-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/stackofsugar/bssj-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackofsugar%2Fbssj-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackofsugar%2Fbssj-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackofsugar%2Fbssj-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackofsugar%2Fbssj-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stackofsugar","download_url":"https://codeload.github.com/stackofsugar/bssj-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackofsugar%2Fbssj-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32701420,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T08:33:17.875Z","status":"ssl_error","status_checked_at":"2026-05-06T08:33:17.221Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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","rest-api"],"created_at":"2024-11-13T08:25:49.890Z","updated_at":"2026-05-06T16:07:21.209Z","avatar_url":"https://github.com/stackofsugar.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\" name=\"top\"\u003ebssj-api\u003c/h1\u003e\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://choosealicense.com/licenses/mit/\" target=\"_blank\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/License-MIT-green\"\u003e\u003c/img\u003e\u003c/a\u003e\n\u003ca href=\"#!\" target=\"_blank\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/project-planning-yellow\"\u003e\u003c/img\u003e\u003c/a\u003e\n\u003ca href=\"#!\" target=\"_blank\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/build-%3F-red\"\u003e\u003c/img\u003e\u003c/a\u003e\n\u003ca href=\"#!\" target=\"_blank\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/deployment-%3F-red\"\u003e\u003c/img\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n### Table of Contents\n\n-   [Introduction](#introduction)\n-   [Authentication](#authentication)\n-   [Errors](#errors)\n    -   [List of Status Codes](#sttlist)\n    -   [List of Error Codes](#errlist)\n-   [Core Resources](#core)\n    -   [Users](#users)\n\n# Introduction \u003ca name=\"introduction\"\u003e\u003c/a\u003e\n\n**BSSJ API** is a [REST](en.wikipedia.org/wiki/Representational_State_Transfer) API intended to be used for our [Bank Sampah](#!) mobile application, written in [Flutter](https://flutter.dev/). Our API will have method-oriented endpoints, returning JSON-encoded responses. **BSSJ API** will use stardard HTTP verbs, terminologies, and response codes.\n\n\u003cdiv align=\"center\"\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\u003cth\u003eBase URL\u003c/th\u003e\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\u003cth\u003e\u003ccode\u003eapi.???.???\u003c/code\u003e\u003c/th\u003e\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n# Authentication \u003ca name=\"authentication\"\u003e\u003c/a\u003e\n\n**BSSJ API** will use **access tokens** to authenticate user requests. The access token can be used by attaching a client's request header `Authorization: Bearer \u003cyour access token here\u003e` with `Authorization` as the header key and `Bearer \u003cyour token here\u003e` as the value. The access token can be obtained when the user registered for an account or logged in to their account. As such, **BSSJ API** will force its users to use HTTPS.\n\n# Errors \u003ca name=\"errors\"\u003e\u003c/a\u003e\n\nAs we have introduced earlier, **BSSJ API** will use conventional HTTP response codes for familiarity, indicating the status of an API request. In general, as the HTTP response convention states, codes of `2xx` range indicates success, `4xx` indicates failure, and although rare, `5xx` range indicates server failure.\n\nAll of the errors in the `4xx` range will contain an error code. A non-zero error code means that this error can usually be handled by the program, or recognized and returned to the user. The error code will be accompanied by an error message for human-readability.\n\n## List of Status Codes \u003ca name=\"sttlist\"\u003e\u003c/a\u003e\n\n| HTTP Status Code | Status Name       | Status Description                                                           |\n| ---------------- | ----------------- | ---------------------------------------------------------------------------- |\n| `200`            | OK                | Everything works as intended                                                 |\n| `400`            | Bad Request       | The server can't accept the request, usually due to an incomplete parameters |\n| `401`            | Unauthorized      | The API key provided is invalid                                              |\n| `402`            | Request Failed    | Parameters were valid, but the request fail                                  |\n| `403`            | Forbidden         | The API key provided is not of enough privillege to execute actions          |\n| `404`            | Not Found         | The requested URI doesn't exist                                              |\n| `429`            | Too Many Requests | Too many request are made, client is rate limited                            |\n| `5xx`            | Server Errors     | Something's wrong on the server's end                                        |\n\n# Core Resources \u003ca name=\"core\"\u003e\u003c/a\u003e\n\n## Users \u003ca name=\"users\"\u003e\u003c/a\u003e\n\nUsers represents user accounts registered to **BSSJ** mobile app. Guest of the **BSSJ** mobile app can register for an account, account holders can edit and delete their account, while admins can create, read, update, and delete all registered accounts in the system.\n\n### Authentication Walls\n\n**BSSJ API** will have 2 different backend authentication wall whose terminology will be used for the rest of this documentation. The first wall, `auth:user`, will be owned by any registered clients on the site, while the second wall, `auth:admin`, will be owned by registered admins.\n\n### Endpoints Type\n\n-   [Authenticate account login](#end-auth)\n-   [Register an account](#end-register)\n-   [Logout / destroy access token](#end-logout)\n-   [Get profile](#end-getprofile)\n-   [Edit Profile](#end-editprofile)\n-   [`admin-only` Retrieve all user profiles](#end-getuserprofile)\n-   [`admin-only` Retrieve a user profile by ID / username](#end-getuserprofileby)\n-   [`admin-only` Edit a user profile by ID / username](#end-edituserprofileby)\n-   Helpers:\n    -   Login and admin check\n    -   API status\n\n### Endpoints\n\n| Method | URI                         | Note                               |\n| ------ | --------------------------- | ---------------------------------- |\n| `POST` | `/login`                    | `guest-only` Authenticate          |\n| `POST` | `/register`                 | `guest-only` Register              |\n| `GET`  | `/logout`                   | `user-only` Logout / Destroy       |\n| `GET`  | `/profile`                  | `user-only` Get profile            |\n| `POST` | `/profile/update`           | `user-only` Update profile         |\n| `GET`  | `/admin/profile/get/all`    | `admin-only` Get all user profiles |\n| `GET`  | `/admin/profile/get/:id`    | `admin-only` Get a user profile    |\n| `POST` | `/admin/profile/update/:id` | `admin-only` Edit a user profile   |\n| `GET`  | `/`                         | API status                         |\n| `GET`  | `/logged`                   | Login status                       |\n| `GET`  | `/admin`                    | Admin status                       |\n\n### The User Object\n\nThe **User** object, that is, the entry on the database representing a single user, is defined below:\n\n```json\n{\n    \"id\": 1,\n    \"username\": \"jondoe\",\n    \"fullname\": \"John Doe\",\n    \"address\": \"Upper Manhattan, New York\",\n    \"phone\": \"085151515151\",\n    \"email\": \"john.doe@mymail.com\",\n    \"password\": \"$2y$10$11WHQ6ykJvmUPzDDenT...\",\n    \"is_admin\": false,\n    \"is_active\": true\n}\n```\n\n#### Attributes\n\n| Name        | Data Type | Note                           |\n| ----------- | --------- | ------------------------------ |\n| `id`        | `int`     | `unique`                       |\n| `username`  | `string`  | `unique`                       |\n| `fullname`  | `string`  |                                |\n| `address`   | `string`  |                                |\n| `phone`     | `string`  |                                |\n| `email`     | `string`  |                                |\n| `password`  | `string`  | Password-hashed using `bcrypt` |\n| `is_admin`  | `boolean` | Tags a user as an admin        |\n| `is_active` | `boolean` | Use description TBD            |\n\n### Authenticate Account Login \u003ca name=\"end-auth\"\u003e\u003c/a\u003e\n\nAuthenticates credentials provided by the user, and if matches database, returns an access token that can be used by the client. The access token **CANNOT** be shown again, so it's up to the mobile app's developer to store this token securely.\n\n| Method | URI      |\n| ------ | -------- |\n| `POST` | `/login` |\n\n#### Request Parameter\n\n| Key        | Value Type | Note       |\n| ---------- | ---------- | ---------- |\n| `username` | `string`   | `required` |\n| `password` | `string`   | `required` |\n\n#### Failure Condition\n\n-   Wrong `username` or `password`\n\n#### Example Request\n\n```json\n{\n    \"username\": \"jdoe\",\n    \"password\": \"jdoeloveicecream\"\n}\n```\n\n#### Example Success Response\n\n```json\n{\n    \"status\": {\n        \"code\": 200\n    },\n    \"response\": {\n        \"message\": \"Authentication successful\",\n        \"token\": \"\u003cyour access token here\u003e\"\n    }\n}\n```\n\n#### Example Failed Response (Wrong `username` or `password`)\n\n```json\n{\n    \"status\": {\n        \"code\": 401,\n        \"message\": \"Unauthorized\"\n    },\n    \"response\": \"Wrong password or username\"\n}\n```\n\n### Register an Account \u003ca name=\"end-register\"\u003e\u003c/a\u003e\n\nValidates credentials provided by the user, and then storing it in the database if passed.\n\n| Method | URI         |\n| ------ | ----------- |\n| `POST` | `/register` |\n\n#### Request Parameter\n\n| Key        | Value Type     | Note                    |\n| ---------- | -------------- | ----------------------- |\n| `username` | `string`       | `required`              |\n| `fullname` | `string`       | `required`              |\n| `address`  | `string`       | `required`              |\n| `phone`    | `default(int)` | `required`              |\n| `email`    | `string`       | `required`              |\n| `password` | `string`       | `required` Raw password |\n\n#### Failure Condition\n\n-   Semantic failures, such as:\n    -   Attribute(s) already exists\n    -   Attribute(s) incomplete\n-   Validation failures, with the rules:\n    -   `username`: 3-255 characters, alphanumeric with dashes\n    -   `fullname`: 3-255 characters\n    -   `address`: 3-255 characters\n    -   `phone`: max 12 numerical characters\n    -   `email`: valid email format and DNS, max 255 characters\n\n#### Example Request\n\n```json\n{\n    \"username\": \"jdoe\",\n    \"fullname\": \"John Doe\",\n    \"address\": \"Mountain View, California\",\n    \"phone\": 775655142,\n    \"email\": \"johnny@examplemail.org\",\n    \"password\": \"johndoeisthebest\"\n}\n```\n\n#### Example Success Response\n\n```json\n{\n    \"status\": {\n        \"code\": 200\n    },\n    \"response\": {\n        \"message\": \"User succesfully registered\",\n        \"username\": \"jdoe\",\n        \"token\": \"\u003cyour access token here\u003e\"\n    }\n}\n```\n\n#### Example Failed Response (username already exists)\n\n```json\n{\n    \"status\": {\n        \"code\": 422,\n        \"message\": \"Unprocessable content\"\n    },\n    \"response\": {\n        \"username\": [\"The username has already been taken.\"]\n    }\n}\n```\n\n#### Example Failed Response (username not provided)\n\n```json\n{\n    \"status\": {\n        \"code\": 422,\n        \"message\": \"Unprocessable content\"\n    },\n    \"response\": {\n        \"username\": [\"The username field is required.\"]\n    }\n}\n```\n\n#### Example Failed Response (Validation failures)\n\n```json\n{\n    \"status\": {\n        \"code\": 422,\n        \"message\": \"Unprocessable content\"\n    },\n    \"response\": {\n        \"username\": [\"The username must be at least 3 characters.\"],\n        \"phone\": [\"The phone must be a number.\"]\n    }\n}\n```\n\n### Logout / Destroy Access Token \u003ca name=\"end-logout\"\u003e\u003c/a\u003e\n\nDestroys access token of the corresponding user.\n\n| Method | URI       |\n| ------ | --------- |\n| `get`  | `/logout` |\n\n#### Request Parameter\n\nNone.\n\n#### Failure Condition\n\nNone.\n\n#### Example Request\n\n```json\n{}\n```\n\n#### Example Success Response\n\n```json\n{\n    \"status\": {\n        \"code\": 200\n    },\n    \"response\": {\n        \"message\": \"Token successfully invalidated\"\n    }\n}\n```\n\n### Get Profile \u003ca name=\"end-getprofile\"\u003e\u003c/a\u003e\n\nRetrieves profile of the corresponding user.\n\n| Method | URI        |\n| ------ | ---------- |\n| `GET`  | `/profile` |\n\n#### Request Parameter\n\nNone.\n\n#### Failure Condition\n\nNone.\n\n#### Example Request\n\n```json\n{}\n```\n\n#### Example Success Response\n\n```json\n{\n    \"status\": {\n        \"code\": 200\n    },\n    \"response\": {\n        \"logged_in\": true,\n        \"user_info\": {\n            \"id\": 1,\n            \"username\": \"jdoe\",\n            \"fullname\": \"John Doe\",\n            \"address\": \"Mountain View, California\",\n            \"phone\": \"775655142\",\n            \"email\": \"johnny@examplemail.org\",\n            \"is_admin\": 0,\n            \"is_active\": 0,\n            \"created_at\": \"2022-05-12T09:25:39.000000Z\",\n            \"updated_at\": \"2022-05-13T06:39:54.000000Z\"\n        }\n    }\n}\n```\n\n### Edit Profile \u003ca name=\"end-editprofile\"\u003e\u003c/a\u003e\n\nEdits profile of the corresponding user.\n\n| Method | URI               |\n| ------ | ----------------- |\n| `POST` | `/profile/update` |\n\n#### Request Parameter\n\nAt least one of the following attibutes should be provided.\n\n| Key        | Value Type     | Note |\n| ---------- | -------------- | ---- |\n| `username` | `string`       |      |\n| `fullname` | `string`       |      |\n| `address`  | `string`       |      |\n| `phone`    | `default(int)` |      |\n| `email`    | `string`       |      |\n| `password` | `string`       |      |\n\n#### Failure Condition\n\n-   None of the attributes is provided\n-   Validation failures with the same rules as the [register](#end-register) endpoint.\n\n#### Example Request\n\n```json\n{\n    \"fullname\": \"Charlotte\",\n    \"address\": \"Upper Manhattan\"\n}\n```\n\n#### Example Success Response\n\n```json\n{\n    \"status\": {\n        \"code\": 200\n    },\n    \"response\": {\n        \"new_profile\": {\n            \"id\": 5,\n            \"username\": \"jdoe\",\n            \"fullname\": \"Charlotte\",\n            \"address\": \"Upper Manhattan\",\n            \"phone\": \"+16369462368\",\n            \"email\": \"jdoe@examplemail.org\",\n            \"is_admin\": 0,\n            \"is_active\": 0,\n            \"created_at\": \"2022-05-12T16:03:26.000000Z\",\n            \"updated_at\": \"2022-06-07T13:20:35.000000Z\"\n        }\n    }\n}\n```\n\n#### Example Failed Response (None of the attributes is provided)\n\n```json\n{\n    \"status\": {\n        \"code\": 422,\n        \"message\": \"Unprocessable content\"\n    },\n    \"response\": {\n        \"username\": [\"Atleast one attribute should be edited!\"],\n        \"fullname\": [\"Atleast one attribute should be edited!\"],\n        \"address\": [\"Atleast one attribute should be edited!\"],\n        \"phone\": [\"Atleast one attribute should be edited!\"],\n        \"email\": [\"Atleast one attribute should be edited!\"],\n        \"password\": [\"Atleast one attribute should be edited!\"]\n    }\n}\n```\n\n### `admin-only` Retrieve All User Profiles \u003ca name=\"end-getuserprofile\"\u003e\u003c/a\u003e\n\nRetrieves all user profiles from the database. The result **will always be** paginated, and the default items per page is 10 if not specified.\n\n| Method | URI              |\n| ------ | ---------------- |\n| `GET`  | `/admin/profile` |\n\n#### Request Parameter\n\n| Key          | Value Type     | Note                         |\n| ------------ | -------------- | ---------------------------- |\n| `page_limit` | `default(int)` | `optional`, defaults to 10   |\n| `page`       | `default(int)` | Access specified page number |\n\n#### Failure Condition\n\n\u003c!-- Is it? Try empty users table? --\u003e\n\nNone.\n\n#### Example Request\n\n```json\n{\n    \"page_limit\": 5,\n    \"page\": 2\n}\n```\n\n#### Example Success Response\n\n```json\n{\n    \"status\": {\n        \"code\": 200\n    },\n    \"response\": {\n        \"total_items\": 42,\n        \"items_per_page\": 5,\n        \"last_page\": 9,\n        \"current_page\": 2,\n        \"first_id_in_page\": 6,\n        \"last_id_in_page\": 10,\n        \"data\": [\n            {\n                \"id\": 6,\n                \"username\": \"purdy.frederik\",\n                \"fullname\": \"Turner Williamson\",\n                \"address\": \"570 Harley Stream\\nNorth Alexandrechester, CA 71636-6164\",\n                \"phone\": \"+18508561766\",\n                \"email\": \"hermiston.holly@example.com\",\n                \"password\": \"$2y$10$MXd.KVlY7xBLblRzMZj25OOimt3.ucS0NHR6L4KV/BFzppNv3C7vG\",\n                \"is_admin\": 0,\n                \"is_active\": 0,\n                \"created_at\": \"2022-05-12T16:03:26.000000Z\",\n                \"updated_at\": \"2022-05-12T16:03:26.000000Z\"\n            },\n            {\n                \"id\": 7,\n                \"username\": \"sschneider\",\n                \"fullname\": \"Lysanne Dare\",\n                \"address\": \"778 Whitney Place\\nNew Jamal, DE 06344\",\n                \"phone\": \"+17817860973\",\n                \"email\": \"margarete92@example.org\",\n                \"password\": \"$2y$10$a5o.13TuzwQ5L2Kck8.A9OluIZXXDLkAna/W1PS2tf44cuCLRBPbe\",\n                \"is_admin\": 0,\n                \"is_active\": 0,\n                \"created_at\": \"2022-05-12T16:03:26.000000Z\",\n                \"updated_at\": \"2022-05-12T16:03:26.000000Z\"\n            }\n            // ...\n        ]\n    }\n}\n```\n\n### `admin-only` Retrieve a User Profile by ID / Username \u003ca name=\"end-getuserprofileby\"\u003e\u003c/a\u003e\n\nRetrieves a single user specified by username or user ID provided.\n\n| Method | URI                           |\n| ------ | ----------------------------- |\n| `GET`  | `/admin/profile/get/:segment` |\n\n#### Request Parameter\n\nNone. This endpoint can be used in 2 ways, such as `localhost/admin/profile/get/2` to get the user profile of a user with user ID `2`, or `localhost/admin/profile/get/jdoe` to get the user profile of a user with username `jdoe`.\n\n#### Failure Condition\n\n-   User does not exist\n\n#### Example Request\n\nURI: `localhost/admin/profile/get/jdoe`\n\n```json\n{}\n```\n\n#### Example Success Response\n\n```json\n{\n    \"status\": {\n        \"code\": 200\n    },\n    \"response\": {\n        \"user\": {\n            \"id\": 1,\n            \"username\": \"jdoe\",\n            \"fullname\": \"John Doe\",\n            \"address\": \"Mountain View, California\",\n            \"phone\": \"0851551225647\",\n            \"email\": \"jdoe@examplemail.com\",\n            \"password\": \"$2y$10$11W...\",\n            \"is_admin\": 0,\n            \"is_active\": 0,\n            \"created_at\": \"2022-05-12T09:25:39.000000Z\",\n            \"updated_at\": \"2022-05-13T06:39:54.000000Z\"\n        }\n    }\n}\n```\n\n#### Example Failed Response (User does not exist)\n\n```json\n{\n    \"status\": {\n        \"code\": 404,\n        \"message\": \"User not found\"\n    },\n    \"response\": \"User not found\"\n}\n```\n\n### `admin-only` Edit a User Profile by ID / Username \u003ca name=\"end-edituserprofileby\"\u003e\u003c/a\u003e\n\nEdits a user profile of a user by ID / username specified in the **URI**.\n\n| Method | URI                                       |\n| ------ | ----------------------------------------- |\n| `POST` | `localhost/admin/profile/update/:segment` |\n\n#### Request Parameter\n\nAt least one of the following attibutes should be provided.\n\n| Key        | Value Type     | Note |\n| ---------- | -------------- | ---- |\n| `username` | `string`       |      |\n| `fullname` | `string`       |      |\n| `address`  | `string`       |      |\n| `phone`    | `default(int)` |      |\n| `email`    | `string`       |      |\n| `password` | `string`       |      |\n\n#### Failure Condition\n\n-   None of the attributes is provided\n-   Validation failures with the same rules as the [register](#end-register) endpoint.\n\n#### Example Request\n\nURI: `localhost/admin/profile/update/2`\n\n```json\n{\n    \"fullname\": \"Pippa\"\n}\n```\n\n#### Example Success Response\n\n```json\n{\n    \"status\": {\n        \"code\": 200\n    },\n    \"response\": {\n        \"new_profile\": {\n            \"id\": 2,\n            \"username\": \"jdoe\",\n            \"fullname\": \"Pippa\",\n            \"address\": \"Mountain View, California\",\n            \"phone\": \"16185309184\",\n            \"email\": \"jdoee@example.net\",\n            \"password\": \"$2y$10$qBlRcjF9R/WitjEUeIS0t...\",\n            \"is_admin\": 0,\n            \"is_active\": 0,\n            \"created_at\": \"2022-05-12T16:02:43.000000Z\",\n            \"updated_at\": \"2022-06-07T13:49:09.000000Z\"\n        }\n    }\n}\n```\n\n#### Example Failed Response (None of the attributes is provided)\n\n```json\n{\n    \"status\": {\n        \"code\": 422,\n        \"message\": \"Unprocessable content\"\n    },\n    \"response\": {\n        \"username\": [\"Atleast one attribute should be edited!\"],\n        \"fullname\": [\"Atleast one attribute should be edited!\"],\n        \"address\": [\"Atleast one attribute should be edited!\"],\n        \"phone\": [\"Atleast one attribute should be edited!\"],\n        \"email\": [\"Atleast one attribute should be edited!\"],\n        \"password\": [\"Atleast one attribute should be edited!\"]\n    }\n}\n```\n\n\u003chr /\u003e\n\u003cdiv align=\"center\"\u003e\n\u003ch3\u003e\u003ca href=\"#top\"\u003eBack to top\u003c/a\u003e\u003c/h3\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstackofsugar%2Fbssj-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstackofsugar%2Fbssj-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstackofsugar%2Fbssj-api/lists"}