Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions types/cloudinary_ts_spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -568,6 +568,42 @@ cloudinary.v2.api.usage(function (error, result) {
// $ExpectType Promise<any>
cloudinary.v2.api.usage({public_id: 'demo'});

cloudinary.v2.api.add_metadata_field({
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@strausr , isn't the $ExpectType comment important here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No. We can't check the type of the promise bc call_api is not really called and will always return nothing. Its enough to verify the promise with .then() and a sanity check for us that the functions are accepting the proper fields

external_id: 'EXTERNAL_ID_GET_LIST',
label: 'LABEL_INT_1',
type: "integer",
default_value: 10,
}).then((result)=> {
console.log(result);
});

cloudinary.v2.api.list_metadata_fields().then((result)=> {
console.log(result.metadata_fields[0].datasource);
});

cloudinary.v2.api.delete_metadata_field('EXTERNAL_ID_GET_LIST').then((res) => {
console.log(res.message)
}).catch((err)=> {console.log(err)})

cloudinary.v2.api.update_metadata_field('EXTERNAL_ID_GET_LIST',{mandatory: true},
function (res) {
console.log(res);
})

const datasource_changes = {
values: [
{ external_id: "color_1", value: "brown" },
{ external_id: "color_2", value: "black" },
],
};

cloudinary.v2.api.update_metadata_field_datasource('EXTERNAL_ID_GET_LIST1', datasource_changes)
.then((res)=> {console.log(res)})
.catch((err)=> {console.log(err)});

cloudinary.v2.api.delete_datasource_entries('EXTERNAL_ID_DELETE_DATASOURCE_ENTRIES', ['size_2'])
.then((res)=>{console.log(res)})

// $ExpectType Promise<any>
cloudinary.v2.uploader.add_context('alt=Animal|class=Mammalia', ['dog', 'lion'],
function (error, result) {
Expand Down
71 changes: 71 additions & 0 deletions types/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -592,6 +592,43 @@ declare module 'cloudinary' {
class UploadStream extends Transform {
}

export interface DeleteApiResponse {
message: string;
http_code: number;
}

export interface MetadataFieldApiOptions {
external_id?: string;
type?: string;
label?: string;
mandatory?: boolean;
default_value?: number;
validation?: object;
datasource?: object;

[futureKey: string]: any;
}

export interface MetadataFieldApiResponse {
external_id: string;
type: string;
label: string;
mandatory: boolean;
default_value: number;
validation: object;
datasource: object;

[futureKey: string]: any;
}

export interface MetadataFieldsApiResponse {
metadata_fields: MetadataFieldApiResponse[]
}

export interface DatasourceChange {
values: Array<object>
}

export interface ResourceApiResponse {
resources: [
{
Expand Down Expand Up @@ -851,6 +888,40 @@ declare module 'cloudinary' {
function usage(callback?: ResponseCallback, options?: AdminApiOptions): Promise<any>;

function usage(options?: AdminApiOptions): Promise<any>;

/****************************** Structured Metadata API V2 Methods *************************************/

function add_metadata_field(field: MetadataFieldApiOptions, options?: AdminApiOptions, callback?: ResponseCallback): Promise<MetadataFieldApiResponse>;

function add_metadata_field(field: MetadataFieldApiOptions, callback?: ResponseCallback): Promise<MetadataFieldApiResponse>;

function list_metadata_fields(callback?: ResponseCallback, options?: AdminApiOptions): Promise<MetadataFieldsApiResponse>;

function list_metadata_fields(options?: AdminApiOptions): Promise<MetadataFieldsApiResponse>;

function delete_metadata_field(field_external_id: string, options?: AdminApiOptions, callback?: ResponseCallback): Promise<DeleteApiResponse>;

function delete_metadata_field(field_external_id: string, callback?: ResponseCallback): Promise<DeleteApiResponse>;

function metadata_field_by_field_id(external_id:string, options?: AdminApiOptions, callback?: ResponseCallback): Promise<MetadataFieldApiResponse>;

function metadata_field_by_field_id(external_id:string, callback?: ResponseCallback): Promise<MetadataFieldApiResponse>;

function update_metadata_field(external_id: string, field: MetadataFieldApiOptions, options?: AdminApiOptions, callback?: ResponseCallback): Promise<MetadataFieldApiResponse>;

function update_metadata_field(external_id: string, field: MetadataFieldApiOptions, callback?: ResponseCallback): Promise<MetadataFieldApiResponse>;

function update_metadata_field_datasource(field_external_id: string, entries_external_id: object, options?: AdminApiOptions, callback?: ResponseCallback): Promise<DatasourceChange>;

function update_metadata_field_datasource(field_external_id: string, entries_external_id: object, callback?: ResponseCallback): Promise<DatasourceChange>;

function delete_datasource_entries(field_external_id: string, entries_external_id: string[], options?: AdminApiOptions, callback?: ResponseCallback): Promise<DatasourceChange>;

function delete_datasource_entries(field_external_id: string, entries_external_id: string[], callback?: ResponseCallback): Promise<DatasourceChange>;

function restore_metadata_field_datasource(field_external_id: string, entries_external_id: string[], options?: AdminApiOptions, callback?: ResponseCallback): Promise<DatasourceChange>;

function restore_metadata_field_datasource(field_external_id: string, entries_external_id: string[], callback?: ResponseCallback): Promise<DatasourceChange>;
}

/****************************** Upload API V2 Methods *************************************/
Expand Down