Setup
To use the Groups API, install the @wix/groups
package using npm or Yarn:
1npm install @wix/groups
or
1yarn add @wix/groups
Then import { groups }
from @wix/groups
:
1import { groups } from '@wix/groups'
Creates a group.
The createGroup()
function returns a Promise that resolves to a newly-created group after it has successfully been created. The new group is added to the Groups List page of your site.
Site admins can choose to allow site members to create a group. They can also require that site members request their approval when creating a group. This setting can be found in your site's Dashboard under Groups Application > General Settings > Group Creation. If set to admin approval required, a site member uses this function to create a group, and the group becomes a createRequest
with a status of PENDING
until the group is reviewed. The default is set to site members with admin approval.
function createGroup(group: Group, options: CreateGroupOptions): Promise<Group>
Deletes a group.
The deleteGroup()
function returns a Promise resolves to the deleted group after it has successfully been deleted. Only site admins and group admins can delete their group. After the group is deleted, it is removed from both your site and the site's Dashboard.
function deleteGroup(groupId: string): Promise<DeleteGroupResponse>
Gets a group by ID.
The getGroup()
function returns a Promise that resolves to a group whose ID matches the given ID.
Note: For SECRET
groups, only site admins, group admins, and group members can see a group and its content.
function getGroup(groupId: string, options: GetGroupOptions): Promise<Group>
Gets a group by slug.
The getGroupBySlug()
function returns a Promise that resolves to a group whose slug matches the given slug. The slug is the end of a group's URL that refers to a specific group. For example, if a group's URL is https:/example.com/groups/{my-fitness-group}
, the slug is my-fitness-group
. The slug is case-sensitive. It is generally based on the group name, but for secret groups it is an autogenerated string of characters, for example, https:/example.com/groups/{5D3yTX}
.
Note: For SECRET
groups, only site admins, group admins, and group members can see a group and its content.
function getGroupBySlug(slug: string, options: GetGroupBySlugOptions): Promise<GetGroupBySlugResponse>
Lists groups.
The listGroups()
function returns a Promise that resolves to a list of up to 1,000 groups on your site. Sorts by default to _createdDate
in descending order.
Notes:
- For
SECRET
groups, only site admins, group admins, and group members can see a list of group and their content. - This function's parameters are positional, and must be specified in the sequence shown in the syntax below. When specifying a parameter, use
null
as a placeholder for any unspecified parameters. For example, to specify limit only, calllistGroups(paging, null)
.
function listGroups(options: ListGroupsOptions): Promise<ListGroupsResponse>
Creates a query to retrieve a list of groups.
Note: For SECRET
groups, only site admins, group admins, and group members can query groups and their content.
The queryGroups()
function builds a query to retrieve a list of all groups, and returns a GroupsQueryBuilder object.
PROPERTY | SUPPORTED FILTERS & SORTING |
---|---|
title | eq() ,ne() ,exists() ,in() ,hasSome() ,startsWith() ,ascending() ,descending() |
membersCount | ascending() ,descending() |
_createdDate | ascending() ,descending() |
recentActivityDate | ascending() ,descending() |
function queryGroups(options: QueryGroupsOptions): GroupsQueryBuilder
Updates a group.
The updateGroup()
function returns a Promise that resolves to the updated group. Only site admins and group admins can update their group. Only the fields in the groupInfo object parameter can be updated. Specify which fields to update. Unspecified fields remain the same.
Notes:
- When a group's
privacyStatus
is updated fromPRIVATE
toPUBLIC
, all pending join requests for that group are automatically approved. - When a group's
privacyStatus
is updated fromPRIVATE
toSECRET
, all pending join requests for that group are automatically rejected. - When a public or private group's name is updated, the slug is updated to reflect the new group name.
function updateGroup(_id: string, group: UpdateGroup): Promise<Group>