# Sallyer Specs ## User Endpoints - `/me [POST]`: Add user data - `/me [GET]`: Retrieve user data - `/me [PATCH]`: Update user data - `/me [DELETE]`: Delete user data ### Response Structure ```json { "id": "User unique ID", "firebase": "Firebase Response", "lang": "User Language (zh-tw, en)", "onboarding": "Boolean for onboarding survey display", "profile": { "name": "Public name", "avatar": "Profile picture URL (User upload > Google Firebase > Undefined)", "intro": "Personal note (max 150 characters)", "social_media": "Social media URLs (Facebook, YouTube, Instagram, LinkedIn)", "certificates": "Future certification badges", "phone": "Phone number (Sensitive data, not displayed to sharers, SMS verification in future)", "firstname": "First name (Sensitive data, not displayed to sharers)", "lastname": "Last name (Sensitive data, not displayed to sharers)", "birthday": "Birthdate (YYYY-MM-DD, editable only once)" }, "role": "User role (default: user, admin, editor, partner)", "profile_published": "Boolean for profile visibility", "profile_approved": "Boolean for profile approval (Editable only via React admin)", "created_at": "Timestamp of user creation", "updated_at": "Timestamp of last user update" } ``` ## System Endpoints - `/system/auth_email/:email` [GET] - Admins use this to get a User custom token for login. ### Google Token Retrieval - `/system/gtoken` [POST] - Used by React admin to obtain a Google token for login. ### Internationalization Testing - `/system/testI18n` [GET] - Used to test internationalization (i18n). ## Sharers Endpoints ### Create Site - `/sharers/create-site` [POST] - Used to add a new site. - `/sharers/create-site?type=talent` [POST] - Used to add talent-related content. - `/sharers/create-site?type=event` [POST] - Used to add event-related content. - `/sharers/create-site?type=experience` [POST] - Used to add experience-related content. - `/sharers/create-site?type=general` [POST] - Used to add general pages. - **Request Body**: - `html_body: String` - HTML content of the site. ### Update Site - `/sharers/update-site` [PATCH] - Used to update a site. - `/sharers/update-site?type=talent` [PATCH] - Used to update talent-related content. - `/sharers/update-site?type=event` [PATCH] - Used to update event-related content. - `/sharers/update-site?type=experience` [PATCH] - Used to update experience-related content. - `/sharers/update-site?type=general` [PATCH] - Used to update general pages. - **Request Body**: - `html_body: String` - HTML content of the site. ### Check Site Existence - `/sharers/check-sites` [GET] - **Query Parameters**: - `url: String` - URL of the site to be checked.