Sha256: 72cd1a3023f5b3b398c189b012b52ed2ebb1dfc5d9b82ba8aa4fcaea7bb8ef99

Contents?: true

Size: 1.22 KB

Versions: 3

Compression:

Stored size: 1.22 KB

Contents

module Panoptes
  class Client
    module UserGroups
      # Creates a new user group and puts the current user in it as the initial member.
      #
      # @see http://docs.panoptes.apiary.io/#reference/user-group/usergroup-collection/create-a-user-group
      # @param name [String] The name of the user group. Must be unique for the entirity of Zooniverse.
      # @return [Hash] The created user group.
      def create_user_group(name)
        post("/user_groups", user_groups: {
          name: name
        })["user_groups"][0]
      end

      def user_groups
        get("/user_groups")["user_groups"]
      end

      def join_user_group(user_group_id, user_id, join_token:)
        post("/memberships", memberships: {
          join_token: join_token,
          links: {user: user_id, user_group: user_group_id}
        })["memberships"][0]
      end

      def remove_user_from_user_group(user_group_id, user_id)
        delete("/user_groups/#{user_group_id}/links/users/#{user_id}")
      end

      def delete_user_group(user_group_id)
        response = conn.get("/api/user_groups/#{user_group_id}")
        etag = response.headers["ETag"]

        delete("/user_groups/#{user_group_id}", {}, etag: etag)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
panoptes-client-0.2.7 lib/panoptes/client/user_groups.rb
panoptes-client-0.2.6 lib/panoptes/client/user_groups.rb
panoptes-client-0.2.5 lib/panoptes/client/user_groups.rb