chore: return entity
This commit is contained in:
parent
dbd25edd16
commit
7a2171d6ed
|
@ -101,23 +101,26 @@ export const miRepository = {
|
||||||
},
|
},
|
||||||
async insertOne(entity, findOptions?) {
|
async insertOne(entity, findOptions?) {
|
||||||
const queryBuilder = this.createQueryBuilder().insert().values(entity);
|
const queryBuilder = this.createQueryBuilder().insert().values(entity);
|
||||||
const name = queryBuilder.expressionMap.mainAlias!.name;
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
||||||
queryBuilder.expressionMap.mainAlias!.name = 't';
|
const mainAlias = queryBuilder.expressionMap.mainAlias!;
|
||||||
|
const name = mainAlias.name;
|
||||||
|
mainAlias.name = 't';
|
||||||
const columnNames = this.createTableColumnNames(queryBuilder);
|
const columnNames = this.createTableColumnNames(queryBuilder);
|
||||||
queryBuilder.returning(columnNames.reduce((a, c) => `${a}, ${queryBuilder.escape(c)}`, '').slice(2));
|
queryBuilder.returning(columnNames.reduce((a, c) => `${a}, ${queryBuilder.escape(c)}`, '').slice(2));
|
||||||
const builder = this.createQueryBuilder().addCommonTableExpression(queryBuilder, 'cte', { columnNames });
|
const builder = this.createQueryBuilder().addCommonTableExpression(queryBuilder, 'cte', { columnNames });
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
||||||
builder.expressionMap.mainAlias!.tablePath = 'cte';
|
builder.expressionMap.mainAlias!.tablePath = 'cte';
|
||||||
this.selectAliasColumnNames(queryBuilder, builder);
|
this.selectAliasColumnNames(queryBuilder, builder);
|
||||||
if (findOptions) {
|
if (findOptions) {
|
||||||
builder.setFindOptions(findOptions);
|
builder.setFindOptions(findOptions);
|
||||||
}
|
}
|
||||||
const raw = await builder.execute();
|
const raw = await builder.execute();
|
||||||
queryBuilder.expressionMap.mainAlias!.name = name;
|
mainAlias.name = name;
|
||||||
const relationId = await new RelationIdLoader(builder.connection, this.queryRunner, builder.expressionMap.relationIdAttributes).load(raw);
|
const relationId = await new RelationIdLoader(builder.connection, this.queryRunner, builder.expressionMap.relationIdAttributes).load(raw);
|
||||||
const relationCount = await new RelationCountLoader(builder.connection, this.queryRunner, builder.expressionMap.relationCountAttributes).load(raw);
|
const relationCount = await new RelationCountLoader(builder.connection, this.queryRunner, builder.expressionMap.relationCountAttributes).load(raw);
|
||||||
const result = new RawSqlResultsToEntityTransformer(queryBuilder.expressionMap, queryBuilder.connection.driver, relationId, relationCount, this.queryRunner).transform(raw, queryBuilder.expressionMap.mainAlias!);
|
const result = new RawSqlResultsToEntityTransformer(queryBuilder.expressionMap, queryBuilder.connection.driver, relationId, relationCount, this.queryRunner).transform(raw, mainAlias);
|
||||||
console.log(raw, relationId, relationCount, result, queryBuilder.expressionMap.mainAlias!.metadata.primaryColumns.map((column) => DriverUtils.buildAlias(queryBuilder.connection.driver, undefined, queryBuilder.expressionMap.mainAlias!.name, column.databaseName)));
|
console.log(raw, relationId, relationCount, result, mainAlias.metadata.primaryColumns.map((column) => DriverUtils.buildAlias(queryBuilder.connection.driver, undefined, mainAlias.name, column.databaseName)));
|
||||||
throw null;
|
return result[0];
|
||||||
},
|
},
|
||||||
selectAliasColumnNames(queryBuilder, builder) {
|
selectAliasColumnNames(queryBuilder, builder) {
|
||||||
let selectOrAddSelect = (selection: string, selectionAliasName?: string) => {
|
let selectOrAddSelect = (selection: string, selectionAliasName?: string) => {
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: syuilo and misskey-project
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
|
||||||
|
process.env.NODE_ENV = 'test';
|
||||||
|
|
||||||
|
import * as assert from 'assert';
|
||||||
|
import { ReversiMatchResponse } from 'misskey-js/entities.js';
|
||||||
|
import { api, signup } from '../utils.js';
|
||||||
|
import type * as misskey from 'misskey-js';
|
||||||
|
|
||||||
|
describe('ReversiGame', () => {
|
||||||
|
let alice: misskey.entities.SignupResponse;
|
||||||
|
let bob: misskey.entities.SignupResponse;
|
||||||
|
|
||||||
|
beforeAll(async () => {
|
||||||
|
alice = await signup({ username: 'alice' });
|
||||||
|
bob = await signup({ username: 'bob' });
|
||||||
|
}, 1000 * 60 * 2);
|
||||||
|
|
||||||
|
test('matches when alice invites bob', async () => {
|
||||||
|
const response: { body: ReversiMatchResponse } = await api('reversi/match', { userId: bob.id }, alice);
|
||||||
|
|
||||||
|
assert.strictEqual(response.body.user1.id, alice.id);
|
||||||
|
assert.strictEqual(response.body.user2.id, bob.id);
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue