aboutsummaryrefslogtreecommitdiffhomepage
path: root/typespec/fortee
diff options
context:
space:
mode:
Diffstat (limited to 'typespec/fortee')
-rw-r--r--typespec/fortee/main.tsp45
-rw-r--r--typespec/fortee/tspconfig.yaml8
2 files changed, 53 insertions, 0 deletions
diff --git a/typespec/fortee/main.tsp b/typespec/fortee/main.tsp
new file mode 100644
index 0000000..03683a7
--- /dev/null
+++ b/typespec/fortee/main.tsp
@@ -0,0 +1,45 @@
+import "@typespec/http";
+import "@typespec/openapi";
+import "@typespec/openapi3";
+
+using TypeSpec.Http;
+using TypeSpec.OpenAPI;
+
+@service(#{
+ title: "fortee API",
+})
+@info(#{
+ version: "0.1.0",
+})
+namespace ForteeApi;
+
+@route("/api/user/login")
+@post
+@operationId("postLogin")
+op postLogin(
+ @header contentType: "application/x-www-form-urlencoded",
+ @body body: {
+ username: string;
+ password: string;
+ },
+): {
+ @body body: {
+ loggedIn: boolean;
+ user?: {
+ username: string;
+ };
+ };
+};
+
+@route("/api/user/view/{username}")
+@get
+@operationId("getUser")
+op getUser(@path username: string): {
+ @body body: {
+ uuid: string;
+ username: string;
+ avatar_url: string;
+ };
+} | {
+ @statusCode statusCode: 404;
+};
diff --git a/typespec/fortee/tspconfig.yaml b/typespec/fortee/tspconfig.yaml
new file mode 100644
index 0000000..78ba744
--- /dev/null
+++ b/typespec/fortee/tspconfig.yaml
@@ -0,0 +1,8 @@
+output-dir: "{project-root}/tsp-output"
+emit:
+ - "@typespec/openapi3"
+options:
+ "@typespec/openapi3":
+ openapi-versions:
+ - "3.0.0"
+ output-file: openapi.yaml