mirror of
https://github.com/TandoorRecipes/recipes.git
synced 2026-01-03 13:19:16 -05:00
updated space api endpoint to list all spaces + addtional /current/ endpoint
This commit is contained in:
@@ -312,6 +312,7 @@ class UserFileViewSerializer(serializers.ModelSerializer):
|
||||
|
||||
|
||||
class SpaceSerializer(WritableNestedModelSerializer):
|
||||
created_by = UserSerializer(read_only=True)
|
||||
user_count = serializers.SerializerMethodField('get_user_count')
|
||||
recipe_count = serializers.SerializerMethodField('get_recipe_count')
|
||||
file_size_mb = serializers.SerializerMethodField('get_file_size_mb')
|
||||
|
||||
@@ -422,7 +422,13 @@ class SpaceViewSet(viewsets.ModelViewSet):
|
||||
http_method_names = ['get', 'patch']
|
||||
|
||||
def get_queryset(self):
|
||||
return self.queryset.filter(id=self.request.space.id)
|
||||
return self.queryset.filter(id__in=UserSpace.objects.filter(user=self.request.user))
|
||||
|
||||
@extend_schema(responses=SpaceSerializer(many=False))
|
||||
@decorators.action(detail=False, pagination_class=None, methods=['GET'], serializer_class=SpaceSerializer, )
|
||||
def current(self, request):
|
||||
self.queryset.filter(id=self.request.space.id)
|
||||
return Response(self.serializer_class(self.request.space, many=False).data)
|
||||
|
||||
|
||||
# TODO what is internal_note for?
|
||||
|
||||
@@ -9300,6 +9300,34 @@ export class ApiApi extends runtime.BaseAPI {
|
||||
return await response.value();
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
async apiSpaceCurrentRetrieveRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Space>> {
|
||||
const queryParameters: any = {};
|
||||
|
||||
const headerParameters: runtime.HTTPHeaders = {};
|
||||
|
||||
if (this.configuration && this.configuration.apiKey) {
|
||||
headerParameters["Authorization"] = await this.configuration.apiKey("Authorization"); // ApiKeyAuth authentication
|
||||
}
|
||||
|
||||
const response = await this.request({
|
||||
path: `/api/space/current/`,
|
||||
method: 'GET',
|
||||
headers: headerParameters,
|
||||
query: queryParameters,
|
||||
}, initOverrides);
|
||||
|
||||
return new runtime.JSONApiResponse(response, (jsonValue) => SpaceFromJSON(jsonValue));
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
async apiSpaceCurrentRetrieve(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Space> {
|
||||
const response = await this.apiSpaceCurrentRetrieveRaw(initOverrides);
|
||||
return await response.value();
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
async apiSpaceListRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Space>>> {
|
||||
|
||||
@@ -31,6 +31,12 @@ import {
|
||||
SpaceThemeEnumFromJSONTyped,
|
||||
SpaceThemeEnumToJSON,
|
||||
} from './SpaceThemeEnum';
|
||||
import type { User } from './User';
|
||||
import {
|
||||
UserFromJSON,
|
||||
UserFromJSONTyped,
|
||||
UserToJSON,
|
||||
} from './User';
|
||||
import type { UserFileView } from './UserFileView';
|
||||
import {
|
||||
UserFileViewFromJSON,
|
||||
@@ -58,10 +64,10 @@ export interface PatchedSpace {
|
||||
name?: string;
|
||||
/**
|
||||
*
|
||||
* @type {number}
|
||||
* @type {User}
|
||||
* @memberof PatchedSpace
|
||||
*/
|
||||
readonly createdBy?: number;
|
||||
readonly createdBy?: User;
|
||||
/**
|
||||
*
|
||||
* @type {Date}
|
||||
@@ -227,7 +233,7 @@ export function PatchedSpaceFromJSONTyped(json: any, ignoreDiscriminator: boolea
|
||||
|
||||
'id': json['id'] == null ? undefined : json['id'],
|
||||
'name': json['name'] == null ? undefined : json['name'],
|
||||
'createdBy': json['created_by'] == null ? undefined : json['created_by'],
|
||||
'createdBy': json['created_by'] == null ? undefined : UserFromJSON(json['created_by']),
|
||||
'createdAt': json['created_at'] == null ? undefined : (new Date(json['created_at'])),
|
||||
'message': json['message'] == null ? undefined : json['message'],
|
||||
'maxRecipes': json['max_recipes'] == null ? undefined : json['max_recipes'],
|
||||
|
||||
@@ -31,6 +31,12 @@ import {
|
||||
SpaceThemeEnumFromJSONTyped,
|
||||
SpaceThemeEnumToJSON,
|
||||
} from './SpaceThemeEnum';
|
||||
import type { User } from './User';
|
||||
import {
|
||||
UserFromJSON,
|
||||
UserFromJSONTyped,
|
||||
UserToJSON,
|
||||
} from './User';
|
||||
import type { UserFileView } from './UserFileView';
|
||||
import {
|
||||
UserFileViewFromJSON,
|
||||
@@ -58,10 +64,10 @@ export interface Space {
|
||||
name?: string;
|
||||
/**
|
||||
*
|
||||
* @type {number}
|
||||
* @type {User}
|
||||
* @memberof Space
|
||||
*/
|
||||
readonly createdBy: number | null;
|
||||
readonly createdBy: User;
|
||||
/**
|
||||
*
|
||||
* @type {Date}
|
||||
@@ -238,7 +244,7 @@ export function SpaceFromJSONTyped(json: any, ignoreDiscriminator: boolean): Spa
|
||||
|
||||
'id': json['id'] == null ? undefined : json['id'],
|
||||
'name': json['name'] == null ? undefined : json['name'],
|
||||
'createdBy': json['created_by'],
|
||||
'createdBy': UserFromJSON(json['created_by']),
|
||||
'createdAt': (new Date(json['created_at'])),
|
||||
'message': json['message'] == null ? undefined : json['message'],
|
||||
'maxRecipes': json['max_recipes'],
|
||||
|
||||
Reference in New Issue
Block a user