invite link basics

This commit is contained in:
vabene1111
2022-06-01 17:42:07 +02:00
parent f41e4c62d4
commit 2afab2aec8
9 changed files with 714 additions and 9 deletions

View File

@@ -20,7 +20,7 @@ from cookbook.models import (Automation, BookmarkletImport, Comment, CookLog, Cu
RecipeBookEntry, RecipeImport, ShareLink, ShoppingList, RecipeBookEntry, RecipeImport, ShareLink, ShoppingList,
ShoppingListEntry, ShoppingListRecipe, Step, Storage, Supermarket, ShoppingListEntry, ShoppingListRecipe, Step, Storage, Supermarket,
SupermarketCategory, SupermarketCategoryRelation, Sync, SyncLog, Unit, SupermarketCategory, SupermarketCategoryRelation, Sync, SyncLog, Unit,
UserFile, UserPreference, ViewLog, Space, UserSpace) UserFile, UserPreference, ViewLog, Space, UserSpace, InviteLink)
from cookbook.templatetags.custom_tags import markdown from cookbook.templatetags.custom_tags import markdown
from recipes.settings import MEDIA_URL, AWS_ENABLED from recipes.settings import MEDIA_URL, AWS_ENABLED
@@ -1026,6 +1026,21 @@ class AutomationSerializer(serializers.ModelSerializer):
read_only_fields = ('created_by',) read_only_fields = ('created_by',)
class InviteLinkSerializer(WritableNestedModelSerializer):
group = GroupSerializer()
def create(self, validated_data):
validated_data['created_by'] = self.context['request'].user
validated_data['space'] = self.context['request'].space
return super().create(validated_data)
class Meta:
model = InviteLink
fields = (
'id', 'uuid', 'email', 'group', 'valid_until', 'used_by', 'created_by', 'created_at',)
read_only_fields = ('id', 'uuid', 'email', 'created_by', 'created_at',)
# CORS, REST and Scopes aren't currently working # CORS, REST and Scopes aren't currently working
# Scopes are evaluating before REST has authenticated the user assigning a None space # Scopes are evaluating before REST has authenticated the user assigning a None space
# I've made the change below to fix the bookmarklet, other serializers likely need a similar/better fix # I've made the change below to fix the bookmarklet, other serializers likely need a similar/better fix

View File

@@ -27,6 +27,7 @@ router.register(r'import-log', api.ImportLogViewSet)
router.register(r'export-log', api.ExportLogViewSet) router.register(r'export-log', api.ExportLogViewSet)
router.register(r'group', api.GroupViewSet) router.register(r'group', api.GroupViewSet)
router.register(r'ingredient', api.IngredientViewSet) router.register(r'ingredient', api.IngredientViewSet)
router.register(r'invite-link', api.InviteLinkViewSet)
router.register(r'keyword', api.KeywordViewSet) router.register(r'keyword', api.KeywordViewSet)
router.register(r'meal-plan', api.MealPlanViewSet) router.register(r'meal-plan', api.MealPlanViewSet)
router.register(r'meal-type', api.MealTypeViewSet) router.register(r'meal-type', api.MealTypeViewSet)

View File

@@ -53,7 +53,7 @@ from cookbook.models import (Automation, BookmarkletImport, CookLog, CustomFilte
Recipe, RecipeBook, RecipeBookEntry, ShareLink, ShoppingList, Recipe, RecipeBook, RecipeBookEntry, ShareLink, ShoppingList,
ShoppingListEntry, ShoppingListRecipe, Step, Storage, Supermarket, ShoppingListEntry, ShoppingListRecipe, Step, Storage, Supermarket,
SupermarketCategory, SupermarketCategoryRelation, Sync, SyncLog, Unit, SupermarketCategory, SupermarketCategoryRelation, Sync, SyncLog, Unit,
UserFile, UserPreference, ViewLog, Space, UserSpace) UserFile, UserPreference, ViewLog, Space, UserSpace, InviteLink)
from cookbook.provider.dropbox import Dropbox from cookbook.provider.dropbox import Dropbox
from cookbook.provider.local import Local from cookbook.provider.local import Local
from cookbook.provider.nextcloud import Nextcloud from cookbook.provider.nextcloud import Nextcloud
@@ -74,7 +74,7 @@ from cookbook.serializer import (AutomationSerializer, BookmarkletImportSerializ
SupermarketCategorySerializer, SupermarketSerializer, SupermarketCategorySerializer, SupermarketSerializer,
SyncLogSerializer, SyncSerializer, UnitSerializer, SyncLogSerializer, SyncSerializer, UnitSerializer,
UserFileSerializer, UserNameSerializer, UserPreferenceSerializer, UserFileSerializer, UserNameSerializer, UserPreferenceSerializer,
ViewLogSerializer, IngredientSimpleSerializer, BookmarkletImportListSerializer, RecipeFromSourceSerializer, SpaceSerializer, UserSpaceSerializer, GroupSerializer) ViewLogSerializer, IngredientSimpleSerializer, BookmarkletImportListSerializer, RecipeFromSourceSerializer, SpaceSerializer, UserSpaceSerializer, GroupSerializer, InviteLinkSerializer)
from recipes import settings from recipes import settings
@@ -1044,6 +1044,16 @@ class AutomationViewSet(viewsets.ModelViewSet, StandardFilterMixin):
return super().get_queryset() return super().get_queryset()
class InviteLinkViewSet(viewsets.ModelViewSet, StandardFilterMixin):
queryset = InviteLink.objects
serializer_class = InviteLinkSerializer
permission_classes = [CustomIsSpaceOwner]
def get_queryset(self):
self.queryset = self.queryset.filter(space=self.request.space).all()
return super().get_queryset()
class CustomFilterViewSet(viewsets.ModelViewSet, StandardFilterMixin): class CustomFilterViewSet(viewsets.ModelViewSet, StandardFilterMixin):
queryset = CustomFilter.objects queryset = CustomFilter.objects
serializer_class = CustomFilterSerializer serializer_class = CustomFilterSerializer

