fix accounts balance check;
This commit is contained in:
parent
2fa7310aaa
commit
02719884c2
@ -1,5 +1,5 @@
|
||||
exports.up = async knex => {
|
||||
return knex.schema.createTable('accounts', table => {
|
||||
await knex.schema.createTable('accounts', table => {
|
||||
table.uuid('id').primary();
|
||||
table.timestamps(true, true);
|
||||
|
||||
@ -23,8 +23,10 @@ exports.up = async knex => {
|
||||
|
||||
await knex.schema.raw(`
|
||||
ALTER TABLE accounts
|
||||
ADD CHECK (balance > 0);
|
||||
ADD CHECK (balance >= 0);
|
||||
`);
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
exports.down = async () => {};
|
||||
@ -18,8 +18,8 @@ pub const FREE_MTX: [MtxVariant; 1] = [
|
||||
];
|
||||
|
||||
pub const SHOP_LISTINGS: [Listing; 2] = [
|
||||
Listing { variant: MtxVariant::ArchitectureMolecular, credits: 10 },
|
||||
Listing { variant: MtxVariant::ArchitectureInvader, credits: 10 },
|
||||
Listing { variant: MtxVariant::Molecular, credits: 10 },
|
||||
Listing { variant: MtxVariant::Invader, credits: 10 },
|
||||
];
|
||||
|
||||
#[derive(Debug,Clone,PartialEq,Serialize,Deserialize)]
|
||||
@ -37,8 +37,8 @@ pub struct Listing {
|
||||
#[derive(Debug,Copy,Clone,PartialEq,Serialize,Deserialize)]
|
||||
pub enum MtxVariant {
|
||||
Rename,
|
||||
ArchitectureMolecular,
|
||||
ArchitectureInvader,
|
||||
Molecular,
|
||||
Invader,
|
||||
}
|
||||
|
||||
impl MtxVariant {
|
||||
@ -54,8 +54,8 @@ impl TryFrom<String> for MtxVariant {
|
||||
fn try_from(v: String) -> Result<MtxVariant, Error> {
|
||||
match v.as_ref() {
|
||||
"Rename" => Ok(MtxVariant::Rename),
|
||||
"ArchitectureMolecular" => Ok(MtxVariant::ArchitectureMolecular),
|
||||
"ArchitectureInvader" => Ok(MtxVariant::ArchitectureInvader),
|
||||
"Molecular" => Ok(MtxVariant::Molecular),
|
||||
"Invader" => Ok(MtxVariant::Invader),
|
||||
_ => Err(format_err!("mtx variant not found variant={:?}", v)),
|
||||
}
|
||||
}
|
||||
@ -76,8 +76,8 @@ pub fn apply(tx: &mut Transaction, account: &Account, variant: MtxVariant, const
|
||||
|
||||
construct = construct.new_img();
|
||||
match mtx.variant {
|
||||
MtxVariant::ArchitectureInvader => img::invader_write(construct.img)?,
|
||||
MtxVariant::ArchitectureMolecular => img::molecular_write(construct.img)?,
|
||||
MtxVariant::Invader => img::invader_write(construct.img)?,
|
||||
MtxVariant::Molecular => img::molecular_write(construct.img)?,
|
||||
MtxVariant::Rename => unimplemented!(),
|
||||
// _ => unimplemented!(),
|
||||
};
|
||||
@ -114,8 +114,8 @@ impl Mtx {
|
||||
pub fn new(variant: MtxVariant, account: Uuid) -> Mtx {
|
||||
match variant {
|
||||
_ => Mtx { id: Uuid::new_v4(), account, variant },
|
||||
// MtxVariant::ArchitectureInvader => Mtx { id: Uuid::new_v4(), account, variant: self },
|
||||
// MtxVariant::ArchitectureMolecular => Mtx { id: Uuid::new_v4(), account, variant: self },
|
||||
// MtxVariant::Invader => Mtx { id: Uuid::new_v4(), account, variant: self },
|
||||
// MtxVariant::Molecular => Mtx { id: Uuid::new_v4(), account, variant: self },
|
||||
}
|
||||
}
|
||||
|
||||
@ -178,7 +178,7 @@ impl Mtx {
|
||||
|
||||
pub fn account_shop(tx: &mut Transaction, account: &Account) -> Result<Shop, Error> {
|
||||
let query = "
|
||||
SELECT variant
|
||||
SELECT id, variant
|
||||
FROM mtx
|
||||
WHERE account = $1;
|
||||
";
|
||||
@ -189,11 +189,12 @@ pub fn account_shop(tx: &mut Transaction, account: &Account) -> Result<Shop, Err
|
||||
let mut owned = vec![];
|
||||
|
||||
for row in result.iter() {
|
||||
let v_str: String = row.get(0);
|
||||
let id: Uuid = row.get(0);
|
||||
let v_str: String = row.get(1);
|
||||
let variant = match MtxVariant::try_from(v_str) {
|
||||
Ok(v) => v,
|
||||
Err(e) => {
|
||||
warn!("{:?}", e);
|
||||
warn!("id={:?} {:?}", id, e);
|
||||
continue;
|
||||
},
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user