arri_client 0.0.39 copy "arri_client: ^0.0.39" to clipboard
arri_client: ^0.0.39 copied to clipboard

Client library needed for the code generated by the arri server library.

example/example.dart

// This code was autogenerated by Arri. Do not modify directly.
// For additional documentation visit http://github.com/modiimedia/arri
import "dart:convert";
import "package:arri_client/arri_client.dart";

class Client {
  final String _baseUrl;
  final Map<String, String> _headers;
  const Client({
    String baseUrl = "",
    Map<String, String> headers = const {},
  })  : _headers = headers,
        _baseUrl = baseUrl;
  Future<SayHelloResponse> sayHello() {
    return parsedArriRequest(
      "$_baseUrl/say-hello",
      method: HttpMethod.get,
      headers: _headers,
      params: null,
      parser: (body) => SayHelloResponse.fromJson(json.decode(body)),
    );
  }

  ClientV1Service get v1 {
    return ClientV1Service(
      baseUrl: _baseUrl,
      headers: _headers,
    );
  }

  ClientV2Service get v2 {
    return ClientV2Service(
      baseUrl: _baseUrl,
      headers: _headers,
    );
  }
}

class ClientV1Service {
  final String _baseUrl;
  final Map<String, String> _headers;
  const ClientV1Service({
    String baseUrl = "",
    Map<String, String> headers = const {},
  })  : _baseUrl = baseUrl,
        _headers = headers;
  ClientV1UsersService get users {
    return ClientV1UsersService(
      baseUrl: _baseUrl,
      headers: _headers,
    );
  }

  ClientV1PostsService get posts {
    return ClientV1PostsService(
      baseUrl: _baseUrl,
      headers: _headers,
    );
  }
}

class ClientV1UsersService {
  final String _baseUrl;
  final Map<String, String> _headers;
  const ClientV1UsersService({
    String baseUrl = "",
    Map<String, String> headers = const {},
  })  : _baseUrl = baseUrl,
        _headers = headers;

  Future<User> getUser(UserParams params) {
    return parsedArriRequest(
      "$_baseUrl/v1/users/get-user",
      method: HttpMethod.get,
      headers: _headers,
      params: params.toJson(),
      parser: (body) => User.fromJson(json.decode(body)),
    );
  }

  Future<UsersGetUsersResponse> getUsers(UserListParams params) {
    return parsedArriRequest(
      "$_baseUrl/v1/users/get-users",
      method: HttpMethod.get,
      headers: _headers,
      params: params.toJson(),
      parser: (body) => UsersGetUsersResponse.fromJson(json.decode(body)),
    );
  }
}

class ClientV1PostsService {
  final String _baseUrl;
  final Map<String, String> _headers;
  const ClientV1PostsService({
    String baseUrl = "",
    Map<String, String> headers = const {},
  })  : _baseUrl = baseUrl,
        _headers = headers;

  Future<Post> getPost(PostParams params) {
    return parsedArriRequest(
      "$_baseUrl/v1/posts/get-post",
      method: HttpMethod.get,
      headers: _headers,
      params: params.toJson(),
      parser: (body) => Post.fromJson(json.decode(body)),
    );
  }

  Future<Post> updatePost(PostsUpdatePostParams params) {
    return parsedArriRequest(
      "$_baseUrl/v1/posts/update-post",
      method: HttpMethod.post,
      headers: _headers,
      params: params.toJson(),
      parser: (body) => Post.fromJson(json.decode(body)),
    );
  }

  Future<void> deletePost(PostParams params) {
    return parsedArriRequest(
      "$_baseUrl/v1/posts/delete-posts",
      method: HttpMethod.delete,
      headers: _headers,
      params: params.toJson(),
      parser: (body) {},
    );
  }
}

class ClientV2Service {
  final String _baseUrl;
  final Map<String, String> _headers;
  const ClientV2Service({
    String baseUrl = "",
    Map<String, String> headers = const {},
  })  : _baseUrl = baseUrl,
        _headers = headers;
  ClientV2UsersService get users {
    return ClientV2UsersService(
      baseUrl: _baseUrl,
      headers: _headers,
    );
  }
}

