Skip to content

Commit 556aa90

Browse files
authored
Add deleted query param when looking up schema under subject (#168)
* Add deleted query param when looking up schema under subject * Minor fix * Minor fix
1 parent ee04d60 commit 556aa90

File tree

4 files changed

+9
-7
lines changed

4 files changed

+9
-7
lines changed

schemaregistry/mock-schemaregistry-client.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,8 @@ class MockClient implements Client {
298298
}
299299
}
300300

301-
async getVersion(subject: string, schema: SchemaInfo, normalize: boolean = false): Promise<number> {
301+
async getVersion(subject: string, schema: SchemaInfo,
302+
normalize: boolean = false, deleted: boolean = false): Promise<number> {
302303
const cacheKey = stringify({ subject, schema: minimize(schema) });
303304
const cacheEntry = this.schemaToVersionCache.get(cacheKey);
304305

schemaregistry/schemaregistry-client.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ export interface Client {
147147
getLatestWithMetadata(subject: string, metadata: { [key: string]: string },
148148
deleted: boolean, format?: string): Promise<SchemaMetadata>;
149149
getAllVersions(subject: string): Promise<number[]>;
150-
getVersion(subject: string, schema: SchemaInfo, normalize: boolean): Promise<number>;
150+
getVersion(subject: string, schema: SchemaInfo, normalize: boolean, deleted: boolean): Promise<number>;
151151
getAllSubjects(): Promise<string[]>;
152152
deleteSubject(subject: string, permanent: boolean): Promise<number[]>;
153153
deleteSubjectVersion(subject: string, version: number, permanent: boolean): Promise<number>;
@@ -436,8 +436,9 @@ export class SchemaRegistryClient implements Client {
436436
* @param schema - The schema for which to get the version.
437437
* @param normalize - Whether to normalize the schema before getting the version.
438438
*/
439-
async getVersion(subject: string, schema: SchemaInfo, normalize: boolean = false): Promise<number> {
440-
const cacheKey = stringify({ subject, schema: minimize(schema) });
439+
async getVersion(subject: string, schema: SchemaInfo,
440+
normalize: boolean = false, deleted: boolean = false): Promise<number> {
441+
const cacheKey = stringify({ subject, schema: minimize(schema), deleted });
441442

442443
return await this.schemaToVersionMutex.runExclusive(async () => {
443444
const cachedVersion: number | undefined = this.schemaToVersionCache.get(cacheKey);
@@ -448,7 +449,7 @@ export class SchemaRegistryClient implements Client {
448449
subject = encodeURIComponent(subject);
449450

450451
const response: AxiosResponse<SchemaMetadata> = await this.restService.handleRequest(
451-
`/subjects/${subject}?normalize=${normalize}`,
452+
`/subjects/${subject}?normalize=${normalize}&deleted=${deleted}`,
452453
'POST',
453454
schema
454455
);

schemaregistry/serde/protobuf.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ export class ProtobufSerializer extends Serializer implements ProtobufSerde {
231231
id = await this.client.getId(subject, info, normalize)
232232

233233
}
234-
version = await this.client.getVersion(subject, info, normalize)
234+
version = await this.client.getVersion(subject, info, normalize, false)
235235
}
236236
return {
237237
id: id,

schemaregistry/serde/serde.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ export abstract class Deserializer extends Serde {
372372

373373
async getMigrations(subject: string, sourceInfo: SchemaInfo,
374374
target: SchemaMetadata, format?: string): Promise<Migration[]> {
375-
let version = await this.client.getVersion(subject, sourceInfo, false)
375+
let version = await this.client.getVersion(subject, sourceInfo, false, true)
376376
let source: SchemaMetadata = {
377377
id: 0,
378378
version: version,

0 commit comments

Comments
 (0)