export type AssignedLanguage = {key: string, access: 'ALLOW' | 'DENY'}; export type AssignedTag = {name: string, access: 'ALLOW' | 'DENY'}; export type AssignedCustomer = {key: string, access: 'ALLOW' | 'DENY'}; export type Permission = {key: 'AUTO_TRANSLATE, CHANGE_TRANSLATIONS, REVIEW_TRANSLATIONS, PUBLISH_TRANSLATIONS, MANAGE_TRANSLATION_KEYS, MANAGE_LANGUAGES, IMPORT_FILES, EXPORT_FILES, VIEW_ACTIVITY, ACCESS_COMMENTS, CHANGE_CUSTOMER_TRANSLATIONS, REVIEW_CUSTOMER_TRANSLATIONS, CHANGE_DESCRIPTION', access: 'ALLOW' | 'DENY'}; export type ApiProjectContributorInviteRequest = {email: string, role: 'TRANSLATOR' | 'ADMIN' | 'DEVELOPER', assignedLanguages?: Array | undefined, defaultLanguageAccess?: ('ALLOW' | 'DENY') | undefined, assignedTags?: Array | undefined, defaultTagAccess?: ('ALLOW' | 'DENY') | undefined, assignedCustomers?: Array | undefined, defaultCustomerAccess?: ('ALLOW' | 'DENY') | undefined, permissions?: Array | undefined}; export type CreateApiApiV1ProjectsProjectTokenContributorsArgs = {projectToken: string, body: ApiProjectContributorInviteRequest}; export type CreateApiApiV1ProjectsProjectTokenContributorsOptions = {baseUrl?: string | undefined, PersonalAccessToken?: string | undefined, fetch?: typeof fetch | undefined}; /** * Invite project contributor * * POST /api/v1/projects/{projectToken}/contributors */ export const createApiApiV1ProjectsProjectTokenContributors = async (args: CreateApiApiV1ProjectsProjectTokenContributorsArgs, options?: CreateApiApiV1ProjectsProjectTokenContributorsOptions) => { const {baseUrl = "https://api.simplelocalize.io", fetch: fetchFn = fetch, PersonalAccessToken} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") if (PersonalAccessToken !== undefined) headers.set("Authorization", PersonalAccessToken) const url = `${baseUrl.replace(/\/+$/, '')}/api/v1/projects/${encodeURIComponent(String(args.projectToken))}/contributors${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return undefined };