feat: persistent memories (#8330)

* feat: persistent memories

* refactor: use new add/remove asset utility
This commit is contained in:
Jason Rasmussen 2024-04-02 10:23:17 -04:00 committed by GitHub
parent 0849dbd1af
commit cd0e537e3e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
43 changed files with 3497 additions and 0 deletions

View file

@ -3435,6 +3435,314 @@
]
}
},
"/memories": {
"get": {
"operationId": "searchMemories",
"parameters": [],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/MemoryResponseDto"
},
"type": "array"
}
}
},
"description": ""
}
},
"security": [
{
"bearer": []
},
{
"cookie": []
},
{
"api_key": []
}
],
"tags": [
"Memory"
]
},
"post": {
"operationId": "createMemory",
"parameters": [],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MemoryCreateDto"
}
}
},
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MemoryResponseDto"
}
}
},
"description": ""
}
},
"security": [
{
"bearer": []
},
{
"cookie": []
},
{
"api_key": []
}
],
"tags": [
"Memory"
]
}
},
"/memories/{id}": {
"delete": {
"operationId": "deleteMemory",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"204": {
"description": ""
}
},
"security": [
{
"bearer": []
},
{
"cookie": []
},
{
"api_key": []
}
],
"tags": [
"Memory"
]
},
"get": {
"operationId": "getMemory",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MemoryResponseDto"
}
}
},
"description": ""
}
},
"security": [
{
"bearer": []
},
{
"cookie": []
},
{
"api_key": []
}
],
"tags": [
"Memory"
]
},
"put": {
"operationId": "updateMemory",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MemoryUpdateDto"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MemoryResponseDto"
}
}
},
"description": ""
}
},
"security": [
{
"bearer": []
},
{
"cookie": []
},
{
"api_key": []
}
],
"tags": [
"Memory"
]
}
},
"/memories/{id}/assets": {
"delete": {
"operationId": "removeMemoryAssets",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BulkIdsDto"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/BulkIdResponseDto"
},
"type": "array"
}
}
},
"description": ""
}
},
"security": [
{
"bearer": []
},
{
"cookie": []
},
{
"api_key": []
}
],
"tags": [
"Memory"
]
},
"put": {
"operationId": "addMemoryAssets",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BulkIdsDto"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/BulkIdResponseDto"
},
"type": "array"
}
}
},
"description": ""
}
},
"security": [
{
"bearer": []
},
{
"cookie": []
},
{
"api_key": []
}
],
"tags": [
"Memory"
]
}
},
"/oauth/authorize": {
"post": {
"operationId": "startOAuth",
@ -8451,6 +8759,40 @@
],
"type": "string"
},
"MemoryCreateDto": {
"properties": {
"assetIds": {
"items": {
"format": "uuid",
"type": "string"
},
"type": "array"
},
"data": {
"type": "object"
},
"isSaved": {
"type": "boolean"
},
"memoryAt": {
"format": "date-time",
"type": "string"
},
"seenAt": {
"format": "date-time",
"type": "string"
},
"type": {
"$ref": "#/components/schemas/MemoryType"
}
},
"required": [
"data",
"memoryAt",
"type"
],
"type": "object"
},
"MemoryLaneResponseDto": {
"properties": {
"assets": {
@ -8474,6 +8816,88 @@
],
"type": "object"
},
"MemoryResponseDto": {
"properties": {
"assets": {
"items": {
"$ref": "#/components/schemas/AssetResponseDto"
},
"type": "array"
},
"createdAt": {
"format": "date-time",
"type": "string"
},
"data": {
"type": "object"
},
"deletedAt": {
"format": "date-time",
"type": "string"
},
"id": {
"type": "string"
},
"isSaved": {
"type": "boolean"
},
"memoryAt": {
"format": "date-time",
"type": "string"
},
"ownerId": {
"type": "string"
},
"seenAt": {
"format": "date-time",
"type": "string"
},
"type": {
"enum": [
"on_this_day"
],
"type": "string"
},
"updatedAt": {
"format": "date-time",
"type": "string"
}
},
"required": [
"assets",
"createdAt",
"data",
"id",
"isSaved",
"memoryAt",
"ownerId",
"type",
"updatedAt"
],
"type": "object"
},
"MemoryType": {
"enum": [
"on_this_day"
],
"type": "string"
},
"MemoryUpdateDto": {
"properties": {
"isSaved": {
"type": "boolean"
},
"memoryAt": {
"format": "date-time",
"type": "string"
},
"seenAt": {
"format": "date-time",
"type": "string"
}
},
"type": "object"
},
"MergePersonDto": {
"properties": {
"ids": {

View file

@ -494,6 +494,32 @@ export type ValidateLibraryImportPathResponseDto = {
export type ValidateLibraryResponseDto = {
importPaths?: ValidateLibraryImportPathResponseDto[];
};
export type MemoryResponseDto = {
assets: AssetResponseDto[];
createdAt: string;
data: object;
deletedAt?: string;
id: string;
isSaved: boolean;
memoryAt: string;
ownerId: string;
seenAt?: string;
"type": Type2;
updatedAt: string;
};
export type MemoryCreateDto = {
assetIds?: string[];
data: object;
isSaved?: boolean;
memoryAt: string;
seenAt?: string;
"type": MemoryType;
};
export type MemoryUpdateDto = {
isSaved?: boolean;
memoryAt?: string;
seenAt?: string;
};
export type OAuthConfigDto = {
redirectUri: string;
};
@ -1908,6 +1934,83 @@ export function validate({ id, validateLibraryDto }: {
body: validateLibraryDto
})));
}
export function searchMemories(opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: MemoryResponseDto[];
}>("/memories", {
...opts
}));
}
export function createMemory({ memoryCreateDto }: {
memoryCreateDto: MemoryCreateDto;
}, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 201;
data: MemoryResponseDto;
}>("/memories", oazapfts.json({
...opts,
method: "POST",
body: memoryCreateDto
})));
}
export function deleteMemory({ id }: {
id: string;
}, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchText(`/memories/${encodeURIComponent(id)}`, {
...opts,
method: "DELETE"
}));
}
export function getMemory({ id }: {
id: string;
}, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: MemoryResponseDto;
}>(`/memories/${encodeURIComponent(id)}`, {
...opts
}));
}
export function updateMemory({ id, memoryUpdateDto }: {
id: string;
memoryUpdateDto: MemoryUpdateDto;
}, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: MemoryResponseDto;
}>(`/memories/${encodeURIComponent(id)}`, oazapfts.json({
...opts,
method: "PUT",
body: memoryUpdateDto
})));
}
export function removeMemoryAssets({ id, bulkIdsDto }: {
id: string;
bulkIdsDto: BulkIdsDto;
}, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: BulkIdResponseDto[];
}>(`/memories/${encodeURIComponent(id)}/assets`, oazapfts.json({
...opts,
method: "DELETE",
body: bulkIdsDto
})));
}
export function addMemoryAssets({ id, bulkIdsDto }: {
id: string;
bulkIdsDto: BulkIdsDto;
}, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{
status: 200;
data: BulkIdResponseDto[];
}>(`/memories/${encodeURIComponent(id)}/assets`, oazapfts.json({
...opts,
method: "PUT",
body: bulkIdsDto
})));
}
export function startOAuth({ oAuthConfigDto }: {
oAuthConfigDto: OAuthConfigDto;
}, opts?: Oazapfts.RequestOpts) {
@ -2842,6 +2945,12 @@ export enum LibraryType {
Upload = "UPLOAD",
External = "EXTERNAL"
}
export enum Type2 {
OnThisDay = "on_this_day"
}
export enum MemoryType {
OnThisDay = "on_this_day"
}
export enum SearchSuggestionType {
Country = "country",
State = "state",