arri_client 0.0.25
arri_client: ^0.0.25 copied to clipboard
Client library needed for the code generated by the arri server library.
// 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;
const User({
required this.metadata,
required this.id,
this.email,
required this.createdAt,
required this.updatedAt,
required this.role,
this.preferredTheme,
});
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,
);
}
Map<String, dynamic> toJson() {
return {
"_metadata": metadata,
"id": id,
"email": email,
"createdAt": createdAt,
"updatedAt": updatedAt.toIso8601String(),
"role": role.toJson(),
"preferredTheme": preferredTheme?.toJson(),
};
}
User copyWith({
String? metadata,
String? id,
String? email,
int? createdAt,
DateTime? updatedAt,
UserRole? role,
UserPreferredTheme? preferredTheme,
}) {
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,
);
}
}
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);
}