View | Details | Raw Unified | Return to bug 40174
Collapse All | Expand All

(-)a/t/cypress/plugins/insertData.js (-42 / +27 lines)
Lines 1-10 Link Here
1
const { buildSampleObject, buildSampleObjects } = require("./mockData.js");
1
const { buildSampleObject, buildSampleObjects } = require("./mockData.js");
2
const { query } = require("./db.js");
2
const { query } = require("./db.js");
3
3
4
const { APIClient } = require("./dist/api-client.cjs.js");
4
const { apiGet, apiPost } = require("./api-client.js");
5
5
6
const insertSampleBiblio = async (item_count, baseUrl, authHeader) => {
6
const insertSampleBiblio = async (item_count, baseUrl, authHeader) => {
7
    let client = APIClient.default;
8
    let generated_objects = {};
7
    let generated_objects = {};
9
    const objects = [{ object: "library" }, { object: "item_type" }];
8
    const objects = [{ object: "library" }, { object: "item_type" }];
10
    for (const { object } of objects) {
9
    for (const { object } of objects) {
Lines 52-65 const insertSampleBiblio = async (item_count, baseUrl, authHeader) => { Link Here
52
            },
51
            },
53
        ],
52
        ],
54
    };
53
    };
55
    let result = await client.koha.post({
54
    let result = await apiPost({
56
        endpoint: `${baseUrl}/api/v1/biblios`,
55
        endpoint: "/api/v1/biblios",
57
        headers: {
56
        headers: {
58
            "Content-Type": "application/marc-in-json",
57
            "Content-Type": "application/marc-in-json",
59
            "x-confirm-not-duplicate": 1,
58
            "x-confirm-not-duplicate": 1,
60
            Authorization: authHeader,
61
        },
59
        },
62
        body: biblio,
60
        body: biblio,
61
        baseUrl,
62
        authHeader,
63
    });
63
    });
64
    const biblio_id = result.id;
64
    const biblio_id = result.id;
65
    // We do not have a route to get a biblio as it is stored in DB
65
    // We do not have a route to get a biblio as it is stored in DB
Lines 124-139 const insertSampleBiblio = async (item_count, baseUrl, authHeader) => { Link Here
124
    );
124
    );
125
    let createdItems = [];
125
    let createdItems = [];
126
    for (const item of items) {
126
    for (const item of items) {
127
        await client.koha
127
        await apiPost({
128
            .post({
128
            endpoint: `/api/v1/biblios/${biblio_id}/items`,
129
                endpoint: `${baseUrl}/api/v1/biblios/${biblio_id}/items`,
129
            body: item,
130
                body: item,
130
            baseUrl,
131
                headers: {
131
            authHeader,
132
                    "Content-Type": "application/json",
132
        }).then(i => createdItems.push(i));
133
                    Authorization: authHeader,
134
                },
135
            })
136
            .then(i => createdItems.push(i));
137
    }
133
    }
138
    return { biblio, items: createdItems, library, item_type };
134
    return { biblio, items: createdItems, library, item_type };
139
};
135
};
Lines 195-213 const insertLibrary = async (library, baseUrl, authHeader) => { Link Here
195
        needs_override,
191
        needs_override,
196
        ...new_library
192
        ...new_library
197
    } = library;
193
    } = library;
198
    let client = APIClient.default;
194
    return apiPost({
199
    return client.koha.post({
195
        endpoint: "/api/v1/libraries",
200
        endpoint: `${baseUrl}/api/v1/libraries`,
201
        body: new_library,
196
        body: new_library,
202
        headers: {
197
        baseUrl,
203
            "Content-Type": "application/json",
198
        authHeader,
204
            Authorization: authHeader,
205
        },
206
    });
199
    });
207
};
200
};
208
201
209
const insertObject = async (type, object, baseUrl, authHeader) => {
202
const insertObject = async (type, object, baseUrl, authHeader) => {
210
    let client = APIClient.default;
211
    if (type == "patron") {
203
    if (type == "patron") {
212
        await query({
204
        await query({
213
            sql: "SELECT COUNT(*) AS count FROM branches WHERE branchcode = ?",
205
            sql: "SELECT COUNT(*) AS count FROM branches WHERE branchcode = ?",
Lines 247-272 const insertObject = async (type, object, baseUrl, authHeader) => { Link Here
247
            ...patron
239
            ...patron
248
        } = object;
240
        } = object;
249
241
250
        return client.koha.post({
242
        return apiPost({
251
            endpoint: `${baseUrl}/api/v1/patrons`,
243
            endpoint: `/api/v1/patrons`,
252
            body: patron,
244
            body: patron,
253
            headers: {
245
            baseUrl,
254
                "Content-Type": "application/json",
246
            authHeader,
255
                Authorization: authHeader,
256
            },
257
        });
247
        });
258
    } else if (type == "library") {
248
    } else if (type == "library") {
259
        const keysToKeep = ["library_id", "name"];
249
        const keysToKeep = ["library_id", "name"];
260
        const library = Object.fromEntries(
250
        const library = Object.fromEntries(
261
            Object.entries(object).filter(([key]) => keysToKeep.includes(key))
251
            Object.entries(object).filter(([key]) => keysToKeep.includes(key))
262
        );
252
        );
263
        return client.koha.post({
253
        return apiPost({
264
            endpoint: `${baseUrl}/api/v1/libraries`,
254
            endpoint: "/api/v1/libraries",
265
            headers: {
266
                "Content-Type": "application/json",
267
                Authorization: authHeader,
268
            },
269
            body: library,
255
            body: library,
256
            baseUrl,
257
            authHeader,
270
        });
258
        });
271
    } else if (type == "item_type") {
259
    } else if (type == "item_type") {
272
        const keysToKeep = ["item_type_id", "description"];
260
        const keysToKeep = ["item_type_id", "description"];
Lines 279-290 const insertObject = async (type, object, baseUrl, authHeader) => { Link Here
279
        })
267
        })
280
            .then(result => {
268
            .then(result => {
281
                // FIXME We need /item_types/:item_type_id
269
                // FIXME We need /item_types/:item_type_id
282
                return client.koha.get({
270
                return apiGet({
283
                    endpoint: `${baseUrl}/api/v1/item_types?q={"item_type_id":"${item_type.item_type_id}"}`,
271
                    endpoint: `/api/v1/item_types?q={"item_type_id":"${item_type.item_type_id}"}`,
284
                    headers: {
272
                    baseUrl,
285
                        "Content-Type": "application/json",
273
                    authHeader,
286
                        Authorization: authHeader,
287
                    },
288
                });
274
                });
289
            })
275
            })
290
            .then(item_types => item_types[0]);
276
            .then(item_types => item_types[0]);
291
- 

Return to bug 40174