class ClientV2UsersService {
  final String _baseUrl;
  final Map<String, String> _headers;
  const ClientV2UsersService({
    String baseUrl = "",
    Map<String, String> headers = const {},
  })  : _baseUrl = baseUrl,
        _headers = headers;

  Future<UserV2> getUser(UserParams params) {
    return parsedArriRequest(
      "$_baseUrl/v2/users/get-user",
      method: HttpMethod.get,
      headers: _headers,
      params: params.toJson(),
      parser: (body) => UserV2.fromJson(json.decode(body)),
    );
  }
}

class SayHelloResponse {
  final String message;
  const SayHelloResponse({
    required this.message,
  });
  factory SayHelloResponse.fromJson(Map<String, dynamic> json) {
    return SayHelloResponse(
      message: typeFromDynamic<String>(json["message"], ""),
    );
  }
  Map<String, dynamic> toJson() {
    return {
      "message": message,
    };
  }

  SayHelloResponse copyWith({
    String? message,
  }) {
    return SayHelloResponse(
      message: message ?? this.message,
    );
  }
}

class User {
  final String metadata;
  final String id;
  final String? email;
  final int createdAt;
  final DateTime updatedAt;
  final UserRole role;
  final UserPreferredTheme? preferredTheme;
  final Map<dynamic, dynamic> miscData;
  const User({
    required this.metadata,
    required this.id,
    this.email,
    required this.createdAt,
    required this.updatedAt,
    required this.role,
    this.preferredTheme,
    required this.miscData,
  });
  factory User.fromJson(Map<String, dynamic> json) {
    return User(
      metadata: typeFromDynamic<String>(json["_metadata"], ""),
      id: typeFromDynamic<String>(json["id"], ""),
      email: nullableTypeFromDynamic<String>(json["email"]),
      createdAt: intFromDynamic(json["createdAt"], 0),
      updatedAt: dateTimeFromDynamic(json["updatedAt"], DateTime(0)),
      role: UserRole.fromJson(json["role"]),
      preferredTheme: json["preferredTheme"] is Map<String, dynamic>
          ? UserPreferredTheme.fromJson(json["preferredTheme"])
          : null,
      miscData: json["miscData"] is Map ? json["miscData"] : {},
    );
  }
  Map<String, dynamic> toJson() {
    return {
      "_metadata": metadata,
      "id": id,
      "email": email,
      "createdAt": createdAt,
      "updatedAt": updatedAt.toIso8601String(),
      "role": role.toJson(),
      "preferredTheme": preferredTheme?.toJson(),
      "miscData": miscData,
    };
  }

  User copyWith({
    String? metadata,
    String? id,
    String? email,
    int? createdAt,
    DateTime? updatedAt,
    UserRole? role,
    UserPreferredTheme? preferredTheme,
    Map<dynamic, dynamic>? miscData,
  }) {
    return User(
      metadata: metadata ?? this.metadata,
      id: id ?? this.id,
      email: email ?? this.email,
      createdAt: createdAt ?? this.createdAt,
      updatedAt: updatedAt ?? this.updatedAt,
      role: role ?? this.role,
      preferredTheme: preferredTheme ?? this.preferredTheme,
      miscData: miscData ?? this.miscData,
    );
  }
}

enum UserRole implements Comparable<UserRole> {
  standard("standard"),
  admin("admin");

  const UserRole(this.value);
  final dynamic value;

  @override
  compareTo(UserRole other) => name.compareTo(other.name);

  factory UserRole.fromJson(dynamic input) {
    for (final val in values) {
      if (val.value == input) {
        return val;
      }
    }
    return standard;
  }

  dynamic toJson() {
    return value;
  }
}

enum UserPreferredTheme implements Comparable<UserPreferredTheme> {
  light("light"),
  dark("dark"),
  systemDefault("system-default");

  const UserPreferredTheme(this.value);
  final dynamic value;

  @override
  compareTo(UserPreferredTheme other) => name.compareTo(other.name);

  factory UserPreferredTheme.fromJson(dynamic input) {
    for (final val in values) {
      if (val.value == input) {
        return val;
      }
    }
    return light;
  }

  dynamic toJson() {
    return value;
  }
}

class UserV2 {
  final String id;
  final String email;
  final String username;
  final DateTime createdAt;
  final DateTime updatedAt;
  final UserV2Role role;
  const UserV2({
    required this.id,
    required this.email,
    required this.username,
    required this.createdAt,
    required this.updatedAt,
    required this.role,
  });
  factory UserV2.fromJson(Map<String, dynamic> json) {
    return UserV2(
      id: typeFromDynamic<String>(json["id"], ""),
      email: typeFromDynamic<String>(json["email"], ""),
      username: typeFromDynamic<String>(json["username"], ""),
      createdAt: dateTimeFromDynamic(json["createdAt"], DateTime(0)),
      updatedAt: dateTimeFromDynamic(json["updatedAt"], DateTime(0)),
      role: UserV2Role.fromJson(json["role"]),
    );
  }
  Map<String, dynamic> toJson() {
    return {
      "id": id,
      "email": email,
      "username": username,
      "createdAt": createdAt.toIso8601String(),
      "updatedAt": updatedAt.toIso8601String(),
      "role": role.toJson(),
    };
  }

  UserV2 copyWith({
    String? id,
    String? email,
    String? username,
    DateTime? createdAt,
    DateTime? updatedAt,
    UserV2Role? role,
  }) {
    return UserV2(
      id: id ?? this.id,
      email: email ?? this.email,
      username: username ?? this.username,
      createdAt: createdAt ?? this.createdAt,
      updatedAt: updatedAt ?? this.updatedAt,
      role: role ?? this.role,
    );
  }
}

enum UserV2Role implements Comparable<UserV2Role> {
  standard("standard"),
  admin("admin"),
  moderator("moderator");

  const UserV2Role(this.value);
  final dynamic value;

  @override
  compareTo(UserV2Role other) => name.compareTo(other.name);

  factory UserV2Role.fromJson(dynamic input) {
    for (final val in values) {
      if (val.value == input) {
        return val;
      }
    }
    return standard;
  }

  dynamic toJson() {
    return value;
  }
}

class UserParams {
  final String id;
  final String email;
  const UserParams({
    required this.id,
    required this.email,
  });
  factory UserParams.fromJson(Map<String, dynamic> json) {
    return UserParams(
      id: typeFromDynamic<String>(json["id"], ""),
      email: typeFromDynamic<String>(json["email"], ""),
    );
  }
  Map<String, dynamic> toJson() {
    return {
      "id": id,
      "email": email,
    };
  }

  UserParams copyWith({
    String? id,
    String? email,
  }) {
    return UserParams(
      id: id ?? this.id,
      email: email ?? this.email,
    );
  }
}

class UserListParams {
  final int limit;
  final int? skip;
  const UserListParams({
    required this.limit,
    this.skip,
  });
  factory UserListParams.fromJson(Map<String, dynamic> json) {
    return UserListParams(
      limit: intFromDynamic(json["limit"], 0),
      skip: nullableIntFromDynamic(json["skip"]),
    );
  }
  Map<String, dynamic> toJson() {
    return {
      "limit": limit,
      "skip": skip,
    };
  }

  UserListParams copyWith({
    int? limit,
    int? skip,
  }) {
    return UserListParams(
      limit: limit ?? this.limit,
      skip: skip ?? this.skip,
    );
  }
}

class UsersGetUsersResponse {
  final UsersGetUsersResponseItems items;
  const UsersGetUsersResponse({
    required this.items,
  });
  factory UsersGetUsersResponse.fromJson(Map<String, dynamic> json) {
    return UsersGetUsersResponse(
      items: UsersGetUsersResponseItems.fromJson(json["items"]),
    );
  }
  Map<String, dynamic> toJson() {
    return {
      "items": items.toJson(),
    };
  }

  UsersGetUsersResponse copyWith({
    UsersGetUsersResponseItems? items,
  }) {
    return UsersGetUsersResponse(
      items: items ?? this.items,
    );
  }
}

class UsersGetUsersResponseItems {
  final String id;
  final String email;
  const UsersGetUsersResponseItems({
    required this.id,
    required this.email,
  });
  factory UsersGetUsersResponseItems.fromJson(Map<String, dynamic> json) {
    return UsersGetUsersResponseItems(
      id: typeFromDynamic<String>(json["id"], ""),
      email: typeFromDynamic<String>(json["email"], ""),
    );
  }
  Map<String, dynamic> toJson() {
    return {
      "id": id,
      "email": email,
    };
  }

