All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.getstream.chat.java.models.Role Maven / Gradle / Ivy

There is a newer version: 1.27.2
Show newest version
package io.getstream.chat.java.models;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.getstream.chat.java.models.Role.RoleCreateRequestData.RoleCreateRequest;
import io.getstream.chat.java.models.framework.StreamRequest;
import io.getstream.chat.java.models.framework.StreamResponseObject;
import io.getstream.chat.java.services.RoleService;
import io.getstream.chat.java.services.framework.Client;
import java.util.Date;
import java.util.List;
import lombok.*;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import retrofit2.Call;

@Data
@NoArgsConstructor
public class Role {
  @NotNull
  @JsonProperty("name")
  private String name;

  @NotNull
  @JsonProperty("custom")
  private Boolean custom;

  @NotNull
  @JsonProperty("created_at")
  private Date createdAt;

  @NotNull
  @JsonProperty("updated_at")
  private Date updatedAt;

  @Builder(
      builderClassName = "RoleCreateRequest",
      builderMethodName = "",
      buildMethodName = "internalBuild")
  public static class RoleCreateRequestData {
    @Nullable
    @JsonProperty("name")
    private String name;

    public static class RoleCreateRequest extends StreamRequest {
      @Override
      protected Call generateCall(Client client) {
        return client.create(RoleService.class).create(this.internalBuild());
      }
    }
  }

  @RequiredArgsConstructor
  public static class RoleDeleteRequest extends StreamRequest {
    @NotNull private String name;

    @Override
    protected Call generateCall(Client client) {
      return client.create(RoleService.class).delete(name);
    }
  }

  public static class RoleListRequest extends StreamRequest {
    @Override
    protected Call generateCall(Client client) {
      return client.create(RoleService.class).list();
    }
  }

  @Data
  @NoArgsConstructor
  @EqualsAndHashCode(callSuper = true)
  public static class RoleListResponse extends StreamResponseObject {
    @NotNull
    @JsonProperty("roles")
    private List roles;
  }

  /**
   * Creates a create request
   *
   * @return the created request
   */
  @NotNull
  public static RoleCreateRequest create() {
    return new RoleCreateRequest();
  }

  /**
   * Creates a delete request
   *
   * @param name the role name
   * @return the created request
   */
  @NotNull
  public static RoleDeleteRequest delete(@NotNull String name) {
    return new RoleDeleteRequest(name);
  }

  /**
   * Creates a list request
   *
   * @return the created request
   */
  @NotNull
  public static RoleListRequest list() {
    return new RoleListRequest();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy