Skip to content

Commit 33906ed

Browse files
authored
Add types for Structured Metadata functions (#359)
* Add types for Structured Metadata functions
1 parent b7e3b3c commit 33906ed

File tree

2 files changed

+107
-0
lines changed

2 files changed

+107
-0
lines changed

types/cloudinary_ts_spec.ts

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -568,6 +568,42 @@ cloudinary.v2.api.usage(function (error, result) {
568568
// $ExpectType Promise<any>
569569
cloudinary.v2.api.usage({public_id: 'demo'});
570570

571+
cloudinary.v2.api.add_metadata_field({
572+
external_id: 'EXTERNAL_ID_GET_LIST',
573+
label: 'LABEL_INT_1',
574+
type: "integer",
575+
default_value: 10,
576+
}).then((result)=> {
577+
console.log(result);
578+
});
579+
580+
cloudinary.v2.api.list_metadata_fields().then((result)=> {
581+
console.log(result.metadata_fields[0].datasource);
582+
});
583+
584+
cloudinary.v2.api.delete_metadata_field('EXTERNAL_ID_GET_LIST').then((res) => {
585+
console.log(res.message)
586+
}).catch((err)=> {console.log(err)})
587+
588+
cloudinary.v2.api.update_metadata_field('EXTERNAL_ID_GET_LIST',{mandatory: true},
589+
function (res) {
590+
console.log(res);
591+
})
592+
593+
const datasource_changes = {
594+
values: [
595+
{ external_id: "color_1", value: "brown" },
596+
{ external_id: "color_2", value: "black" },
597+
],
598+
};
599+
600+
cloudinary.v2.api.update_metadata_field_datasource('EXTERNAL_ID_GET_LIST1', datasource_changes)
601+
.then((res)=> {console.log(res)})
602+
.catch((err)=> {console.log(err)});
603+
604+
cloudinary.v2.api.delete_datasource_entries('EXTERNAL_ID_DELETE_DATASOURCE_ENTRIES', ['size_2'])
605+
.then((res)=>{console.log(res)})
606+
571607
// $ExpectType Promise<any>
572608
cloudinary.v2.uploader.add_context('alt=Animal|class=Mammalia', ['dog', 'lion'],
573609
function (error, result) {

types/index.d.ts

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -592,6 +592,43 @@ declare module 'cloudinary' {
592592
class UploadStream extends Transform {
593593
}
594594

595+
export interface DeleteApiResponse {
596+
message: string;
597+
http_code: number;
598+
}
599+
600+
export interface MetadataFieldApiOptions {
601+
external_id?: string;
602+
type?: string;
603+
label?: string;
604+
mandatory?: boolean;
605+
default_value?: number;
606+
validation?: object;
607+
datasource?: object;
608+
609+
[futureKey: string]: any;
610+
}
611+
612+
export interface MetadataFieldApiResponse {
613+
external_id: string;
614+
type: string;
615+
label: string;
616+
mandatory: boolean;
617+
default_value: number;
618+
validation: object;
619+
datasource: object;
620+
621+
[futureKey: string]: any;
622+
}
623+
624+
export interface MetadataFieldsApiResponse {
625+
metadata_fields: MetadataFieldApiResponse[]
626+
}
627+
628+
export interface DatasourceChange {
629+
values: Array<object>
630+
}
631+
595632
export interface ResourceApiResponse {
596633
resources: [
597634
{
@@ -851,6 +888,40 @@ declare module 'cloudinary' {
851888
function usage(callback?: ResponseCallback, options?: AdminApiOptions): Promise<any>;
852889

853890
function usage(options?: AdminApiOptions): Promise<any>;
891+
892+
/****************************** Structured Metadata API V2 Methods *************************************/
893+
894+
function add_metadata_field(field: MetadataFieldApiOptions, options?: AdminApiOptions, callback?: ResponseCallback): Promise<MetadataFieldApiResponse>;
895+
896+
function add_metadata_field(field: MetadataFieldApiOptions, callback?: ResponseCallback): Promise<MetadataFieldApiResponse>;
897+
898+
function list_metadata_fields(callback?: ResponseCallback, options?: AdminApiOptions): Promise<MetadataFieldsApiResponse>;
899+
900+
function list_metadata_fields(options?: AdminApiOptions): Promise<MetadataFieldsApiResponse>;
901+
902+
function delete_metadata_field(field_external_id: string, options?: AdminApiOptions, callback?: ResponseCallback): Promise<DeleteApiResponse>;
903+
904+
function delete_metadata_field(field_external_id: string, callback?: ResponseCallback): Promise<DeleteApiResponse>;
905+
906+
function metadata_field_by_field_id(external_id:string, options?: AdminApiOptions, callback?: ResponseCallback): Promise<MetadataFieldApiResponse>;
907+
908+
function metadata_field_by_field_id(external_id:string, callback?: ResponseCallback): Promise<MetadataFieldApiResponse>;
909+
910+
function update_metadata_field(external_id: string, field: MetadataFieldApiOptions, options?: AdminApiOptions, callback?: ResponseCallback): Promise<MetadataFieldApiResponse>;
911+
912+
function update_metadata_field(external_id: string, field: MetadataFieldApiOptions, callback?: ResponseCallback): Promise<MetadataFieldApiResponse>;
913+
914+
function update_metadata_field_datasource(field_external_id: string, entries_external_id: object, options?: AdminApiOptions, callback?: ResponseCallback): Promise<DatasourceChange>;
915+
916+
function update_metadata_field_datasource(field_external_id: string, entries_external_id: object, callback?: ResponseCallback): Promise<DatasourceChange>;
917+
918+
function delete_datasource_entries(field_external_id: string, entries_external_id: string[], options?: AdminApiOptions, callback?: ResponseCallback): Promise<DatasourceChange>;
919+
920+
function delete_datasource_entries(field_external_id: string, entries_external_id: string[], callback?: ResponseCallback): Promise<DatasourceChange>;
921+
922+
function restore_metadata_field_datasource(field_external_id: string, entries_external_id: string[], options?: AdminApiOptions, callback?: ResponseCallback): Promise<DatasourceChange>;
923+
924+
function restore_metadata_field_datasource(field_external_id: string, entries_external_id: string[], callback?: ResponseCallback): Promise<DatasourceChange>;
854925
}
855926

856927
/****************************** Upload API V2 Methods *************************************/

0 commit comments

Comments
 (0)