# 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.