Skip to content

Commit 8bec97d

Browse files
authored
feat!: API refactor (#138)
1 parent 7ecec40 commit 8bec97d

File tree

46 files changed

+624
-112
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+624
-112
lines changed

examples/gemini/celest/functions/gemini.dart

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ import 'dart:convert';
66
import 'package:celest/celest.dart';
77
import 'package:google_generative_ai/google_generative_ai.dart';
88

9-
import '../resources.dart';
9+
import '../generated/resources.dart';
1010

1111
/// Returns a list of available models.
12+
@cloud
1213
Future<List<String>> availableModels() async => _availableModels;
1314

1415
/// The list of available models.
@@ -22,10 +23,11 @@ const _availableModels = [
2223
/// Prompts the Gemini [modelName] with the given [prompt] and [parameters].
2324
///
2425
/// Returns the generated text.
26+
@cloud
2527
Future<String> generateContent({
2628
required String modelName,
2729
required String prompt,
28-
@Env.geminiApiKey required String apiKey,
30+
@env.geminiApiKey required String apiKey,
2931
}) async {
3032
if (!_availableModels.contains(modelName)) {
3133
throw BadRequestException('Invalid model: $modelName');
@@ -45,7 +47,7 @@ Future<String> generateContent({
4547
print('Selected answer: $text');
4648
return text;
4749
case _:
48-
throw InternalServerException('Failed to generate content');
50+
throw InternalServerError('Failed to generate content');
4951
}
5052
}
5153

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Generated Celest code
2+
3+
This directory contains code generated by the Celest CLI to assist in building
4+
your backend.
5+
6+
This code can be safely checked into version control, but it should not be
7+
modified directly.
8+
9+
It is planned to replace this directory with macros when they become stable.

examples/gemini/celest/resources.dart renamed to examples/gemini/celest/generated/resources.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ library;
66

77
import 'package:celest/celest.dart';
88

9-
@Deprecated('Use `Env` instead.')
10-
typedef env = Env;
9+
@Deprecated('Use `env` instead.')
10+
typedef Env = env;
1111

12-
abstract final class Env {
12+
abstract final class env {
1313
static const geminiApiKey = EnvironmentVariable(name: r'GEMINI_API_KEY');
1414
}

examples/gemini/celest/lib/src/client/functions.dart

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,8 @@ class CelestFunctionsGemini {
3131
throw Serializers.instance.deserialize<BadRequestException>($details);
3232
case r'UnauthorizedException':
3333
throw Serializers.instance.deserialize<UnauthorizedException>($details);
34-
case r'InternalServerException':
35-
throw Serializers.instance
36-
.deserialize<InternalServerException>($details);
34+
case r'InternalServerError':
35+
throw Serializers.instance.deserialize<InternalServerError>($details);
3736
case r'SerializationException':
3837
throw Serializers.instance
3938
.deserialize<SerializationException>($details);
@@ -56,7 +55,7 @@ class CelestFunctionsGemini {
5655
case 400:
5756
throw BadRequestException($code);
5857
case _:
59-
throw InternalServerException($code);
58+
throw InternalServerError($code);
6059
}
6160
}
6261
}

examples/gemini/celest/lib/src/client/serializers.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ void initSerializers() {
1616
},
1717
));
1818
Serializers.instance
19-
.put(Serializer.define<InternalServerException, Map<String, Object?>>(
19+
.put(Serializer.define<InternalServerError, Map<String, Object?>>(
2020
serialize: ($value) => {r'message': $value.message},
2121
deserialize: ($serialized) {
22-
return InternalServerException(($serialized[r'message'] as String));
22+
return InternalServerError(($serialized[r'message'] as String));
2323
},
2424
));
2525
Serializers.instance

examples/openai/celest/functions/open_ai.dart

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import 'package:celest_backend/models.dart';
88
import 'package:chat_gpt_sdk/chat_gpt_sdk.dart';
99
import 'package:chat_gpt_sdk/src/model/chat_complete/response/chat_choice.dart';
1010

11-
import '../resources.dart';
11+
import '../generated/resources.dart';
1212

1313
/// Creates an instance of the OpenAI client.
1414
OpenAI _createOpenAI(String token) => OpenAI.instance.build(
@@ -18,6 +18,7 @@ OpenAI _createOpenAI(String token) => OpenAI.instance.build(
1818
);
1919

2020
/// Returns a list of available models.
21+
@cloud
2122
Future<List<String>> availableModels() async => _availableModels;
2223

2324
/// The list of available models.
@@ -32,11 +33,12 @@ const _availableModels = [
3233
/// Prompts the GPT [model] with the given [prompt] and [parameters].
3334
///
3435
/// Returns the generated text.
36+
@cloud
3537
Future<String> openAIRequest({
3638
required String model,
3739
required String prompt,
3840
ModelParameters parameters = const ModelParameters(),
39-
@Env.openAiToken required String openAiToken,
41+
@env.openAiToken required String openAiToken,
4042
}) async {
4143
final openAI = _createOpenAI(openAiToken);
4244

@@ -63,7 +65,7 @@ Future<String> openAIRequest({
6365
case ChatCTResponse(choices: [ChatChoice(:final message?), ...]):
6466
return message.content.trim();
6567
default:
66-
throw InternalServerException(
68+
throw InternalServerError(
6769
"Couldn't complete request. Please try again later.",
6870
);
6971
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Generated Celest code
2+
3+
This directory contains code generated by the Celest CLI to assist in building
4+
your backend.
5+
6+
This code can be safely checked into version control, but it should not be
7+
modified directly.
8+
9+
It is planned to replace this directory with macros when they become stable.

examples/openai/celest/resources.dart renamed to examples/openai/celest/generated/resources.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ library;
66

77
import 'package:celest/celest.dart';
88

9-
@Deprecated('Use `Env` instead.')
10-
typedef env = Env;
9+
@Deprecated('Use `env` instead.')
10+
typedef Env = env;
1111

12-
abstract final class Env {
12+
abstract final class env {
1313
static const openAiToken = EnvironmentVariable(name: r'OPEN_AI_TOKEN');
1414
}

examples/openai/celest/lib/client.dart

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,12 @@ import 'src/client/serializers.dart';
1616
final Celest celest = Celest();
1717

1818
enum CelestEnvironment {
19-
local,
20-
production;
19+
local;
2120

2221
Uri get baseUri => switch (this) {
2322
local => kIsWeb || !_$io.Platform.isAndroid
2423
? Uri.parse('http://localhost:7777')
2524
: Uri.parse('http://10.0.2.2:7777'),
26-
production =>
27-
Uri.parse('https://openai-example-xmfv-v76lntiq7q-wn.a.run.app'),
2825
};
2926
}
3027

examples/openai/celest/lib/src/client/functions.dart

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,8 @@ class CelestFunctionsOpenAi {
3030
throw Serializers.instance.deserialize<BadRequestException>($details);
3131
case r'UnauthorizedException':
3232
throw Serializers.instance.deserialize<UnauthorizedException>($details);
33-
case r'InternalServerException':
34-
throw Serializers.instance
35-
.deserialize<InternalServerException>($details);
33+
case r'InternalServerError':
34+
throw Serializers.instance.deserialize<InternalServerError>($details);
3635
case r'SerializationException':
3736
throw Serializers.instance
3837
.deserialize<SerializationException>($details);
@@ -41,7 +40,7 @@ class CelestFunctionsOpenAi {
4140
case 400:
4241
throw BadRequestException($code);
4342
case _:
44-
throw InternalServerException($code);
43+
throw InternalServerError($code);
4544
}
4645
}
4746
}

0 commit comments

Comments
 (0)