Spaces:
Sleeping
Sleeping
Download src/modules/users/users-admin.controller.ts from mahrooshishaq/SmartfolioBackend: direct link, hf CLI and curl.
- Browser
- Download file 2.33 kB
-
https://huggingface.co/spaces/mahrooshishaq/SmartfolioBackend/resolve/main/src/modules/users/users-admin.controller.ts
- Command line
-
hf download hf://spaces/mahrooshishaq/SmartfolioBackend/src/modules/users/users-admin.controller.ts
-
curl -L -o users-admin.controller.ts https://huggingface.co/spaces/mahrooshishaq/SmartfolioBackend/resolve/main/src/modules/users/users-admin.controller.ts
2.33 kB
| import { Controller, Get, HttpCode, Post, Query, UseGuards } from '@nestjs/common'; | |
| import { ApiBearerAuth, ApiOperation, ApiQuery, ApiTags } from '@nestjs/swagger'; | |
| import { JwtAuthGuard } from '../auth/jwt-auth.guard'; | |
| import { RolesGuard } from '../auth/roles.guard'; | |
| import { Roles } from '../auth/roles.decorator'; | |
| import { AdminUserQuery, UsersAdminService } from './users-admin.service'; | |
| /** | |
| * Who is on the platform. | |
| * | |
| * Guarded the same way every other admin surface is - JWT plus RolesGuard, | |
| * which reads the role from the database on each request, so a token issued | |
| * before somebody was demoted does not still open this. | |
| */ | |
| ('Admin: users') | |
| ('admin/users') | |
| (JwtAuthGuard, RolesGuard) | |
| ('admin') | |
| () | |
| export class UsersAdminController { | |
| constructor(private readonly admin: UsersAdminService) {} | |
| /** | |
| * Fill in signup dates for accounts that predate the column. | |
| * | |
| * POST because it writes, even though it takes no body. Idempotent — it only | |
| * touches rows that are still NULL — so running it twice is harmless. | |
| */ | |
| ('backfill-signup-dates') | |
| (200) | |
| ({ summary: 'Recover signup dates for accounts created before they were recorded' }) | |
| backfillSignupDates() { | |
| return this.admin.backfillSignupDates(); | |
| } | |
| ('stats') | |
| ({ summary: 'Headline counts for the user base' }) | |
| stats() { | |
| return this.admin.stats(); | |
| } | |
| () | |
| ({ summary: 'List users, filtered and sorted' }) | |
| ({ name: 'page', required: false, type: Number }) | |
| ({ name: 'limit', required: false, type: Number }) | |
| ({ name: 'search', required: false }) | |
| ({ name: 'sort', required: false, enum: ['newest', 'oldest', 'active', 'inactive', 'name'] }) | |
| ({ name: 'activity', required: false, enum: ['all', 'active', 'inactive', 'never'] }) | |
| ({ name: 'source', required: false, enum: ['all', 'campaign', 'direct'] }) | |
| ({ name: 'verified', required: false, enum: ['all', 'yes', 'no'] }) | |
| ({ name: 'availability', required: false, enum: ['all', 'looking', 'suspended'] }) | |
| ({ name: 'role', required: false, enum: ['all', 'admin', 'candidate'] }) | |
| list(() query: AdminUserQuery) { | |
| return this.admin.list(query); | |
| } | |
| } | |