View File

@@ -46,6 +46,72 @@
</div> </div>
<div class="row mt-2">
<div class="col col-12">
<button @click="show_invite_create = true">Create</button>
<div v-if="invite_links !== undefined">
<table class="table">
<thead>
<tr>
<th>#</th>
<th>{{ $t('Email') }}</th>
<th>{{ $t('Group') }}</th>
<th>{{ $t('Token') }}</th>
<th></th>
</tr>
</thead>
<tr v-for="il in invite_links" :key="il.id">
<td>{{ il.id }}</td>
<td>{{ il.email }}</td>
<td>
<generic-multiselect
class="input-group-text m-0 p-0"
@change="il.group = $event.val;"
label="name"
:initial_single_selection="il.group"
:model="Models.GROUP"
style="flex-grow: 1; flex-shrink: 1; flex-basis: 0"
:limit="10"
:multiple="false"
/>
</td>
<td><input class="form-control" disabled v-model="il.uuid"></td>
<td><input type="date" v-model="il.valid_until" class="form-control"></td>
<td>
<b-dropdown no-caret right>
<template #button-content>
<i class="fas fa-ellipsis-v"></i>
</template>
<b-dropdown-item>
<i class="fas fa-share-alt"></i>
</b-dropdown-item>
<b-dropdown-item>
<i class="fas fa-link"></i>
</b-dropdown-item>
<b-dropdown-item>
<i class="far fa-clipboard"></i>
</b-dropdown-item>
<b-dropdown-item>
{{ $t('Delete') }}
</b-dropdown-item>
</b-dropdown>
</td>
</tr>
</table>
</div>
</div>
</div>
<generic-modal-form :model="Models.INVITE_LINK" :action="Actions.CREATE" :show="show_invite_create"
@finish-action="show_invite_create = false; loadInviteLinks()"/>
</div> </div>
</template> </template>
@@ -59,17 +125,20 @@ import {ApiMixin, ResolveUrlMixin, StandardToasts, ToastMixin} from "@/utils/uti
import {ApiApiFactory} from "@/utils/openapi/api.ts" import {ApiApiFactory} from "@/utils/openapi/api.ts"
import GenericMultiselect from "@/components/GenericMultiselect"; import GenericMultiselect from "@/components/GenericMultiselect";
import GenericModalForm from "@/components/Modals/GenericModalForm";
Vue.use(BootstrapVue) Vue.use(BootstrapVue)
export default { export default {
name: "SupermarketView", name: "SupermarketView",
mixins: [ResolveUrlMixin, ToastMixin, ApiMixin], mixins: [ResolveUrlMixin, ToastMixin, ApiMixin],
components: {GenericMultiselect}, components: {GenericMultiselect, GenericModalForm},
data() { data() {
return { return {
space: undefined, space: undefined,
user_spaces: [] user_spaces: [],
invite_links: [],
show_invite_create: false
} }
}, },
mounted() { mounted() {
@@ -82,8 +151,15 @@ export default {
apiFactory.listUserSpaces().then(r => { apiFactory.listUserSpaces().then(r => {
this.user_spaces = r.data this.user_spaces = r.data
}) })
this.loadInviteLinks()
}, },
methods: { methods: {
loadInviteLinks: function () {
let apiFactory = new ApiApiFactory()
apiFactory.listInviteLinks().then(r => {
this.invite_links = r.data
})
},
updateUserSpace: function (userSpace) { updateUserSpace: function (userSpace) {
let apiFactory = new ApiApiFactory() let apiFactory = new ApiApiFactory()
apiFactory.partialUpdateUserSpace(userSpace.id, userSpace).then(r => { apiFactory.partialUpdateUserSpace(userSpace.id, userSpace).then(r => {

View File

@@ -0,0 +1,36 @@
<template>
<div>
<b-form-group v-bind:label="label" class="mb-3">
<b-form-input v-model="new_value" type="date" ></b-form-input>
<em v-if="help" class="small text-muted">{{ help }}</em>
<small v-if="subtitle" class="text-muted">{{ subtitle }}</small>
</b-form-group>
</div>
</template>
<script>
export default {
name: "DateInput",
props: {
field: { type: String, default: "You Forgot To Set Field Name" },
label: { type: String, default: "Text Field" },
value: { type: String, default: "" },
help: { type: String, default: undefined },
subtitle: { type: String, default: undefined },
},
data() {
return {
new_value: undefined,
}
},
mounted() {
this.new_value = this.value
},
watch: {
new_value: function () {
this.$root.$emit("change", this.field, this.new_value)
},
},
methods: {},
}
</script>

View File

@@ -14,6 +14,7 @@
<emoji-input v-if="visibleCondition(f, 'emoji')" :label="f.label" :value="f.value" :field="f.field" @change="storeValue" /> <emoji-input v-if="visibleCondition(f, 'emoji')" :label="f.label" :value="f.value" :field="f.field" @change="storeValue" />
<file-input v-if="visibleCondition(f, 'file')" :label="f.label" :value="f.value" :field="f.field" @change="storeValue" /> <file-input v-if="visibleCondition(f, 'file')" :label="f.label" :value="f.value" :field="f.field" @change="storeValue" />
<small-text v-if="visibleCondition(f, 'smalltext')" :value="f.value" /> <small-text v-if="visibleCondition(f, 'smalltext')" :value="f.value" />
<date-input v-if="visibleCondition(f, 'date')" :label="f.label" :value="f.value" :field="f.field" :help="showHelp && f.help" :subtitle="f.subtitle" />
</div> </div>
<template v-slot:modal-footer> <template v-slot:modal-footer>
<div class="row w-100"> <div class="row w-100">
@@ -42,6 +43,7 @@ import { ApiMixin, StandardToasts, ToastMixin, getUserPreference } from "@/utils
import CheckboxInput from "@/components/Modals/CheckboxInput" import CheckboxInput from "@/components/Modals/CheckboxInput"
import LookupInput from "@/components/Modals/LookupInput" import LookupInput from "@/components/Modals/LookupInput"
import TextInput from "@/components/Modals/TextInput" import TextInput from "@/components/Modals/TextInput"
import DateInput from "@/components/Modals/DateInput"
import EmojiInput from "@/components/Modals/EmojiInput" import EmojiInput from "@/components/Modals/EmojiInput"
import ChoiceInput from "@/components/Modals/ChoiceInput" import ChoiceInput from "@/components/Modals/ChoiceInput"
import FileInput from "@/components/Modals/FileInput" import FileInput from "@/components/Modals/FileInput"
@@ -50,7 +52,7 @@ import HelpBadge from "@/components/Badges/Help"
export default { export default {
name: "GenericModalForm", name: "GenericModalForm",
components: { FileInput, CheckboxInput, LookupInput, TextInput, EmojiInput, ChoiceInput, SmallText, HelpBadge }, components: { FileInput, CheckboxInput, LookupInput, TextInput, EmojiInput, ChoiceInput, SmallText, HelpBadge,DateInput },
mixins: [ApiMixin, ToastMixin], mixins: [ApiMixin, ToastMixin],
props: { props: {
model: { required: true, type: Object }, model: { required: true, type: Object },

View File

@@ -412,5 +412,6 @@
"Warning_Delete_Supermarket_Category": "Deleting a supermarket category will also delete all relations to foods. Are you sure?", "Warning_Delete_Supermarket_Category": "Deleting a supermarket category will also delete all relations to foods. Are you sure?",
"New_Supermarket": "Create new supermarket", "New_Supermarket": "Create new supermarket",
"New_Supermarket_Category": "Create new supermarket category", "New_Supermarket_Category": "Create new supermarket category",
"Are_You_Sure": "Are you sure?" "Are_You_Sure": "Are you sure?",
"Valid Until": "Valid Until"
} }

View File

@@ -663,6 +663,41 @@ export class Models {
}, },
}, },
} }
static INVITE_LINK = {
name: "InviteLink",
apiName: "InviteLink",
paginated: false,
create: {
params: [["email", "group", "valid_until"]],
form: {
email: {
form_field: true,
type: "text",
field: "email",
label: "Email",
placeholder: "",
},
group: {
form_field: true,
type: "lookup",
field: "group",
list: "GROUP",
list_label: "name",
label: "Group",
placeholder: "",
},
valid_until: {
form_field: true,
type: "date",
field: "valid_until",
label: "Valid Until",
placeholder: "",
},
},
},
}
static USER = { static USER = {
name: "User", name: "User",
apiName: "User", apiName: "User",

View File

@@ -1315,6 +1315,61 @@ export interface InlineResponse2009 {
*/ */
results?: Array<SyncLog>; results?: Array<SyncLog>;
} }
/**
*
* @export
* @interface InviteLink
*/
export interface InviteLink {
/**
*
* @type {number}
* @memberof InviteLink
*/
id?: number;
/**
*
* @type {string}
* @memberof InviteLink
*/
uuid?: string;
/**
*
* @type {string}
* @memberof InviteLink
*/
email?: string;
/**
*
* @type {number}
* @memberof InviteLink
*/
group: number;
/**
*
* @type {string}
* @memberof InviteLink
*/
valid_until?: string;
/**
*
* @type {number}
* @memberof InviteLink
*/
used_by?: number | null;
/**
*
* @type {string}
* @memberof InviteLink
*/
created_by?: string;
/**
*
* @type {string}
* @memberof InviteLink
*/
created_at?: string;
}
/** /**
* *
* @export * @export
@@ -3634,10 +3689,10 @@ export interface UserSpace {
space?: string; space?: string;
/** /**
* *
* @type {Array<number>} * @type {Array<UserSpaceGroups>}
* @memberof UserSpace * @memberof UserSpace
*/ */
groups: Array<number>; groups: Array<UserSpaceGroups>;
/** /**
* *
* @type {string} * @type {string}
@@ -3651,6 +3706,25 @@ export interface UserSpace {
*/ */
updated_at?: string; updated_at?: string;
} }
/**
*
* @export
* @interface UserSpaceGroups
*/
export interface UserSpaceGroups {
/**
*
* @type {number}
* @memberof UserSpaceGroups
*/
id?: number;
/**
*
* @type {string}
* @memberof UserSpaceGroups
*/
name: string;
}
/** /**
* *
* @export * @export
@@ -3953,6 +4027,39 @@ export const ApiApiAxiosParamCreator = function (configuration?: Configuration)
options: localVarRequestOptions, options: localVarRequestOptions,
}; };
}, },
/**
*
* @param {InviteLink} [inviteLink]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
createInviteLink: async (inviteLink?: InviteLink, options: any = {}): Promise<RequestArgs> => {
const localVarPath = `/api/invite-link/`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
localVarHeaderParameter['Content-Type'] = 'application/json';
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
localVarRequestOptions.data = serializeDataIfNeeded(inviteLink, localVarRequestOptions, configuration)
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/** /**
* *
* @param {Keyword} [keyword] * @param {Keyword} [keyword]
@@ -4890,6 +4997,39 @@ export const ApiApiAxiosParamCreator = function (configuration?: Configuration)
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/**
*
* @param {string} id A unique integer value identifying this invite link.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
destroyInviteLink: async (id: string, options: any = {}): Promise<RequestArgs> => {
// verify required parameter 'id' is not null or undefined
assertParamExists('destroyInviteLink', 'id', id)
const localVarPath = `/api/invite-link/{id}/`
.replace(`{${"id"}}`, encodeURIComponent(String(id)));
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query); setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
@@ -5952,6 +6092,35 @@ export const ApiApiAxiosParamCreator = function (configuration?: Configuration)
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/**
*
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listInviteLinks: async (options: any = {}): Promise<RequestArgs> => {
const localVarPath = `/api/invite-link/`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query); setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
@@ -7379,6 +7548,43 @@ export const ApiApiAxiosParamCreator = function (configuration?: Configuration)
options: localVarRequestOptions, options: localVarRequestOptions,
}; };
}, },
/**
*
* @param {string} id A unique integer value identifying this invite link.
* @param {InviteLink} [inviteLink]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
partialUpdateInviteLink: async (id: string, inviteLink?: InviteLink, options: any = {}): Promise<RequestArgs> => {
// verify required parameter 'id' is not null or undefined
assertParamExists('partialUpdateInviteLink', 'id', id)
const localVarPath = `/api/invite-link/{id}/`
.replace(`{${"id"}}`, encodeURIComponent(String(id)));
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
localVarHeaderParameter['Content-Type'] = 'application/json';
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
localVarRequestOptions.data = serializeDataIfNeeded(inviteLink, localVarRequestOptions, configuration)
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/** /**
* *
* @param {string} id A unique integer value identifying this keyword. * @param {string} id A unique integer value identifying this keyword.
@@ -8532,6 +8738,39 @@ export const ApiApiAxiosParamCreator = function (configuration?: Configuration)
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/**
*
* @param {string} id A unique integer value identifying this invite link.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
retrieveInviteLink: async (id: string, options: any = {}): Promise<RequestArgs> => {
// verify required parameter 'id' is not null or undefined
assertParamExists('retrieveInviteLink', 'id', id)
const localVarPath = `/api/invite-link/{id}/`
.replace(`{${"id"}}`, encodeURIComponent(String(id)));
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query); setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
@@ -9670,6 +9909,43 @@ export const ApiApiAxiosParamCreator = function (configuration?: Configuration)
options: localVarRequestOptions, options: localVarRequestOptions,
}; };
}, },
/**
*
* @param {string} id A unique integer value identifying this invite link.
* @param {InviteLink} [inviteLink]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
updateInviteLink: async (id: string, inviteLink?: InviteLink, options: any = {}): Promise<RequestArgs> => {
// verify required parameter 'id' is not null or undefined
assertParamExists('updateInviteLink', 'id', id)
const localVarPath = `/api/invite-link/{id}/`
.replace(`{${"id"}}`, encodeURIComponent(String(id)));
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
localVarHeaderParameter['Content-Type'] = 'application/json';
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
localVarRequestOptions.data = serializeDataIfNeeded(inviteLink, localVarRequestOptions, configuration)
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/** /**
* *
* @param {string} id A unique integer value identifying this keyword. * @param {string} id A unique integer value identifying this keyword.
@@ -10358,6 +10634,43 @@ export const ApiApiAxiosParamCreator = function (configuration?: Configuration)
options: localVarRequestOptions, options: localVarRequestOptions,
}; };
}, },
/**
*
* @param {string} id A unique integer value identifying this user space.
* @param {UserSpace} [userSpace]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
updateUserSpace: async (id: string, userSpace?: UserSpace, options: any = {}): Promise<RequestArgs> => {
// verify required parameter 'id' is not null or undefined
assertParamExists('updateUserSpace', 'id', id)
const localVarPath = `/api/user-space/{id}/`
.replace(`{${"id"}}`, encodeURIComponent(String(id)));
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
localVarHeaderParameter['Content-Type'] = 'application/json';
setSearchParams(localVarUrlObj, localVarQueryParameter, options.query);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
localVarRequestOptions.data = serializeDataIfNeeded(userSpace, localVarRequestOptions, configuration)
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/** /**
* *
* @param {string} id A unique integer value identifying this view log. * @param {string} id A unique integer value identifying this view log.
@@ -10485,6 +10798,16 @@ export const ApiApiFp = function(configuration?: Configuration) {
const localVarAxiosArgs = await localVarAxiosParamCreator.createIngredient(ingredient, options); const localVarAxiosArgs = await localVarAxiosParamCreator.createIngredient(ingredient, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
}, },
/**
*
* @param {InviteLink} [inviteLink]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async createInviteLink(inviteLink?: InviteLink, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<InviteLink>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.createInviteLink(inviteLink, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
},
/** /**
* *
* @param {Keyword} [keyword] * @param {Keyword} [keyword]
@@ -10768,6 +11091,16 @@ export const ApiApiFp = function(configuration?: Configuration) {
const localVarAxiosArgs = await localVarAxiosParamCreator.destroyIngredient(id, options); const localVarAxiosArgs = await localVarAxiosParamCreator.destroyIngredient(id, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
}, },
/**
*
* @param {string} id A unique integer value identifying this invite link.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async destroyInviteLink(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.destroyInviteLink(id, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
},
/** /**
* *
* @param {string} id A unique integer value identifying this keyword. * @param {string} id A unique integer value identifying this keyword.
@@ -11083,6 +11416,15 @@ export const ApiApiFp = function(configuration?: Configuration) {
const localVarAxiosArgs = await localVarAxiosParamCreator.listIngredients(page, pageSize, options); const localVarAxiosArgs = await localVarAxiosParamCreator.listIngredients(page, pageSize, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
}, },
/**
*
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async listInviteLinks(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<InviteLink>>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.listInviteLinks(options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
},
/** /**
* *
* @param {string} [query] Query string matched against keyword name. * @param {string} [query] Query string matched against keyword name.
@@ -11488,6 +11830,17 @@ export const ApiApiFp = function(configuration?: Configuration) {
const localVarAxiosArgs = await localVarAxiosParamCreator.partialUpdateIngredient(id, ingredient, options); const localVarAxiosArgs = await localVarAxiosParamCreator.partialUpdateIngredient(id, ingredient, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
}, },
/**
*
* @param {string} id A unique integer value identifying this invite link.
* @param {InviteLink} [inviteLink]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async partialUpdateInviteLink(id: string, inviteLink?: InviteLink, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<InviteLink>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.partialUpdateInviteLink(id, inviteLink, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
},
/** /**
* *
* @param {string} id A unique integer value identifying this keyword. * @param {string} id A unique integer value identifying this keyword.
@@ -11832,6 +12185,16 @@ export const ApiApiFp = function(configuration?: Configuration) {
const localVarAxiosArgs = await localVarAxiosParamCreator.retrieveIngredient(id, options); const localVarAxiosArgs = await localVarAxiosParamCreator.retrieveIngredient(id, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
}, },
/**
*
* @param {string} id A unique integer value identifying this invite link.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async retrieveInviteLink(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<InviteLink>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.retrieveInviteLink(id, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
},
/** /**
* *
* @param {string} id A unique integer value identifying this keyword. * @param {string} id A unique integer value identifying this keyword.
@@ -12172,6 +12535,17 @@ export const ApiApiFp = function(configuration?: Configuration) {
const localVarAxiosArgs = await localVarAxiosParamCreator.updateIngredient(id, ingredient, options); const localVarAxiosArgs = await localVarAxiosParamCreator.updateIngredient(id, ingredient, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
}, },
/**
*
* @param {string} id A unique integer value identifying this invite link.
* @param {InviteLink} [inviteLink]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async updateInviteLink(id: string, inviteLink?: InviteLink, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<InviteLink>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.updateInviteLink(id, inviteLink, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
},
/** /**
* *
* @param {string} id A unique integer value identifying this keyword. * @param {string} id A unique integer value identifying this keyword.
@@ -12373,6 +12747,17 @@ export const ApiApiFp = function(configuration?: Configuration) {
const localVarAxiosArgs = await localVarAxiosParamCreator.updateUserPreference(user, userPreference, options); const localVarAxiosArgs = await localVarAxiosParamCreator.updateUserPreference(user, userPreference, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
}, },
/**
*
* @param {string} id A unique integer value identifying this user space.
* @param {UserSpace} [userSpace]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async updateUserSpace(id: string, userSpace?: UserSpace, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UserSpace>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.updateUserSpace(id, userSpace, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
},
/** /**
* *
* @param {string} id A unique integer value identifying this view log. * @param {string} id A unique integer value identifying this view log.
@@ -12466,6 +12851,15 @@ export const ApiApiFactory = function (configuration?: Configuration, basePath?:
createIngredient(ingredient?: Ingredient, options?: any): AxiosPromise<Ingredient> { createIngredient(ingredient?: Ingredient, options?: any): AxiosPromise<Ingredient> {
return localVarFp.createIngredient(ingredient, options).then((request) => request(axios, basePath)); return localVarFp.createIngredient(ingredient, options).then((request) => request(axios, basePath));
}, },
/**
*
* @param {InviteLink} [inviteLink]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
createInviteLink(inviteLink?: InviteLink, options?: any): AxiosPromise<InviteLink> {
return localVarFp.createInviteLink(inviteLink, options).then((request) => request(axios, basePath));
},
/** /**
* *
* @param {Keyword} [keyword] * @param {Keyword} [keyword]
@@ -12721,6 +13115,15 @@ export const ApiApiFactory = function (configuration?: Configuration, basePath?:
destroyIngredient(id: string, options?: any): AxiosPromise<void> { destroyIngredient(id: string, options?: any): AxiosPromise<void> {
return localVarFp.destroyIngredient(id, options).then((request) => request(axios, basePath)); return localVarFp.destroyIngredient(id, options).then((request) => request(axios, basePath));
}, },
/**
*
* @param {string} id A unique integer value identifying this invite link.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
destroyInviteLink(id: string, options?: any): AxiosPromise<void> {
return localVarFp.destroyInviteLink(id, options).then((request) => request(axios, basePath));
},
/** /**
* *
* @param {string} id A unique integer value identifying this keyword. * @param {string} id A unique integer value identifying this keyword.
@@ -13005,6 +13408,14 @@ export const ApiApiFactory = function (configuration?: Configuration, basePath?:
listIngredients(page?: number, pageSize?: number, options?: any): AxiosPromise<InlineResponse2004> { listIngredients(page?: number, pageSize?: number, options?: any): AxiosPromise<InlineResponse2004> {
return localVarFp.listIngredients(page, pageSize, options).then((request) => request(axios, basePath)); return localVarFp.listIngredients(page, pageSize, options).then((request) => request(axios, basePath));
}, },
/**
*
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
listInviteLinks(options?: any): AxiosPromise<Array<InviteLink>> {
return localVarFp.listInviteLinks(options).then((request) => request(axios, basePath));
},
/** /**
* *
* @param {string} [query] Query string matched against keyword name. * @param {string} [query] Query string matched against keyword name.
@@ -13374,6 +13785,16 @@ export const ApiApiFactory = function (configuration?: Configuration, basePath?:
partialUpdateIngredient(id: string, ingredient?: Ingredient, options?: any): AxiosPromise<Ingredient> { partialUpdateIngredient(id: string, ingredient?: Ingredient, options?: any): AxiosPromise<Ingredient> {
return localVarFp.partialUpdateIngredient(id, ingredient, options).then((request) => request(axios, basePath)); return localVarFp.partialUpdateIngredient(id, ingredient, options).then((request) => request(axios, basePath));
}, },
/**
*
* @param {string} id A unique integer value identifying this invite link.
* @param {InviteLink} [inviteLink]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
partialUpdateInviteLink(id: string, inviteLink?: InviteLink, options?: any): AxiosPromise<InviteLink> {
return localVarFp.partialUpdateInviteLink(id, inviteLink, options).then((request) => request(axios, basePath));
},
/** /**
* *
* @param {string} id A unique integer value identifying this keyword. * @param {string} id A unique integer value identifying this keyword.
@@ -13686,6 +14107,15 @@ export const ApiApiFactory = function (configuration?: Configuration, basePath?:
retrieveIngredient(id: string, options?: any): AxiosPromise<Ingredient> { retrieveIngredient(id: string, options?: any): AxiosPromise<Ingredient> {
return localVarFp.retrieveIngredient(id, options).then((request) => request(axios, basePath)); return localVarFp.retrieveIngredient(id, options).then((request) => request(axios, basePath));
}, },
/**
*
* @param {string} id A unique integer value identifying this invite link.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
retrieveInviteLink(id: string, options?: any): AxiosPromise<InviteLink> {
return localVarFp.retrieveInviteLink(id, options).then((request) => request(axios, basePath));
},
/** /**
* *
* @param {string} id A unique integer value identifying this keyword. * @param {string} id A unique integer value identifying this keyword.
@@ -13993,6 +14423,16 @@ export const ApiApiFactory = function (configuration?: Configuration, basePath?:
updateIngredient(id: string, ingredient?: Ingredient, options?: any): AxiosPromise<Ingredient> { updateIngredient(id: string, ingredient?: Ingredient, options?: any): AxiosPromise<Ingredient> {
return localVarFp.updateIngredient(id, ingredient, options).then((request) => request(axios, basePath)); return localVarFp.updateIngredient(id, ingredient, options).then((request) => request(axios, basePath));
}, },
/**
*
* @param {string} id A unique integer value identifying this invite link.
* @param {InviteLink} [inviteLink]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
updateInviteLink(id: string, inviteLink?: InviteLink, options?: any): AxiosPromise<InviteLink> {
return localVarFp.updateInviteLink(id, inviteLink, options).then((request) => request(axios, basePath));
},
/** /**
* *
* @param {string} id A unique integer value identifying this keyword. * @param {string} id A unique integer value identifying this keyword.
@@ -14176,6 +14616,16 @@ export const ApiApiFactory = function (configuration?: Configuration, basePath?:
updateUserPreference(user: string, userPreference?: UserPreference, options?: any): AxiosPromise<UserPreference> { updateUserPreference(user: string, userPreference?: UserPreference, options?: any): AxiosPromise<UserPreference> {
return localVarFp.updateUserPreference(user, userPreference, options).then((request) => request(axios, basePath)); return localVarFp.updateUserPreference(user, userPreference, options).then((request) => request(axios, basePath));
}, },
/**
*
* @param {string} id A unique integer value identifying this user space.
* @param {UserSpace} [userSpace]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
updateUserSpace(id: string, userSpace?: UserSpace, options?: any): AxiosPromise<UserSpace> {
return localVarFp.updateUserSpace(id, userSpace, options).then((request) => request(axios, basePath));
},
/** /**
* *
* @param {string} id A unique integer value identifying this view log. * @param {string} id A unique integer value identifying this view log.
@@ -14284,6 +14734,17 @@ export class ApiApi extends BaseAPI {
return ApiApiFp(this.configuration).createIngredient(ingredient, options).then((request) => request(this.axios, this.basePath)); return ApiApiFp(this.configuration).createIngredient(ingredient, options).then((request) => request(this.axios, this.basePath));
} }
/**
*
* @param {InviteLink} [inviteLink]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof ApiApi
*/
public createInviteLink(inviteLink?: InviteLink, options?: any) {
return ApiApiFp(this.configuration).createInviteLink(inviteLink, options).then((request) => request(this.axios, this.basePath));
}
/** /**
* *
* @param {Keyword} [keyword] * @param {Keyword} [keyword]
@@ -14595,6 +15056,17 @@ export class ApiApi extends BaseAPI {
return ApiApiFp(this.configuration).destroyIngredient(id, options).then((request) => request(this.axios, this.basePath)); return ApiApiFp(this.configuration).destroyIngredient(id, options).then((request) => request(this.axios, this.basePath));
} }
/**
*
* @param {string} id A unique integer value identifying this invite link.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof ApiApi
*/
public destroyInviteLink(id: string, options?: any) {
return ApiApiFp(this.configuration).destroyInviteLink(id, options).then((request) => request(this.axios, this.basePath));
}
/** /**
* *
* @param {string} id A unique integer value identifying this keyword. * @param {string} id A unique integer value identifying this keyword.
@@ -14941,6 +15413,16 @@ export class ApiApi extends BaseAPI {
return ApiApiFp(this.configuration).listIngredients(page, pageSize, options).then((request) => request(this.axios, this.basePath)); return ApiApiFp(this.configuration).listIngredients(page, pageSize, options).then((request) => request(this.axios, this.basePath));
} }
/**
*
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof ApiApi
*/
public listInviteLinks(options?: any) {
return ApiApiFp(this.configuration).listInviteLinks(options).then((request) => request(this.axios, this.basePath));
}
/** /**
* *
* @param {string} [query] Query string matched against keyword name. * @param {string} [query] Query string matched against keyword name.
@@ -15382,6 +15864,18 @@ export class ApiApi extends BaseAPI {
return ApiApiFp(this.configuration).partialUpdateIngredient(id, ingredient, options).then((request) => request(this.axios, this.basePath)); return ApiApiFp(this.configuration).partialUpdateIngredient(id, ingredient, options).then((request) => request(this.axios, this.basePath));
} }
/**
*
* @param {string} id A unique integer value identifying this invite link.
* @param {InviteLink} [inviteLink]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof ApiApi
*/
public partialUpdateInviteLink(id: string, inviteLink?: InviteLink, options?: any) {
return ApiApiFp(this.configuration).partialUpdateInviteLink(id, inviteLink, options).then((request) => request(this.axios, this.basePath));
}
/** /**
* *
* @param {string} id A unique integer value identifying this keyword. * @param {string} id A unique integer value identifying this keyword.
@@ -15758,6 +16252,17 @@ export class ApiApi extends BaseAPI {
return ApiApiFp(this.configuration).retrieveIngredient(id, options).then((request) => request(this.axios, this.basePath)); return ApiApiFp(this.configuration).retrieveIngredient(id, options).then((request) => request(this.axios, this.basePath));
} }
/**
*
* @param {string} id A unique integer value identifying this invite link.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof ApiApi
*/
public retrieveInviteLink(id: string, options?: any) {
return ApiApiFp(this.configuration).retrieveInviteLink(id, options).then((request) => request(this.axios, this.basePath));
}
/** /**
* *
* @param {string} id A unique integer value identifying this keyword. * @param {string} id A unique integer value identifying this keyword.
@@ -16131,6 +16636,18 @@ export class ApiApi extends BaseAPI {
return ApiApiFp(this.configuration).updateIngredient(id, ingredient, options).then((request) => request(this.axios, this.basePath)); return ApiApiFp(this.configuration).updateIngredient(id, ingredient, options).then((request) => request(this.axios, this.basePath));
} }
/**
*
* @param {string} id A unique integer value identifying this invite link.
* @param {InviteLink} [inviteLink]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof ApiApi
*/
public updateInviteLink(id: string, inviteLink?: InviteLink, options?: any) {
return ApiApiFp(this.configuration).updateInviteLink(id, inviteLink, options).then((request) => request(this.axios, this.basePath));
}
/** /**
* *
* @param {string} id A unique integer value identifying this keyword. * @param {string} id A unique integer value identifying this keyword.
@@ -16350,6 +16867,18 @@ export class ApiApi extends BaseAPI {
return ApiApiFp(this.configuration).updateUserPreference(user, userPreference, options).then((request) => request(this.axios, this.basePath)); return ApiApiFp(this.configuration).updateUserPreference(user, userPreference, options).then((request) => request(this.axios, this.basePath));
} }
/**
*
* @param {string} id A unique integer value identifying this user space.
* @param {UserSpace} [userSpace]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof ApiApi
*/
public updateUserSpace(id: string, userSpace?: UserSpace, options?: any) {
return ApiApiFp(this.configuration).updateUserSpace(id, userSpace, options).then((request) => request(this.axios, this.basePath));
}
/** /**
* *
* @param {string} id A unique integer value identifying this view log. * @param {string} id A unique integer value identifying this view log.