  UsersGetUsersResponseItems copyWith({
    String? id,
    String? email,
  }) {
    return UsersGetUsersResponseItems(
      id: id ?? this.id,
      email: email ?? this.email,
    );
  }
}

class Post {
  final String id;
  final String title;
  final String content;
  const Post({
    required this.id,
    required this.title,
    required this.content,
  });
  factory Post.fromJson(Map<String, dynamic> json) {
    return Post(
      id: typeFromDynamic<String>(json["id"], ""),
      title: typeFromDynamic<String>(json["title"], ""),
      content: typeFromDynamic<String>(json["content"], ""),
    );
  }
  Map<String, dynamic> toJson() {
    return {
      "id": id,
      "title": title,
      "content": content,
    };
  }

  Post copyWith({
    String? id,
    String? title,
    String? content,
  }) {
    return Post(
      id: id ?? this.id,
      title: title ?? this.title,
      content: content ?? this.content,
    );
  }
}

class PostParams {
  final String postId;
  const PostParams({
    required this.postId,
  });
  factory PostParams.fromJson(Map<String, dynamic> json) {
    return PostParams(
      postId: typeFromDynamic<String>(json["postId"], ""),
    );
  }
  Map<String, dynamic> toJson() {
    return {
      "postId": postId,
    };
  }

  PostParams copyWith({
    String? postId,
  }) {
    return PostParams(
      postId: postId ?? this.postId,
    );
  }
}

class PostsUpdatePostParams {
  final String postId;
  final PostsUpdatePostParamsData data;
  const PostsUpdatePostParams({
    required this.postId,
    required this.data,
  });
  factory PostsUpdatePostParams.fromJson(Map<String, dynamic> json) {
    return PostsUpdatePostParams(
      postId: typeFromDynamic<String>(json["postId"], ""),
      data: PostsUpdatePostParamsData.fromJson(json["data"]),
    );
  }
  Map<String, dynamic> toJson() {
    return {
      "postId": postId,
      "data": data.toJson(),
    };
  }

  PostsUpdatePostParams copyWith({
    String? postId,
    PostsUpdatePostParamsData? data,
  }) {
    return PostsUpdatePostParams(
      postId: postId ?? this.postId,
      data: data ?? this.data,
    );
  }
}

class PostsUpdatePostParamsData {
  final String title;
  final String content;
  const PostsUpdatePostParamsData({
    required this.title,
    required this.content,
  });
  factory PostsUpdatePostParamsData.fromJson(Map<String, dynamic> json) {
    return PostsUpdatePostParamsData(
      title: typeFromDynamic<String>(json["title"], ""),
      content: typeFromDynamic<String>(json["content"], ""),
    );
  }
  Map<String, dynamic> toJson() {
    return {
      "title": title,
      "content": content,
    };
  }

  PostsUpdatePostParamsData copyWith({
    String? title,
    String? content,
  }) {
    return PostsUpdatePostParamsData(
      title: title ?? this.title,
      content: content ?? this.content,
    );
  }
}

enum ClientEndpoints implements Comparable<ClientEndpoints>, ArriEndpoint {
  sayHello(
    path: "/say-hello",
    method: HttpMethod.get,
  ),
  v1UsersGetUser(
    path: "/v1/users/get-user",
    method: HttpMethod.get,
  ),
  v1UsersGetUsers(
    path: "/v1/users/get-users",
    method: HttpMethod.get,
  ),
  v1PostsGetPost(
    path: "/v1/posts/get-post",
    method: HttpMethod.get,
  ),
  v1PostsUpdatePost(
    path: "/v1/posts/update-post",
    method: HttpMethod.post,
  ),
  v1PostsDeletePosts(
    path: "/v1/posts/delete-posts",
    method: HttpMethod.delete,
  ),
  v2UsersGetUser(
    path: "/v2/users/get-user",
    method: HttpMethod.get,
  );

  const ClientEndpoints({
    required this.path,
    required this.method,
  });
  @override
  final String path;
  @override
  final HttpMethod method;

  @override
  compareTo(ClientEndpoints other) => name.compareTo(other.name);
}
1
likes
0
pub points
66%
popularity

Publisher

verified publishermodiimedia.com

Client library needed for the code generated by the arri server library.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

http

More

Packages that depend on arri_client