diff --git a/cookbook/serializer.py b/cookbook/serializer.py
index f93529e51..0749c5a8a 100644
--- a/cookbook/serializer.py
+++ b/cookbook/serializer.py
@@ -20,7 +20,7 @@ from cookbook.models import (Automation, BookmarkletImport, Comment, CookLog, Cu
RecipeBookEntry, RecipeImport, ShareLink, ShoppingList,
ShoppingListEntry, ShoppingListRecipe, Step, Storage, Supermarket,
SupermarketCategory, SupermarketCategoryRelation, Sync, SyncLog, Unit,
- UserFile, UserPreference, ViewLog, Space, UserSpace)
+ UserFile, UserPreference, ViewLog, Space, UserSpace, InviteLink)
from cookbook.templatetags.custom_tags import markdown
from recipes.settings import MEDIA_URL, AWS_ENABLED
@@ -1026,6 +1026,21 @@ class AutomationSerializer(serializers.ModelSerializer):
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
# 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
diff --git a/cookbook/urls.py b/cookbook/urls.py
index 6a7a64857..ed98e3eab 100644
--- a/cookbook/urls.py
+++ b/cookbook/urls.py
@@ -27,6 +27,7 @@ router.register(r'import-log', api.ImportLogViewSet)
router.register(r'export-log', api.ExportLogViewSet)
router.register(r'group', api.GroupViewSet)
router.register(r'ingredient', api.IngredientViewSet)
+router.register(r'invite-link', api.InviteLinkViewSet)
router.register(r'keyword', api.KeywordViewSet)
router.register(r'meal-plan', api.MealPlanViewSet)
router.register(r'meal-type', api.MealTypeViewSet)
diff --git a/cookbook/views/api.py b/cookbook/views/api.py
index 3fd70f138..6903c5bd5 100644
--- a/cookbook/views/api.py
+++ b/cookbook/views/api.py
@@ -53,7 +53,7 @@ from cookbook.models import (Automation, BookmarkletImport, CookLog, CustomFilte
Recipe, RecipeBook, RecipeBookEntry, ShareLink, ShoppingList,
ShoppingListEntry, ShoppingListRecipe, Step, Storage, Supermarket,
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.local import Local
from cookbook.provider.nextcloud import Nextcloud
@@ -74,7 +74,7 @@ from cookbook.serializer import (AutomationSerializer, BookmarkletImportSerializ
SupermarketCategorySerializer, SupermarketSerializer,
SyncLogSerializer, SyncSerializer, UnitSerializer,
UserFileSerializer, UserNameSerializer, UserPreferenceSerializer,
- ViewLogSerializer, IngredientSimpleSerializer, BookmarkletImportListSerializer, RecipeFromSourceSerializer, SpaceSerializer, UserSpaceSerializer, GroupSerializer)
+ ViewLogSerializer, IngredientSimpleSerializer, BookmarkletImportListSerializer, RecipeFromSourceSerializer, SpaceSerializer, UserSpaceSerializer, GroupSerializer, InviteLinkSerializer)
from recipes import settings
@@ -1044,6 +1044,16 @@ class AutomationViewSet(viewsets.ModelViewSet, StandardFilterMixin):
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):
queryset = CustomFilter.objects
serializer_class = CustomFilterSerializer
diff --git a/vue/src/apps/SpaceManageView/SpaceManageView.vue b/vue/src/apps/SpaceManageView/SpaceManageView.vue
index db60f6a0e..84eebfb21 100644
--- a/vue/src/apps/SpaceManageView/SpaceManageView.vue
+++ b/vue/src/apps/SpaceManageView/SpaceManageView.vue
@@ -46,6 +46,72 @@
+
+
+
+
@@ -59,17 +125,20 @@ import {ApiMixin, ResolveUrlMixin, StandardToasts, ToastMixin} from "@/utils/uti
import {ApiApiFactory} from "@/utils/openapi/api.ts"
import GenericMultiselect from "@/components/GenericMultiselect";
+import GenericModalForm from "@/components/Modals/GenericModalForm";
Vue.use(BootstrapVue)
export default {
name: "SupermarketView",
mixins: [ResolveUrlMixin, ToastMixin, ApiMixin],
- components: {GenericMultiselect},
+ components: {GenericMultiselect, GenericModalForm},
data() {
return {
space: undefined,
- user_spaces: []
+ user_spaces: [],
+ invite_links: [],
+ show_invite_create: false
}
},
mounted() {
@@ -82,8 +151,15 @@ export default {
apiFactory.listUserSpaces().then(r => {
this.user_spaces = r.data
})
+ this.loadInviteLinks()
},
methods: {
+ loadInviteLinks: function () {
+ let apiFactory = new ApiApiFactory()
+ apiFactory.listInviteLinks().then(r => {
+ this.invite_links = r.data
+ })
+ },
updateUserSpace: function (userSpace) {
let apiFactory = new ApiApiFactory()
apiFactory.partialUpdateUserSpace(userSpace.id, userSpace).then(r => {
diff --git a/vue/src/components/Modals/DateInput.vue b/vue/src/components/Modals/DateInput.vue
new file mode 100644
index 000000000..be53c8d23
--- /dev/null
+++ b/vue/src/components/Modals/DateInput.vue
@@ -0,0 +1,36 @@
+
+
+
+
+ {{ help }}
+ {{ subtitle }}
+
+
+
+
+
diff --git a/vue/src/components/Modals/GenericModalForm.vue b/vue/src/components/Modals/GenericModalForm.vue
index 6073ee707..00689746e 100644
--- a/vue/src/components/Modals/GenericModalForm.vue
+++ b/vue/src/components/Modals/GenericModalForm.vue
@@ -14,6 +14,7 @@
+
@@ -42,6 +43,7 @@ import { ApiMixin, StandardToasts, ToastMixin, getUserPreference } from "@/utils
import CheckboxInput from "@/components/Modals/CheckboxInput"
import LookupInput from "@/components/Modals/LookupInput"
import TextInput from "@/components/Modals/TextInput"
+import DateInput from "@/components/Modals/DateInput"
import EmojiInput from "@/components/Modals/EmojiInput"
import ChoiceInput from "@/components/Modals/ChoiceInput"
import FileInput from "@/components/Modals/FileInput"
@@ -50,7 +52,7 @@ import HelpBadge from "@/components/Badges/Help"
export default {
name: "GenericModalForm",
- components: { FileInput, CheckboxInput, LookupInput, TextInput, EmojiInput, ChoiceInput, SmallText, HelpBadge },
+ components: { FileInput, CheckboxInput, LookupInput, TextInput, EmojiInput, ChoiceInput, SmallText, HelpBadge,DateInput },
mixins: [ApiMixin, ToastMixin],
props: {
model: { required: true, type: Object },
diff --git a/vue/src/locales/en.json b/vue/src/locales/en.json
index 5f550d8d6..91962012a 100644
--- a/vue/src/locales/en.json
+++ b/vue/src/locales/en.json
@@ -412,5 +412,6 @@
"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_Category": "Create new supermarket category",
- "Are_You_Sure": "Are you sure?"
+ "Are_You_Sure": "Are you sure?",
+ "Valid Until": "Valid Until"
}
diff --git a/vue/src/utils/models.js b/vue/src/utils/models.js
index c1054f640..53b720978 100644
--- a/vue/src/utils/models.js
+++ b/vue/src/utils/models.js
@@ -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 = {
name: "User",
apiName: "User",
diff --git a/vue/src/utils/openapi/api.ts b/vue/src/utils/openapi/api.ts
index 8fdefa94f..43ec95f1d 100644
--- a/vue/src/utils/openapi/api.ts
+++ b/vue/src/utils/openapi/api.ts
@@ -1315,6 +1315,61 @@ export interface InlineResponse2009 {
*/
results?: Array
;
}
+/**
+ *
+ * @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
@@ -3634,10 +3689,10 @@ export interface UserSpace {
space?: string;
/**
*
- * @type {Array}
+ * @type {Array}
* @memberof UserSpace
*/
- groups: Array;
+ groups: Array;
/**
*
* @type {string}
@@ -3651,6 +3706,25 @@ export interface UserSpace {
*/
updated_at?: string;
}
+/**
+ *
+ * @export
+ * @interface UserSpaceGroups
+ */
+export interface UserSpaceGroups {
+ /**
+ *
+ * @type {number}
+ * @memberof UserSpaceGroups
+ */
+ id?: number;
+ /**
+ *
+ * @type {string}
+ * @memberof UserSpaceGroups
+ */
+ name: string;
+}
/**
*
* @export
@@ -3953,6 +4027,39 @@ export const ApiApiAxiosParamCreator = function (configuration?: Configuration)
options: localVarRequestOptions,
};
},
+ /**
+ *
+ * @param {InviteLink} [inviteLink]
+ * @param {*} [options] Override http request option.
+ * @throws {RequiredError}
+ */
+ createInviteLink: async (inviteLink?: InviteLink, options: any = {}): Promise => {
+ 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]
@@ -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 => {
+ // 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);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.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 => {
+ 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);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
@@ -7379,6 +7548,43 @@ export const ApiApiAxiosParamCreator = function (configuration?: Configuration)
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 => {
+ // 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.
@@ -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 => {
+ // 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);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
@@ -9670,6 +9909,43 @@ export const ApiApiAxiosParamCreator = function (configuration?: Configuration)
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 => {
+ // 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.
@@ -10358,6 +10634,43 @@ export const ApiApiAxiosParamCreator = function (configuration?: Configuration)
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 => {
+ // 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.
@@ -10485,6 +10798,16 @@ export const ApiApiFp = function(configuration?: Configuration) {
const localVarAxiosArgs = await localVarAxiosParamCreator.createIngredient(ingredient, options);
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> {
+ const localVarAxiosArgs = await localVarAxiosParamCreator.createInviteLink(inviteLink, options);
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+ },
/**
*
* @param {Keyword} [keyword]
@@ -10768,6 +11091,16 @@ export const ApiApiFp = function(configuration?: Configuration) {
const localVarAxiosArgs = await localVarAxiosParamCreator.destroyIngredient(id, options);
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> {
+ const localVarAxiosArgs = await localVarAxiosParamCreator.destroyInviteLink(id, options);
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+ },
/**
*
* @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);
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>> {
+ const localVarAxiosArgs = await localVarAxiosParamCreator.listInviteLinks(options);
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+ },
/**
*
* @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);
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> {
+ 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.
@@ -11832,6 +12185,16 @@ export const ApiApiFp = function(configuration?: Configuration) {
const localVarAxiosArgs = await localVarAxiosParamCreator.retrieveIngredient(id, options);
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> {
+ const localVarAxiosArgs = await localVarAxiosParamCreator.retrieveInviteLink(id, options);
+ return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
+ },
/**
*
* @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);
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> {
+ 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.
@@ -12373,6 +12747,17 @@ export const ApiApiFp = function(configuration?: Configuration) {
const localVarAxiosArgs = await localVarAxiosParamCreator.updateUserPreference(user, userPreference, options);
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> {
+ 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.
@@ -12466,6 +12851,15 @@ export const ApiApiFactory = function (configuration?: Configuration, basePath?:
createIngredient(ingredient?: Ingredient, options?: any): AxiosPromise {
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 {
+ return localVarFp.createInviteLink(inviteLink, options).then((request) => request(axios, basePath));
+ },
/**
*
* @param {Keyword} [keyword]
@@ -12721,6 +13115,15 @@ export const ApiApiFactory = function (configuration?: Configuration, basePath?:
destroyIngredient(id: string, options?: any): AxiosPromise {
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 {
+ return localVarFp.destroyInviteLink(id, options).then((request) => request(axios, basePath));
+ },
/**
*
* @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 {
return localVarFp.listIngredients(page, pageSize, options).then((request) => request(axios, basePath));
},
+ /**
+ *
+ * @param {*} [options] Override http request option.
+ * @throws {RequiredError}
+ */
+ listInviteLinks(options?: any): AxiosPromise> {
+ return localVarFp.listInviteLinks(options).then((request) => request(axios, basePath));
+ },
/**
*
* @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 {
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 {
+ return localVarFp.partialUpdateInviteLink(id, inviteLink, options).then((request) => request(axios, basePath));
+ },
/**
*
* @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 {
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 {
+ return localVarFp.retrieveInviteLink(id, options).then((request) => request(axios, basePath));
+ },
/**
*
* @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 {
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 {
+ return localVarFp.updateInviteLink(id, inviteLink, options).then((request) => request(axios, basePath));
+ },
/**
*
* @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 {
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 {
+ return localVarFp.updateUserSpace(id, userSpace, options).then((request) => request(axios, basePath));
+ },
/**
*
* @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));
}
+ /**
+ *
+ * @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]
@@ -14595,6 +15056,17 @@ export class ApiApi extends BaseAPI {
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.
@@ -14941,6 +15413,16 @@ export class ApiApi extends BaseAPI {
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.
@@ -15382,6 +15864,18 @@ export class ApiApi extends BaseAPI {
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.
@@ -15758,6 +16252,17 @@ export class ApiApi extends BaseAPI {
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.
@@ -16131,6 +16636,18 @@ export class ApiApi extends BaseAPI {
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.
@@ -16350,6 +16867,18 @@ export class ApiApi extends BaseAPI {
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.