mirror of
https://github.com/TandoorRecipes/recipes.git
synced 2026-01-01 12:18:45 -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):
|
class SpaceSerializer(WritableNestedModelSerializer):
|
||||||
|
created_by = UserSerializer(read_only=True)
|
||||||
user_count = serializers.SerializerMethodField('get_user_count')
|
user_count = serializers.SerializerMethodField('get_user_count')
|
||||||
recipe_count = serializers.SerializerMethodField('get_recipe_count')
|
recipe_count = serializers.SerializerMethodField('get_recipe_count')
|
||||||
file_size_mb = serializers.SerializerMethodField('get_file_size_mb')
|
file_size_mb = serializers.SerializerMethodField('get_file_size_mb')
|
||||||
|
|||||||
@@ -422,7 +422,13 @@ class SpaceViewSet(viewsets.ModelViewSet):
|
|||||||
http_method_names = ['get', 'patch']
|
http_method_names = ['get', 'patch']
|
||||||
|
|
||||||
def get_queryset(self):
|
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?
|
# TODO what is internal_note for?
|
||||||
|
|||||||
@@ -9300,6 +9300,34 @@ export class ApiApi extends runtime.BaseAPI {
|
|||||||
return await response.value();
|
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>>> {
|
async apiSpaceListRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Space>>> {
|
||||||
|
|||||||
@@ -31,6 +31,12 @@ import {
|
|||||||
SpaceThemeEnumFromJSONTyped,
|
SpaceThemeEnumFromJSONTyped,
|
||||||
SpaceThemeEnumToJSON,
|
SpaceThemeEnumToJSON,
|
||||||
} from './SpaceThemeEnum';
|
} from './SpaceThemeEnum';
|
||||||
|
import type { User } from './User';
|
||||||
|
import {
|
||||||
|
UserFromJSON,
|
||||||
|
UserFromJSONTyped,
|
||||||
|
UserToJSON,
|
||||||
|
} from './User';
|
||||||
import type { UserFileView } from './UserFileView';
|
import type { UserFileView } from './UserFileView';
|
||||||
import {
|
import {
|
||||||
UserFileViewFromJSON,
|
UserFileViewFromJSON,
|
||||||
@@ -58,10 +64,10 @@ export interface PatchedSpace {
|
|||||||
name?: string;
|
name?: string;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @type {number}
|
* @type {User}
|
||||||
* @memberof PatchedSpace
|
* @memberof PatchedSpace
|
||||||
*/
|
*/
|
||||||
readonly createdBy?: number;
|
readonly createdBy?: User;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @type {Date}
|
* @type {Date}
|
||||||
@@ -227,7 +233,7 @@ export function PatchedSpaceFromJSONTyped(json: any, ignoreDiscriminator: boolea
|
|||||||
|
|
||||||
'id': json['id'] == null ? undefined : json['id'],
|
'id': json['id'] == null ? undefined : json['id'],
|
||||||
'name': json['name'] == null ? undefined : json['name'],
|
'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'])),
|
'createdAt': json['created_at'] == null ? undefined : (new Date(json['created_at'])),
|
||||||
'message': json['message'] == null ? undefined : json['message'],
|
'message': json['message'] == null ? undefined : json['message'],
|
||||||
'maxRecipes': json['max_recipes'] == null ? undefined : json['max_recipes'],
|
'maxRecipes': json['max_recipes'] == null ? undefined : json['max_recipes'],
|
||||||
|
|||||||
@@ -31,6 +31,12 @@ import {
|
|||||||
SpaceThemeEnumFromJSONTyped,
|
SpaceThemeEnumFromJSONTyped,
|
||||||
SpaceThemeEnumToJSON,
|
SpaceThemeEnumToJSON,
|
||||||
} from './SpaceThemeEnum';
|
} from './SpaceThemeEnum';
|
||||||
|
import type { User } from './User';
|
||||||
|
import {
|
||||||
|
UserFromJSON,
|
||||||
|
UserFromJSONTyped,
|
||||||
|
UserToJSON,
|
||||||
|
} from './User';
|
||||||
import type { UserFileView } from './UserFileView';
|
import type { UserFileView } from './UserFileView';
|
||||||
import {
|
import {
|
||||||
UserFileViewFromJSON,
|
UserFileViewFromJSON,
|
||||||
@@ -58,10 +64,10 @@ export interface Space {
|
|||||||
name?: string;
|
name?: string;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @type {number}
|
* @type {User}
|
||||||
* @memberof Space
|
* @memberof Space
|
||||||
*/
|
*/
|
||||||
readonly createdBy: number | null;
|
readonly createdBy: User;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @type {Date}
|
* @type {Date}
|
||||||
@@ -238,7 +244,7 @@ export function SpaceFromJSONTyped(json: any, ignoreDiscriminator: boolean): Spa
|
|||||||
|
|
||||||
'id': json['id'] == null ? undefined : json['id'],
|
'id': json['id'] == null ? undefined : json['id'],
|
||||||
'name': json['name'] == null ? undefined : json['name'],
|
'name': json['name'] == null ? undefined : json['name'],
|
||||||
'createdBy': json['created_by'],
|
'createdBy': UserFromJSON(json['created_by']),
|
||||||
'createdAt': (new Date(json['created_at'])),
|
'createdAt': (new Date(json['created_at'])),
|
||||||
'message': json['message'] == null ? undefined : json['message'],
|
'message': json['message'] == null ? undefined : json['message'],
|
||||||
'maxRecipes': json['max_recipes'],
|
'maxRecipes': json['max_recipes'],
|
||||||
|
|||||||
Reference in New Issue
Block a user