-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
getGame #76
getGame #76
Conversation
Coverage summary from CodacySee diff coverage on Codacy
Coverage variation details
Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: Diff coverage details
Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: See your quality gate settings Change summary preferencesCodacy stopped sending the deprecated coverage status on June 5th, 2024. Learn more |
Terraform plan in terraform/environment/wildsea With variablesenvironment = "primary"
saml_metadata_url = (sensitive value) Plan: 3 to add, 3 to change, 1 to destroy.Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+ create
!~ update in-place
- destroy
Terraform will perform the following actions:
# module.wildsea.aws_appsync_function.function["fnCheckGameAccess"] will be created
+ resource "aws_appsync_function" "function" {
+ api_id = "**************************"
+ arn = (known after apply)
+ code = <<-EOT
// function/fnCheckGameAccess/appsync.ts
import { util } from "@aws-appsync/utils";
function request(context) {
if (!context.identity) {
util.error("Unauthorized: Identity information is missing.");
}
const identity = context.identity;
if (!identity.sub) {
util.error("Unauthorized: User ID is missing.");
}
const id = context.arguments.id;
const key = {
PK: "GAME#" + id,
SK: "GAME"
};
return {
operation: "GetItem",
key: util.dynamodb.toMapValues(key)
};
}
function response(context) {
if (context.error) {
util.appendError(context.error.message, context.error.type, context.result);
return;
}
const identity = context.identity;
if (!identity.sub) {
util.appendError("Unauthorized: User ID is missing.");
return;
}
if (!permitted(identity, context.result)) {
util.appendError(
"Unauthorized: User does not have access to the game."
);
return;
}
return context.result;
}
function permitted(identity, data) {
if (data === null) {
return false;
}
if (data.fireflyUserId === identity.sub) {
return true;
}
if (data.players) {
for (const player of data.players) {
if (player === identity.sub) {
return true;
}
}
}
return false;
}
export {
permitted,
request,
response
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiYXBwc3luYy50cyJdLAogICJtYXBwaW5ncyI6ICI7QUFBQSxTQUFTLFlBQTZDO0FBSy9DLFNBQVMsUUFDZCxTQUN3QjtBQUN4QixNQUFJLENBQUMsUUFBUSxVQUFVO0FBQ3JCLFNBQUssTUFBTSxnREFBMEQ7QUFBQSxFQUN2RTtBQUVBLFFBQU0sV0FBVyxRQUFRO0FBQ3pCLE1BQUksQ0FBQyxTQUFTLEtBQUs7QUFDakIsU0FBSyxNQUFNLG1DQUE2QztBQUFBLEVBQzFEO0FBRUEsUUFBTSxLQUFLLFFBQVEsVUFBVTtBQUM3QixRQUFNLE1BQU07QUFBQSxJQUNWLElBQUksVUFBVTtBQUFBLElBQ2QsSUFBSTtBQUFBLEVBQ047QUFFQSxTQUFPO0FBQUEsSUFDTCxXQUFXO0FBQUEsSUFDWCxLQUFLLEtBQUssU0FBUyxZQUFZLEdBQUc7QUFBQSxFQUNwQztBQUNGO0FBVU8sU0FBUyxTQUFTLFNBQWdEO0FBQ3ZFLE1BQUksUUFBUSxPQUFPO0FBQ2pCLFNBQUssWUFBWSxRQUFRLE1BQU0sU0FBUyxRQUFRLE1BQU0sTUFBTSxRQUFRLE1BQU07QUFDMUU7QUFBQSxFQUNGO0FBRUEsUUFBTSxXQUFXLFFBQVE7QUFDekIsTUFBSSxDQUFDLFNBQVMsS0FBSztBQUNqQixTQUFLLFlBQVksbUNBQTZDO0FBQzlEO0FBQUEsRUFDRjtBQUVBLE1BQUksQ0FBQyxVQUFVLFVBQVUsUUFBUSxNQUFNLEdBQUc7QUFDeEMsU0FBSztBQUFBLE1BQ0g7QUFBQSxJQUNGO0FBQ0E7QUFBQSxFQUNGO0FBRUEsU0FBTyxRQUFRO0FBQ2pCO0FBRU8sU0FBUyxVQUNkLFVBQ0EsTUFDUztBQUNULE1BQUksU0FBUyxNQUFNO0FBQ2pCLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSSxLQUFLLGtCQUFrQixTQUFTLEtBQUs7QUFDdkMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJLEtBQUssU0FBUztBQUNoQixlQUFXLFVBQVUsS0FBSyxTQUFTO0FBQ2pDLFVBQUksV0FBVyxTQUFTLEtBQUs7QUFDM0IsZUFBTztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUVBLFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFtdCn0K
EOT
+ data_source = "Wildsea_primary"
+ function_id = (known after apply)
+ function_version = (known after apply)
+ id = (known after apply)
+ name = "fnCheckGameAccess"
+ runtime {
+ name = "APPSYNC_JS"
+ runtime_version = "1.0.0"
}
}
# module.wildsea.aws_appsync_function.function["fnGetGame"] will be created
+ resource "aws_appsync_function" "function" {
+ api_id = "**************************"
+ arn = (known after apply)
+ code = <<-EOT
// function/fnGetGame/appsync.ts
import { util } from "@aws-appsync/utils";
// lib/constants.ts
var TypeGame = "GAME";
var TypeCharacter = "CHARACTER";
var TypeSection = "SECTION";
var TypeFirefly = "FIREFLY";
// function/fnGetGame/appsync.ts
function request(context) {
validateIdentity(context);
return buildDynamoDBQuery(context.arguments.id);
}
function validateIdentity(context) {
if (!context.identity) {
util.error("Unauthorized: Identity information is missing.");
}
const identity = context.identity;
if (!identity.sub) {
util.error("Unauthorized: User ID is missing.");
}
}
function buildDynamoDBQuery(id) {
const pk = "GAME#" + id;
const expr = {
expression: "#pk = :pk",
expressionNames: {
"#pk": "PK"
},
expressionValues: {
":pk": { S: pk }
}
};
return {
operation: "Query",
query: expr
};
}
function response(context) {
validateResponse(context);
validateIdentity(context);
const identity = context.identity;
const sheets = buildPlayerSheets(context.result.items);
const game = findAndBuildGame(context.result.items, identity.sub);
addSheetsToGame(game, sheets);
return game;
}
function validateResponse(context) {
if (context.error) {
util.error(context.error.message, context.error.type, context.result);
}
if (!context.result?.items?.length) {
util.error("Game not found");
}
}
function buildPlayerSheets(items) {
const sheets = {};
items.forEach((data) => {
if (data.type === TypeCharacter || data.type === TypeFirefly) {
const sheet = makeCharacterSheetData(data);
sheets[sheet.userId] = sheet;
} else if (data.type === TypeSection) {
addSectionToSheet(sheets, data);
} else if (data.type != TypeGame) {
util.error("Unknown type: " + data.type);
}
});
return sheets;
}
function addSectionToSheet(sheets, data) {
const section = makeSheetSection(data);
const sheet = sheets[section.userId];
if (sheet === void 0) {
util.error("Sheet not found");
}
sheet.sections.push(section);
}
function findAndBuildGame(items, sub) {
const gameData = items.find((data) => data.type === TypeGame);
if (!gameData) {
util.error("Game record not found");
}
return makeGameData(gameData, sub);
}
function addSheetsToGame(game, sheets) {
const userIds = Object.keys(sheets).sort();
userIds.forEach((userId) => {
game.playerSheets.push(sheets[userId]);
});
}
function makeGameData(data, sub) {
let joinToken = null;
if (data.fireflyUserId == sub) {
joinToken = data.joinToken;
}
return {
gameId: data.gameId,
gameName: data.gameName,
gameDescription: data.gameDescription,
publicNotes: data.publicNotes,
playerSheets: [],
joinToken,
createdAt: data.createdAt,
updatedAt: data.updatedAt,
type: data.type
};
}
function makeCharacterSheetData(data) {
return {
userId: data.userId,
gameId: data.gameId,
characterName: data.characterName,
createdAt: data.createdAt,
updatedAt: data.updatedAt,
type: data.type,
sections: []
};
}
function makeSheetSection(data) {
return {
userId: data.userId,
gameId: data.gameId,
createdAt: data.createdAt,
updatedAt: data.updatedAt,
type: data.type
};
}
export {
makeCharacterSheetData,
makeGameData,
makeSheetSection,
request,
response
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiYXBwc3luYy50cyIsICIuLi8uLi9saWIvY29uc3RhbnRzLnRzIl0sCiAgIm1hcHBpbmdzIjogIjtBQUFBLFNBQVMsWUFBNkM7OztBQ0EvQyxJQUFNLFdBQVc7QUFDakIsSUFBTSxnQkFBZ0I7QUFDdEIsSUFBTSxjQUFjO0FBQ3BCLElBQU0sY0FBYzs7O0FEcUJwQixTQUFTLFFBQ2QsU0FDc0I7QUFDdEIsbUJBQWlCLE9BQU87QUFDeEIsU0FBTyxtQkFBbUIsUUFBUSxVQUFVLEVBQUU7QUFDaEQ7QUFFQSxTQUFTLGlCQUFpQixTQUEwQztBQUNsRSxNQUFJLENBQUMsUUFBUSxVQUFVO0FBQ3JCLFNBQUssTUFBTSxnREFBMEQ7QUFBQSxFQUN2RTtBQUVBLFFBQU0sV0FBVyxRQUFRO0FBQ3pCLE1BQUksQ0FBQyxTQUFTLEtBQUs7QUFDakIsU0FBSyxNQUFNLG1DQUE2QztBQUFBLEVBQzFEO0FBQ0Y7QUFFQSxTQUFTLG1CQUFtQixJQUFrQztBQUM1RCxRQUFNLEtBQUssVUFBVTtBQUNyQixRQUFNLE9BQTJCO0FBQUEsSUFDL0IsWUFBWTtBQUFBLElBQ1osaUJBQWlCO0FBQUEsTUFDZixPQUFPO0FBQUEsSUFDVDtBQUFBLElBQ0Esa0JBQWtCO0FBQUEsTUFDaEIsT0FBTyxFQUFFLEdBQUcsR0FBRztBQUFBLElBQ2pCO0FBQUEsRUFDRjtBQUNBLFNBQU87QUFBQSxJQUNMLFdBQVc7QUFBQSxJQUNYLE9BQU87QUFBQSxFQUNUO0FBQ0Y7QUFVTyxTQUFTLFNBQVMsU0FBNEM7QUFDbkUsbUJBQWlCLE9BQU87QUFDeEIsbUJBQWlCLE9BQU87QUFFeEIsUUFBTSxXQUFXLFFBQVE7QUFDekIsUUFBTSxTQUFTLGtCQUFrQixRQUFRLE9BQU8sS0FBSztBQUNyRCxRQUFNLE9BQU8saUJBQWlCLFFBQVEsT0FBTyxPQUFPLFNBQVMsR0FBRztBQUVoRSxrQkFBZ0IsTUFBTSxNQUFNO0FBQzVCLFNBQU87QUFDVDtBQUVBLFNBQVMsaUJBQWlCLFNBQWdDO0FBQ3hELE1B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
EOT
+ data_source = "Wildsea_primary"
+ function_id = (known after apply)
+ function_version = (known after apply)
+ id = (known after apply)
+ name = "fnGetGame"
+ runtime {
+ name = "APPSYNC_JS"
+ runtime_version = "1.0.0"
}
}
# module.wildsea.aws_appsync_function.function["fnJoinGame"] will be updated in-place
!~ resource "aws_appsync_function" "function" {
!~ code = <<-EOT
// function/fnJoinGame/appsync.ts
import { util } from "@aws-appsync/utils";
// environment.json
var environment_default = { name: "primary" };
+ // lib/constants.ts
+ var TypeCharacter = "CHARACTER";
+ var DefaultPlayerCharacterName = "Unnamed Character";
+
// function/fnJoinGame/appsync.ts
function request(context) {
if (!context.identity) {
util.error("Unauthorized: Identity information is missing.");
}
const identity = context.identity;
if (!identity.sub) {
util.error("Unauthorized: User ID is missing.");
}
const id = context.arguments.input.gameId;
const timestamp = util.time.nowISO8601();
const gameItem = {
operation: "UpdateItem",
table: "Wildsea-" + environment_default.name,
key: util.dynamodb.toMapValues({
PK: "GAME#" + id,
SK: "GAME"
}),
update: {
expression: "ADD #players :player SET #updatedAt = :updatedAt",
expressionNames: {
"#players": "players",
"#updatedAt": "updatedAt"
},
expressionValues: {
":player": { SS: [identity.sub] },
":updatedAt": { S: timestamp }
}
}
};
const playerItem = {
operation: "PutItem",
table: "Wildsea-" + environment_default.name,
key: util.dynamodb.toMapValues({
PK: "GAME#" + id,
SK: "PLAYER#PC#" + identity.sub
}),
attributeValues: util.dynamodb.toMapValues({
gameId: id,
userId: identity.sub,
GSI1PK: "USER#" + identity.sub,
gameName: context.prev.result.gameName,
gameDescription: context.prev.result.gameDescription,
- characterName: "Unnamed Character",
- type: "CHARACTER",
+ characterName: DefaultPlayerCharacterName,
+ type: TypeCharacter,
createdAt: timestamp,
updatedAt: timestamp
})
};
return {
operation: "TransactWriteItems",
transactItems: [gameItem, playerItem]
};
}
function response(context) {
if (context.error) {
util.error(context.error.message, context.error.type, context.result);
}
context.prev.result.joinToken = null;
return context.prev.result;
}
export {
request,
response
};
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiYXBwc3luYy50cyIsICIuLi8uLi9lbnZpcm9ubWVudC5qc29uIl0sCiAgIm1hcHBpbmdzIjogIjtBQUFBLFNBQVMsWUFBNkM7OztBQ0F0RCw0QkFBQyxNQUFPLFVBQVM7OztBREtWLFNBQVMsUUFBUSxTQUFxRDtBQUMzRSxNQUFJLENBQUMsUUFBUSxVQUFVO0FBQ3JCLFNBQUssTUFBTSxnREFBMEQ7QUFBQSxFQUN2RTtBQUVBLFFBQU0sV0FBVyxRQUFRO0FBQ3pCLE1BQUksQ0FBQyxTQUFTLEtBQUs7QUFDakIsU0FBSyxNQUFNLG1DQUE2QztBQUFBLEVBQzFEO0FBRUEsUUFBTSxLQUFLLFFBQVEsVUFBVSxNQUFNO0FBQ25DLFFBQU0sWUFBWSxLQUFLLEtBQUssV0FBVztBQUV2QyxRQUFNLFdBQVc7QUFBQSxJQUNmLFdBQVc7QUFBQSxJQUNYLE9BQU8sYUFBYSxvQkFBWTtBQUFBLElBQ2hDLEtBQUssS0FBSyxTQUFTLFlBQVk7QUFBQSxNQUM3QixJQUFJLFVBQVU7QUFBQSxNQUNkLElBQUk7QUFBQSxJQUNOLENBQUM7QUFBQSxJQUNELFFBQVE7QUFBQSxNQUNOLFlBQVk7QUFBQSxNQUNaLGlCQUFpQjtBQUFBLFFBQ2YsWUFBWTtBQUFBLFFBQ1osY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFO0FBQUEsUUFDaEMsY0FBYyxFQUFFLEdBQUcsVUFBVTtBQUFBLE1BQy9CO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFFQSxRQUFNLGFBQWE7QUFBQSxJQUNqQixXQUFXO0FBQUEsSUFDWCxPQUFPLGFBQWEsb0JBQVk7QUFBQSxJQUNoQyxLQUFLLEtBQUssU0FBUyxZQUFZO0FBQUEsTUFDN0IsSUFBSSxVQUFVO0FBQUEsTUFDZCxJQUFJLGVBQWUsU0FBUztBQUFBLElBQzlCLENBQUM7QUFBQSxJQUNELGlCQUFpQixLQUFLLFNBQVMsWUFBWTtBQUFBLE1BQ3pDLFFBQVE7QUFBQSxNQUNSLFFBQVEsU0FBUztBQUFBLE1BQ2pCLFFBQVEsVUFBVSxTQUFTO0FBQUEsTUFDM0IsVUFBVSxRQUFRLEtBQUssT0FBTztBQUFBLE1BQzlCLGlCQUFpQixRQUFRLEtBQUssT0FBTztBQUFBLE1BQ3JDLGVBQWU7QUFBQSxNQUNmLE1BQU07QUFBQSxNQUNOLFdBQVc7QUFBQSxNQUNYLFdBQVc7QUFBQSxJQUNiLENBQUM7QUFBQSxFQUNIO0FBRUEsU0FBTztBQUFBLElBQ0wsV0FBVztBQUFBLElBQ1gsZUFBZSxDQUFDLFVBQVUsVUFBVTtBQUFBLEVBQ3RDO0FBQ0Y7QUFFTyxTQUFTLFNBQ2QsU0FDa0I7QUFDbEIsTUFBSSxRQUFRLE9BQU87QUFDakIsU0FBSyxNQUFNLFFBQVEsTUFBTSxTQUFTLFFBQVEsTUFBTSxNQUFNLFFBQVEsTUFBTTtBQUFBLEVBQ3RFO0FBRUEsVUFBUSxLQUFLLE9BQU8sWUFBWTtBQUNoQyxTQUFPLFFBQVEsS0FBSztBQUN0QjsiLAogICJuYW1lcyI6IFtdCn0K
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiYXBwc3luYy50cyIsICIuLi8uLi9lbnZpcm9ubWVudC5qc29uIiwgIi4uLy4uL2xpYi9jb25zdGFudHMudHMiXSwKICAibWFwcGluZ3MiOiAiO0FBQUEsU0FBUyxZQUE2Qzs7O0FDQXRELDRCQUFDLE1BQU8sVUFBUzs7O0FDQ1YsSUFBTSxnQkFBZ0I7QUFLdEIsSUFBTSw2QkFBNkI7OztBRkFuQyxTQUFTLFFBQVEsU0FBcUQ7QUFDM0UsTUFBSSxDQUFDLFFBQVEsVUFBVTtBQUNyQixTQUFLLE1BQU0sZ0RBQTBEO0FBQUEsRUFDdkU7QUFFQSxRQUFNLFdBQVcsUUFBUTtBQUN6QixNQUFJLENBQUMsU0FBUyxLQUFLO0FBQ2pCLFNBQUssTUFBTSxtQ0FBNkM7QUFBQSxFQUMxRDtBQUVBLFFBQU0sS0FBSyxRQUFRLFVBQVUsTUFBTTtBQUNuQyxRQUFNLFlBQVksS0FBSyxLQUFLLFdBQVc7QUFFdkMsUUFBTSxXQUFXO0FBQUEsSUFDZixXQUFXO0FBQUEsSUFDWCxPQUFPLGFBQWEsb0JBQVk7QUFBQSxJQUNoQyxLQUFLLEtBQUssU0FBUyxZQUFZO0FBQUEsTUFDN0IsSUFBSSxVQUFVO0FBQUEsTUFDZCxJQUFJO0FBQUEsSUFDTixDQUFDO0FBQUEsSUFDRCxRQUFRO0FBQUEsTUFDTixZQUFZO0FBQUEsTUFDWixpQkFBaUI7QUFBQSxRQUNmLFlBQVk7QUFBQSxRQUNaLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRTtBQUFBLFFBQ2hDLGNBQWMsRUFBRSxHQUFHLFVBQVU7QUFBQSxNQUMvQjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBRUEsUUFBTSxhQUFhO0FBQUEsSUFDakIsV0FBVztBQUFBLElBQ1gsT0FBTyxhQUFhLG9CQUFZO0FBQUEsSUFDaEMsS0FBSyxLQUFLLFNBQVMsWUFBWTtBQUFBLE1BQzdCLElBQUksVUFBVTtBQUFBLE1BQ2QsSUFBSSxlQUFlLFNBQVM7QUFBQSxJQUM5QixDQUFDO0FBQUEsSUFDRCxpQkFBaUIsS0FBSyxTQUFTLFlBQVk7QUFBQSxNQUN6QyxRQUFRO0FBQUEsTUFDUixRQUFRLFNBQVM7QUFBQSxNQUNqQixRQUFRLFVBQVUsU0FBUztBQUFBLE1BQzNCLFVBQVUsUUFBUSxLQUFLLE9BQU87QUFBQSxNQUM5QixpQkFBaUIsUUFBUSxLQUFLLE9BQU87QUFBQSxNQUNyQyxlQUFlO0FBQUEsTUFDZixNQUFNO0FBQUEsTUFDTixXQUFXO0FBQUEsTUFDWCxXQUFXO0FBQUEsSUFDYixDQUFDO0FBQUEsRUFDSDtBQUVBLFNBQU87QUFBQSxJQUNMLFdBQVc7QUFBQSxJQUNYLGVBQWUsQ0FBQyxVQUFVLFVBQVU7QUFBQSxFQUN0QztBQUNGO0FBRU8sU0FBUyxTQUNkLFNBQ2tCO0FBQ2xCLE1BQUksUUFBUSxPQUFPO0FBQ2pCLFNBQUssTUFBTSxRQUFRLE1BQU0sU0FBUyxRQUFRLE1BQU0sTUFBTSxRQUFRLE1BQU07QUFBQSxFQUN0RTtBQUVBLFVBQVEsS0FBSyxPQUFPLFlBQVk7QUFDaEMsU0FBTyxRQUFRLEtBQUs7QUFDdEI7IiwKICAibmFtZXMiOiBbXQp9Cg==
EOT
id = "tfiz6mnf2nhyzpzkwm554sir5q-ivdn34xr4jb53adwa6nj6ix7rm"
name = "fnJoinGame"
# (9 unchanged attributes hidden)
# (1 unchanged block hidden)
}
# module.wildsea.aws_appsync_graphql_api.graphql will be updated in-place
!~ resource "aws_appsync_graphql_api" "graphql" {
id = "tfiz6mnf2nhyzpzkwm554sir5q"
name = "Wildsea-primary"
!~ schema = <<-EOT
scalar AWSTime
scalar AWSDateTime
scalar AWSTimestamp
scalar AWSEmail
scalar AWSJSON
scalar AWSURL
scalar AWSPhone
scalar AWSIPAddress
directive @aws_subscribe(mutations: [String!]!) on FIELD_DEFINITION
directive @aws_auth(cognito_groups: [String!]!) on FIELD_DEFINITION
directive @aws_api_key on FIELD_DEFINITION | OBJECT
directive @aws_iam on FIELD_DEFINITION | OBJECT
directive @aws_oidc on FIELD_DEFINITION | OBJECT
directive @aws_cognito_user_pools(
cognito_groups: [String!]
) on FIELD_DEFINITION | OBJECT
type Mutation {
createGame(input: CreateGameInput!): Game! @aws_cognito_user_pools
joinGame(input: JoinGameInput!): Game! @aws_cognito_user_pools
}
type Query {
getGame(id: ID!): Game! @aws_cognito_user_pools
getGames: [PlayerSheetSummary!] @aws_cognito_user_pools
}
input CreateGameInput {
name: String!
description: String
}
input JoinGameInput {
gameId: ID!
joinToken: ID!
}
type Game @aws_cognito_user_pools {
gameId: ID!
gameName: String!
gameDescription: String
publicNotes: String
- fireflyUserId: ID!
- players: [ID!]
+ playerSheets: [PlayerSheet!]!
joinToken: String
createdAt: AWSDateTime!
updatedAt: AWSDateTime!
type: String!
}
type PlayerSheetSummary @aws_cognito_user_pools {
gameId: ID!
gameName: String!
gameDescription: String!
type: String!
+ createdAt: AWSDateTime!
+ updatedAt: AWSDateTime!
}
+
+ type PlayerSheet @aws_cognito_user_pools {
+ userId: ID!
+ gameId: ID!
+ characterName: String!
+ sections: [SheetSection!]!
+ type: String!
+ createdAt: AWSDateTime!
+ updatedAt: AWSDateTime!
+ }
+
+ type SheetSection @aws_cognito_user_pools {
+ userId: ID!
+ gameId: ID!
+ type: String!
+ createdAt: AWSDateTime!
+ updatedAt: AWSDateTime!
+ }
EOT
tags = {
"Name" = "Wildsea-primary"
}
# (9 unchanged attributes hidden)
# (2 unchanged blocks hidden)
}
# module.wildsea.aws_appsync_resolver.pipeline["getGame"] will be created
+ resource "aws_appsync_resolver" "pipeline" {
+ api_id = "**************************"
+ arn = (known after apply)
+ field = "getGame"
+ id = (known after apply)
+ kind = "PIPELINE"
+ request_template = jsonencode({})
+ response_template = "$util.toJson($ctx.result)"
+ type = "Query"
+ pipeline_config {
+ functions = (known after apply)
}
}
# module.wildsea.aws_appsync_resolver.resolver["createGame"] will be updated in-place
!~ resource "aws_appsync_resolver" "resolver" {
!~ code = <<-EOT
// mutation/createGame/appsync.ts
import { util } from "@aws-appsync/utils";
// environment.json
var environment_default = { name: "primary" };
+ // lib/constants.ts
+ var TypeGame = "GAME";
+ var TypeFirefly = "FIREFLY";
+ var DefaultFireflyCharacterName = "Firefly";
+
// mutation/createGame/appsync.ts
function request(context) {
if (!context.identity) {
util.error("Unauthorized: Identity information is missing.");
}
const identity = context.identity;
if (!identity.sub) {
util.error("Unauthorized: User ID is missing.");
}
const input = context.arguments.input;
const id = util.autoId();
const joinToken = util.autoId();
const timestamp = util.time.nowISO8601();
context.stash.record = {
gameName: input.name,
gameDescription: input.description,
gameId: id,
fireflyUserId: identity.sub,
// players: no value yet
joinToken,
createdAt: timestamp,
updatedAt: timestamp,
- type: "GAME"
+ type: TypeGame
};
const gameItem = {
key: util.dynamodb.toMapValues({ PK: "GAME#" + id, SK: "GAME" }),
operation: "PutItem",
table: "Wildsea-" + environment_default.name,
attributeValues: util.dynamodb.toMapValues(
context.stash.record
)
};
const fireflyItem = {
key: util.dynamodb.toMapValues({
PK: "GAME#" + id,
SK: "PLAYER#GM#" + identity.sub
}),
operation: "PutItem",
table: "Wildsea-" + environment_default.name,
attributeValues: util.dynamodb.toMapValues({
userId: identity.sub,
gameId: id,
gameName: input.name,
gameDescription: input.description,
- characterName: "Firefly",
+ characterName: DefaultFireflyCharacterName,
GSI1PK: "USER#" + identity.sub,
createdAt: timestamp,
updatedAt: timestamp,
- type: "FIREFLY"
+ type: TypeFirefly
})
};
return {
operation: "TransactWriteItems",
transactItems: [gameItem, fireflyItem]
};
}
function response(context) {
if (context.error) {
util.appendError(context.error.message, context.error.type, context.result);
return null;
}
return {
- PK: context.result.keys[0].PK,
- SK: context.result.keys[0].SK,
gameName: context.stash.record.gameName,
gameDescription: context.stash.record.gameDescription,
gameId: context.stash.record.gameId,
- fireflyUserId: context.stash.record.fireflyUserId,
+ playerSheets: [
+ {
+ gameId: context.stash.record.gameId,
+ userId: context.stash.record.fireflyUserId,
+ characterName: DefaultFireflyCharacterName,
+ type: TypeFirefly,
+ sections: [],
+ createdAt: context.stash.record.createdAt,
+ updatedAt: context.stash.record.updatedAt
+ }
+ ],
createdAt: context.stash.record.createdAt,
updatedAt: context.stash.record.updatedAt,
type: context.stash.record.type
};
}
export {
request,
response
};
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiYXBwc3luYy50cyIsICIuLi8uLi9lbnZpcm9ubWVudC5qc29uIl0sCiAgIm1hcHBpbmdzIjogIjtBQUFBLFNBQVMsWUFBNkM7OztBQ0F0RCw0QkFBQyxNQUFPLFVBQVM7OztBREtWLFNBQVMsUUFBUSxTQUF1RDtBQUM3RSxNQUFJLENBQUMsUUFBUSxVQUFVO0FBQ3JCLFNBQUssTUFBTSxnREFBMEQ7QUFBQSxFQUN2RTtBQUVBLFFBQU0sV0FBVyxRQUFRO0FBQ3pCLE1BQUksQ0FBQyxTQUFTLEtBQUs7QUFDakIsU0FBSyxNQUFNLG1DQUE2QztBQUFBLEVBQzFEO0FBRUEsUUFBTSxRQUFRLFFBQVEsVUFBVTtBQUNoQyxRQUFNLEtBQUssS0FBSyxPQUFPO0FBQ3ZCLFFBQU0sWUFBWSxLQUFLLE9BQU87QUFDOUIsUUFBTSxZQUFZLEtBQUssS0FBSyxXQUFXO0FBRXZDLFVBQVEsTUFBTSxTQUFTO0FBQUEsSUFDckIsVUFBVSxNQUFNO0FBQUEsSUFDaEIsaUJBQWlCLE1BQU07QUFBQSxJQUN2QixRQUFRO0FBQUEsSUFDUixlQUFlLFNBQVM7QUFBQTtBQUFBLElBRXhCO0FBQUEsSUFDQSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxNQUFNO0FBQUEsRUFDUjtBQUVBLFFBQU0sV0FBVztBQUFBLElBQ2YsS0FBSyxLQUFLLFNBQVMsWUFBWSxFQUFFLElBQUksVUFBVSxJQUFJLElBQUksT0FBTyxDQUFDO0FBQUEsSUFDL0QsV0FBVztBQUFBLElBQ1gsT0FBTyxhQUFhLG9CQUFZO0FBQUEsSUFDaEMsaUJBQWlCLEtBQUssU0FBUztBQUFBLE1BQzdCLFFBQVEsTUFBTTtBQUFBLElBQ2hCO0FBQUEsRUFDRjtBQUVBLFFBQU0sY0FBYztBQUFBLElBQ2xCLEtBQUssS0FBSyxTQUFTLFlBQVk7QUFBQSxNQUM3QixJQUFJLFVBQVU7QUFBQSxNQUNkLElBQUksZUFBZSxTQUFTO0FBQUEsSUFDOUIsQ0FBQztBQUFBLElBQ0QsV0FBVztBQUFBLElBQ1gsT0FBTyxhQUFhLG9CQUFZO0FBQUEsSUFDaEMsaUJBQWlCLEtBQUssU0FBUyxZQUFZO0FBQUEsTUFDekMsUUFBUSxTQUFTO0FBQUEsTUFDakIsUUFBUTtBQUFBLE1BQ1IsVUFBVSxNQUFNO0FBQUEsTUFDaEIsaUJBQWlCLE1BQU07QUFBQSxNQUN2QixlQUFlO0FBQUEsTUFDZixRQUFRLFVBQVUsU0FBUztBQUFBLE1BQzNCLFdBQVc7QUFBQSxNQUNYLFdBQVc7QUFBQSxNQUNYLE1BQU07QUFBQSxJQUNSLENBQUM7QUFBQSxFQUNIO0FBRUEsU0FBTztBQUFBLElBQ0wsV0FBVztBQUFBLElBQ1gsZUFBZSxDQUFDLFVBQVUsV0FBVztBQUFBLEVBQ3ZDO0FBQ0Y7QUFFTyxTQUFTLFNBQVMsU0FBK0I7QUFDdEQsTUFBSSxRQUFRLE9BQU87QUFDakIsU0FBSyxZQUFZLFFBQVEsTUFBTSxTQUFTLFFBQVEsTUFBTSxNQUFNLFFBQVEsTUFBTTtBQUMxRSxXQUFPO0FBQUEsRUFDVDtBQUNBLFNBQU87QUFBQSxJQUNMLElBQUksUUFBUSxPQUFPLEtBQUssQ0FBQyxFQUFFO0FBQUEsSUFDM0IsSUFBSSxRQUFRLE9BQU8sS0FBSyxDQUFDLEVBQUU7QUFBQSxJQUMzQixVQUFVLFFBQVEsTUFBTSxPQUFPO0FBQUEsSUFDL0IsaUJBQWlCLFFBQVEsTUFBTSxPQUFPO0FBQUEsSUFDdEMsUUFBUSxRQUFRLE1BQU0sT0FBTztBQUFBLElBQzdCLGVBQWUsUUFBUSxNQUFNLE9BQU87QUFBQSxJQUNwQyxXQUFXLFFBQVEsTUFBTSxPQUFPO0FBQUEsSUFDaEMsV0FBVyxRQUFRLE1BQU0sT0FBTztBQUFBLElBQ2hDLE1BQU0sUUFBUSxNQUFNLE9BQU87QUFBQSxFQUM3QjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiYXBwc3luYy50cyIsICIuLi8uLi9lbnZpcm9ubWVudC5qc29uIiwgIi4uLy4uL2xpYi9jb25zdGFudHMudHMiXSwKICAibWFwcGluZ3MiOiAiO0FBQUEsU0FBUyxZQUE2Qzs7O0FDQXRELDRCQUFDLE1BQU8sVUFBUzs7O0FDQVYsSUFBTSxXQUFXO0FBR2pCLElBQU0sY0FBYztBQUVwQixJQUFNLDhCQUE4Qjs7O0FGS3BDLFNBQVMsUUFBUSxTQUF1RDtBQUM3RSxNQUFJLENBQUMsUUFBUSxVQUFVO0FBQ3JCLFNBQUssTUFBTSxnREFBMEQ7QUFBQSxFQUN2RTtBQUVBLFFBQU0sV0FBVyxRQUFRO0FBQ3pCLE1BQUksQ0FBQyxTQUFTLEtBQUs7QUFDakIsU0FBSyxNQUFNLG1DQUE2QztBQUFBLEVBQzFEO0FBRUEsUUFBTSxRQUFRLFFBQVEsVUFBVTtBQUNoQyxRQUFNLEtBQUssS0FBSyxPQUFPO0FBQ3ZCLFFBQU0sWUFBWSxLQUFLLE9BQU87QUFDOUIsUUFBTSxZQUFZLEtBQUssS0FBSyxXQUFXO0FBRXZDLFVBQVEsTUFBTSxTQUFTO0FBQUEsSUFDckIsVUFBVSxNQUFNO0FBQUEsSUFDaEIsaUJBQWlCLE1BQU07QUFBQSxJQUN2QixRQUFRO0FBQUEsSUFDUixlQUFlLFNBQVM7QUFBQTtBQUFBLElBRXhCO0FBQUEsSUFDQSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxNQUFNO0FBQUEsRUFDUjtBQUVBLFFBQU0sV0FBVztBQUFBLElBQ2YsS0FBSyxLQUFLLFNBQVMsWUFBWSxFQUFFLElBQUksVUFBVSxJQUFJLElBQUksT0FBTyxDQUFDO0FBQUEsSUFDL0QsV0FBVztBQUFBLElBQ1gsT0FBTyxhQUFhLG9CQUFZO0FBQUEsSUFDaEMsaUJBQWlCLEtBQUssU0FBUztBQUFBLE1BQzdCLFFBQVEsTUFBTTtBQUFBLElBQ2hCO0FBQUEsRUFDRjtBQUVBLFFBQU0sY0FBYztBQUFBLElBQ2xCLEtBQUssS0FBSyxTQUFTLFlBQVk7QUFBQSxNQUM3QixJQUFJLFVBQVU7QUFBQSxNQUNkLElBQUksZUFBZSxTQUFTO0FBQUEsSUFDOUIsQ0FBQztBQUFBLElBQ0QsV0FBVztBQUFBLElBQ1gsT0FBTyxhQUFhLG9CQUFZO0FBQUEsSUFDaEMsaUJBQWlCLEtBQUssU0FBUyxZQUFZO0FBQUEsTUFDekMsUUFBUSxTQUFTO0FBQUEsTUFDakIsUUFBUTtBQUFBLE1BQ1IsVUFBVSxNQUFNO0FBQUEsTUFDaEIsaUJBQWlCLE1BQU07QUFBQSxNQUN2QixlQUFlO0FBQUEsTUFDZixRQUFRLFVBQVUsU0FBUztBQUFBLE1BQzNCLFdBQVc7QUFBQSxNQUNYLFdBQVc7QUFBQSxNQUNYLE1BQU07QUFBQSxJQUNSLENBQUM7QUFBQSxFQUNIO0FBRUEsU0FBTztBQUFBLElBQ0wsV0FBVztBQUFBLElBQ1gsZUFBZSxDQUFDLFVBQVUsV0FBVztBQUFBLEVBQ3ZDO0FBQ0Y7QUFFTyxTQUFTLFNBQVMsU0FBK0I7QUFDdEQsTUFBSSxRQUFRLE9BQU87QUFDakIsU0FBSyxZQUFZLFFBQVEsTUFBTSxTQUFTLFFBQVEsTUFBTSxNQUFNLFFBQVEsTUFBTTtBQUMxRSxXQUFPO0FBQUEsRUFDVDtBQUNBLFNBQU87QUFBQSxJQUNMLFVBQVUsUUFBUSxNQUFNLE9BQU87QUFBQSxJQUMvQixpQkFBaUIsUUFBUSxNQUFNLE9BQU87QUFBQSxJQUN0QyxRQUFRLFFBQVEsTUFBTSxPQUFPO0FBQUEsSUFDN0IsY0FBYztBQUFBLE1BQ1o7QUFBQSxRQUNFLFFBQVEsUUFBUSxNQUFNLE9BQU87QUFBQSxRQUM3QixRQUFRLFFBQVEsTUFBTSxPQUFPO0FBQUEsUUFDN0IsZUFBZTtBQUFBLFFBQ2YsTUFBTTtBQUFBLFFBQ04sVUFBVSxDQUFDO0FBQUEsUUFDWCxXQUFXLFFBQVEsTUFBTSxPQUFPO0FBQUEsUUFDaEMsV0FBVyxRQUFRLE1BQU0sT0FBTztBQUFBLE1BQ2xDO0FBQUEsSUFDRjtBQUFBLElBQ0EsV0FBVyxRQUFRLE1BQU0sT0FBTztBQUFBLElBQ2hDLFdBQVcsUUFBUSxNQUFNLE9BQU87QUFBQSxJQUNoQyxNQUFNLFFBQVEsTUFBTSxPQUFPO0FBQUEsRUFDN0I7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
EOT
id = "tfiz6mnf2nhyzpzkwm554sir5q-Mutation-createGame"
# (9 unchanged attributes hidden)
# (1 unchanged block hidden)
}
# module.wildsea.aws_appsync_resolver.resolver["getGame"] will be destroyed
# (because key ["getGame"] is not in for_each map)
- resource "aws_appsync_resolver" "resolver" {
- api_id = "tfiz6mnf2nhyzpzkwm554sir5q" -> null
- arn = "arn:aws:appsync:ap-southeast-2:021891603679:apis/tfiz6mnf2nhyzpzkwm554sir5q/types/Query/resolvers/getGame" -> null
- code = <<-EOT
// query/getGame/appsync.ts
import { util } from "@aws-appsync/utils";
function request(context) {
if (!context.identity) {
util.error("Unauthorized: Identity information is missing.");
}
const identity = context.identity;
if (!identity.sub) {
util.error("Unauthorized: User ID is missing.");
}
const id = context.arguments.id;
const key = {
PK: "GAME#" + id,
SK: "GAME"
};
return {
operation: "GetItem",
key: util.dynamodb.toMapValues(key)
};
}
function response(context) {
if (context.error) {
util.appendError(context.error.message, context.error.type, context.result);
return;
}
const identity = context.identity;
if (!identity.sub) {
util.appendError("Unauthorized: User ID is missing.");
return;
}
if (!permitted(identity, context.result)) {
util.appendError(
"Unauthorized: User does not have access to the game."
);
return;
}
return context.result;
}
function permitted(identity, data) {
if (data === null) {
return false;
}
if (data.fireflyUserId === identity.sub) {
return true;
}
if (data.players) {
for (const player of data.players) {
if (player === identity.sub) {
return true;
}
}
}
return false;
}
export {
request,
response
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiYXBwc3luYy50cyJdLAogICJtYXBwaW5ncyI6ICI7QUFBQSxTQUFTLFlBQTZDO0FBSS9DLFNBQVMsUUFDZCxTQUN3QjtBQUN4QixNQUFJLENBQUMsUUFBUSxVQUFVO0FBQ3JCLFNBQUssTUFBTSxnREFBMEQ7QUFBQSxFQUN2RTtBQUVBLFFBQU0sV0FBVyxRQUFRO0FBQ3pCLE1BQUksQ0FBQyxTQUFTLEtBQUs7QUFDakIsU0FBSyxNQUFNLG1DQUE2QztBQUFBLEVBQzFEO0FBRUEsUUFBTSxLQUFLLFFBQVEsVUFBVTtBQUM3QixRQUFNLE1BQU07QUFBQSxJQUNWLElBQUksVUFBVTtBQUFBLElBQ2QsSUFBSTtBQUFBLEVBQ047QUFFQSxTQUFPO0FBQUEsSUFDTCxXQUFXO0FBQUEsSUFDWCxLQUFLLEtBQUssU0FBUyxZQUFZLEdBQUc7QUFBQSxFQUNwQztBQUNGO0FBRU8sU0FBUyxTQUFTLFNBQWtCO0FBQ3pDLE1BQUksUUFBUSxPQUFPO0FBQ2pCLFNBQUssWUFBWSxRQUFRLE1BQU0sU0FBUyxRQUFRLE1BQU0sTUFBTSxRQUFRLE1BQU07QUFDMUU7QUFBQSxFQUNGO0FBRUEsUUFBTSxXQUFXLFFBQVE7QUFDekIsTUFBSSxDQUFDLFNBQVMsS0FBSztBQUNqQixTQUFLLFlBQVksbUNBQTZDO0FBQzlEO0FBQUEsRUFDRjtBQUVBLE1BQUksQ0FBQyxVQUFVLFVBQVUsUUFBUSxNQUFNLEdBQUc7QUFDeEMsU0FBSztBQUFBLE1BQ0g7QUFBQSxJQUNGO0FBQ0E7QUFBQSxFQUNGO0FBRUEsU0FBTyxRQUFRO0FBQ2pCO0FBRUEsU0FBUyxVQUFVLFVBQWtDLE1BQXFCO0FBQ3hFLE1BQUksU0FBUyxNQUFNO0FBQ2pCLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSSxLQUFLLGtCQUFrQixTQUFTLEtBQUs7QUFDdkMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJLEtBQUssU0FBUztBQUNoQixlQUFXLFVBQVUsS0FBSyxTQUFTO0FBQ2pDLFVBQUksV0FBVyxTQUFTLEtBQUs7QUFDM0IsZUFBTztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUVBLFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFtdCn0K
EOT -> null
- data_source = "Wildsea_primary" -> null
- field = "getGame" -> null
- id = "tfiz6mnf2nhyzpzkwm554sir5q-Query-getGame" -> null
- kind = "UNIT" -> null
- max_batch_size = 0 -> null
- type = "Query" -> null
# (2 unchanged attributes hidden)
- runtime {
- name = "APPSYNC_JS" -> null
- runtime_version = "1.0.0" -> null
}
}
Plan: 3 to add, 3 to change, 1 to destroy. ✅ Plan applied in Environment Main - Apply #71 Outputscdn_domain_name = "d3tinvgatp7lle.cloudfront.net"
cdn_id = "E2KPUTZ78NDDZ6"
cognito_identity_pool_id = "ap-southeast-2:2c578a4f-3fd8-453e-860d-4fde2187c38e"
cognito_login_domain = "wildsea-primary.auth.ap-southeast-2.amazoncognito.com"
cognito_user_pool_id = "ap-southeast-2_mi8U4SiYJ"
cognito_web_client_id = "1ghmru9nk0j81l040lehbgosv1"
graphql_uri = "https://2xdx2rdnwjbyznwjz4nc54dzbi.appsync-api.ap-southeast-2.amazonaws.com/graphql"
region = "ap-southeast-2"
ui_bucket = "wildsea-primary-ui" |
|
No description provided.